WO2015066836A1 - 视频业务数据传输方法、数据接收装置和数据发送装置 - Google Patents

视频业务数据传输方法、数据接收装置和数据发送装置 Download PDF

Info

Publication number
WO2015066836A1
WO2015066836A1 PCT/CN2013/086531 CN2013086531W WO2015066836A1 WO 2015066836 A1 WO2015066836 A1 WO 2015066836A1 CN 2013086531 W CN2013086531 W CN 2013086531W WO 2015066836 A1 WO2015066836 A1 WO 2015066836A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packet
video data
retransmitted
video
type
Prior art date
Application number
PCT/CN2013/086531
Other languages
English (en)
French (fr)
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 华为技术有限公司
Priority to PCT/CN2013/086531 priority Critical patent/WO2015066836A1/zh
Priority to CN201380002474.3A priority patent/CN103814582B/zh
Publication of WO2015066836A1 publication Critical patent/WO2015066836A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42607Internal components of the client ; Characteristics thereof for processing the incoming bitstream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Definitions

  • the present invention relates to the field of data transmission, and in particular, to a video service data transmission method, a data receiving device, and a data transmitting device. Background technique
  • 3G third-generation mobile communication technologies
  • a user equipment In a 3G/Universal Mobile Telecommunications System (UMTS), a user equipment (User Equipment, called “UE”) requests a video stream service from a video server through a network connection, and after receiving the request, the video server receives the request.
  • the video stream (video packet) is transmitted to the UE.
  • the radio network controller Radio Network Controller, "RNC”
  • RNC Radio Network Controller
  • the RNC puts the received Radio Link Control (“RLC") protocol data unit (“PDU”) into the receive buffer, and then combines the PDUs.
  • the Service Data Unit (“SDU”) is handed over to the upper layer.
  • RLC Radio Link Control
  • SDU Service Data Unit
  • the receiving buffer capacity of the RLC layer is limited. Whether the traffic is too large or exceeds the bandwidth, or some PDUs are retransmitted due to a wireless link error, the receiving buffer may overflow, resulting in loss of video packets. Video quality has dropped dramatically. Summary of the invention
  • the embodiment of the present invention provides a video service data transmission method, a data receiving device, and a data transmitting device.
  • the technical solution is as follows:
  • an embodiment of the present invention provides a video service data receiving apparatus, where the apparatus includes: a first receiving module, configured to receive a video data packet;
  • a first determining module configured to determine, if the video data is received by the first receiving module Whether the packet is placed in the receive buffer will cause the receive buffer to overflow
  • a first processing module configured to: when the result of the determining by the first determining module is that the video data packet is placed in a receiving buffer, causing the receiving buffer to overflow, determining a type of the video data packet, where The types of video packets are important and not important;
  • the type of the video data packet received by the first receiving module is not important, directly discarding the video data packet received by the first receiving module; if the first receiving module receives the The type of the video data packet is important, and the video data packet of the type closest to the tail of the video is not important in the receiving buffer queue, and the type of the video packet closest to the tail of the team is The unimportant video data packet is discarded, and the video data packet received by the first receiving module is added to the tail of the receiving buffer queue.
  • the first processing module includes:
  • a determining unit configured to acquire header information in the video data packet, where the header information includes a type of the video data packet.
  • the video data packet further carries a data packet number
  • the device further includes:
  • a detecting module configured to periodically detect whether a number of the video data packet in the receiving buffer is consecutive
  • the first processing module is further configured to send, according to the detection result of the detection module, a retransmission request message to the sending end, where the retransmission request message includes an identifier of the video data packet to be retransmitted.
  • the device further includes:
  • a timing module configured to: when the retransmission request message is sent, set a retransmission timer
  • the first processing module is further configured to resend the retransmission request message when the retransmission timer expires and all the video data packets to be retransmitted in the retransmission request message are not received.
  • an embodiment of the present invention further provides a video service data sending apparatus, where the apparatus includes:
  • a sending module configured to send a video data packet in the sending buffer, and copy the video data packet in the sending buffer into a retransmission buffer;
  • a second receiving module configured to obtain a retransmission request packet sent by the receiving end, where the retransmission request packet includes an identifier of the video data packet to be retransmitted;
  • a second determining module configured to determine, according to the retransmission request packet received by the second receiving module, a type of the video data packet to be retransmitted, where the type of the video data packet to be retransmitted is important and not important; a second processing module, configured to determine, according to the type of the video data packet to be retransmitted that is determined by the second determining module, a maximum number of retransmissions of the video data packet to be retransmitted within a timeout threshold, where the type is important
  • the maximum number of retransmissions of the video data packet to be retransmitted is greater than the maximum number of retransmissions of the video data packet to be retransmitted, and the number of retransmissions of the video data packet to be retransmitted within the timeout threshold is determined.
  • the second processing module is configured to determine, according to the following formula, a maximum number of retransmissions corresponding to the to-be-retransmitted video data packet:
  • R maxI is the maximum number of retransmissions of the video data packet to be retransmitted of the type
  • R maxN is the video to be retransmitted of the type that is not important
  • Th is the timeout threshold set by the video service
  • RTT is the average feedback confirmation period of the video data packet between the transmitting end and the receiving end.
  • the second processing module is configured to write the to-retransmitted video data packet from the retransmission buffer to a queue head of the sending buffer queue. send.
  • the second processing module is further configured to: when the number of retransmissions of the video data packet to be retransmitted is equal to the maximum number of retransmissions, The video data packet to be retransmitted is discarded in the transmission buffer.
  • the retransmission request packet further includes an identifier for confirming the received video data packet
  • the second processing module is further configured to report according to the retransmission request And discarding the received video data packet from the retransmission buffer.
  • an embodiment of the present invention further provides a video service data transmission method, where the method includes:
  • the receiving buffer When the result of the judgment is that the received video data packet is placed in the receiving buffer, it will cause When the receiving buffer overflows, determining the type of the received video data packet, the type of the video data packet includes important and unimportant;
  • the receiving buffer queue is Find a video packet whose type closest to the tail of the team is an unimportant video packet, and discard the video packet of the type closest to the tail of the team as an unimportant video packet, and receive the video.
  • the data packet is added to the end of the queue of the receive buffer.
  • the determining the type of the video data packet includes:
  • the header information including a type of the video data packet.
  • the video data packet further carries a data packet number, where the method further includes:
  • the method further includes:
  • the retransmission request message is resent.
  • an embodiment of the present invention further provides a video service data transmission method, where the method includes:
  • the video data packet to be retransmitted is sent to the receiving end.
  • the determining, according to the type of the video data packet to be retransmitted, the maximum number of retransmissions of the video data packet to be retransmitted within a timeout threshold including:
  • the maximum number of retransmissions corresponding to the to-be-retransmitted video data packet is determined according to the following formula: ⁇ 0.6
  • Th is the timeout threshold set for the video service
  • RTT is the average feedback confirmation period of the video data packet between the transmitting end and the receiving end.
  • the sending, by the receiving end, the video data packet to be retransmitted includes:
  • the video data packet to be retransmitted is written from the retransmission buffer to the head of the transmission buffer queue and transmitted.
  • the method further includes:
  • the video data packet to be retransmitted is discarded from the retransmission buffer.
  • the retransmission request packet further includes an identifier for confirming the received video data packet, where the method further includes:
  • the video service data transmission is performed, if the receiving buffer overflows, the type of the video data packet is determined, and when an important video data packet is received, the unimportant video data packet in the receiving buffer queue is discarded, thereby The important video data packets received can be stored in the receiving buffer. Since important video data packets carry key frames, the video loss caused by the loss of key frames is much greater than the loss of non-key frames. Therefore, the above method avoids receiving. When the buffer overflows, the key frames are guaranteed not to be lost. It has avoided a significant drop in video quality and improved the quality of video services. DRAWINGS
  • FIG. 1 is a schematic diagram of a video service data transmission scenario according to an embodiment of the present invention.
  • FIG. 2 is a flowchart of a video service data transmission method according to Embodiment 1 of the present invention.
  • FIG. 3 is a flowchart of a video service data transmission method according to Embodiment 2 of the present invention.
  • FIG. 4 is a flowchart of a video service data transmission method according to Embodiment 3 of the present invention.
  • FIG. 5 is a flowchart of a video service data transmission method according to Embodiment 4 of the present invention.
  • FIG. 6 is a schematic structural diagram of a video service data receiving apparatus according to Embodiment 5 of the present invention
  • FIG. 7 is a schematic structural diagram of a video service data receiving apparatus according to Embodiment 6 of the present invention
  • FIG. 8 is a video service according to Embodiment 7 of the present invention
  • FIG. 9 is a schematic structural diagram of a video service data transmitting apparatus according to Embodiment 8 of the present invention
  • FIG. 10 is a schematic structural diagram of a video service data receiving apparatus according to Embodiment 9 of the present invention
  • FIG. 1 is a Universal Mobile Telecommunications System Terrestrial Radio Access Network (UTRAN), and 2 is a core network. (Core Net, the tube is called "CN"), 3 is the Internet (Internet), and 4 is the video server.
  • UTRAN Universal Mobile Telecommunications System Terrestrial Radio Access Network
  • CN the tube
  • Internet the Internet
  • 4 the video server.
  • the UE 11 and the video server 4 are connected by UTRAN 1, CN 2 and Internet 3.
  • the CN 2 mainly includes a general packet radio service technical service support node (Serving GPRS SUPPORT NODE, called "SGSN” 21 and a Gateway GPRS Support Node (Gigaway GPRS Support Node, called "GGSN") 22,
  • the UTRAN 4 mainly includes an RNC 13 and a base station (Node B) 12, wherein the RNC 13 is responsible for the transmission control of the wireless part, due to the wireless part ( UTRAN) bandwidth shadow
  • the RNC and the UE may be in the process of transmitting the video data packet, which may result in the loss of the video data packet, thereby causing the video service quality to be degraded.
  • the problem to be solved by the embodiment of the present invention is how to solve the problem. Maximize video quality in the case of poor wireless network conditions.
  • Embodiment 1 is how to solve the problem. Maximize video quality in the case of poor wireless network conditions.
  • the embodiment of the present invention provides a video service data transmission method, which is performed by a receiving end in a video service, and the receiving end may be a UE or an RNC.
  • the method includes:
  • Step 101 Receive a video data packet.
  • Step 102 Determine if the received video data packet is placed in the receive buffer, whether the receive buffer overflows. If the result of the judgment is that the received video data packet is placed in the receive buffer, the receive buffer overflow will not be caused. Then, if the result is that the received video data packet is placed in the receiving buffer, the receiving buffer overflows. Then, step 104 is performed, and the receiving buffer is used to store the received video data packet.
  • Step 103 Put the received video data packet into the tail of the receiving buffer queue.
  • Step 104 Determine the type of the received video data packet. If the type of the received video data packet is not important, go to step 105. If the type of the received video data packet is important, perform step 106, the video data.
  • the package type includes not important and important.
  • Step 105 Discard the received video data packet directly.
  • Step 106 Find a video data packet of the type closest to the tail of the video packet that is not important in the receive buffer queue, and discard the video packet of the type closest to the tail of the queue as an unimportant video data packet. , the received video data packet is added to the end of the queue of the receive buffer.
  • the video service data transmission when the video service data transmission is performed, if the receiving buffer overflows, the type of the video data packet is determined, and when an important video data packet is received, the unimportant video data packet in the buffer queue is received. Discard, so that important video packets received can be stored in the receive buffer. Since important video packets carry key frames, the video loss caused by the loss of key frames is much greater than the loss of non-key frames. It avoids the loss of key frames when the receive buffer overflows, avoids a significant drop in video quality, and improves the quality of video services.
  • Embodiment 2 Embodiment 2
  • An embodiment of the present invention provides a video service data transmission method, where the method is used in a video service.
  • the receiving end is executed by the receiving end, and the receiving end may be a UE or an RNC.
  • the embodiment of the present invention further describes the first embodiment, and the further description includes, but is not limited to, the type of the video data packet, the sending of the retransmission request message, and the like.
  • Figure 3. The method includes:
  • Step 201 Receive a video data packet.
  • the receiving end of the step 201 may be a UE or an RNC.
  • the video data packet received by the receiving end is an SDU.
  • the receiving end is a UE, the video data packet received by the receiving end is a PDU.
  • Step 202 Determine if the received video data packet is placed in the receive buffer, whether the receive buffer overflows. If the result of the judgment is that the received video data packet is placed in the receive buffer, the receive buffer overflow will not be caused. Then, in step 203, if the result of the determination is that the received video data packet is placed in the receiving buffer, the receiving buffer overflows, and step 204 is performed.
  • the receive buffer is used to store the received video data packet.
  • Step 203 Put the received video data packet into the tail of the receiving buffer queue.
  • Step 204 Determine the type of the received video data packet. If the type of the received video data packet is not important, go to step 205. If the type of the received video data packet is important, perform step 206, the video. The type of packet includes not important and important.
  • step 204 can be implemented in the following manner:
  • Obtaining header information in a video data packet the header information including a type of video data packet.
  • the header is the SDU header
  • the header is the PDU header
  • the type of the video packet is recorded in the SDU header or the PDU header.
  • Unimportant video data packets and important video data packets may be pre-defined, and the prescribed basis may be The size and importance of the video packet.
  • Unimportant video data packets and important video data packets may be pre-defined, and the prescribed basis may be The size and importance of the video packet.
  • H.264 Take H.264 as an example: Under the coding mechanism, the I frame represents the key frame, and the frame picture remains intact; only the frame data can be completed during decoding.
  • the P frame represents a difference frame, and the difference between this frame and a previous key frame (or P frame) is recorded. When decoding, it is necessary to superimpose the difference defined by the frame with the previously buffered picture to generate a final picture.
  • the B frame is a bidirectional difference frame, that is, the B frame records the difference between the current frame and the previous frame.
  • the embodiment of the present invention can be applied to H.262 in addition to the above H.264 video coding mechanism. Among other video coding mechanisms, it is important and not important to distinguish the function and importance of video packets in other video coding mechanisms.
  • Step 205 Discard the received video data packet directly.
  • Step 206 Find a video data packet of the type closest to the tail of the video packet that is not important in the receive buffer queue, and drop the video packet of the latest one of the left end of the queue to an unimportant video data packet. Discard, add the received video data packet to the end of the queue of the receive buffer queue.
  • Step 207 Periodically detecting whether the number of the video data packet in the receiving buffer is continuous, and the video data packet also carries the data packet number.
  • the number of the video data packet may be carried in the header of the video data packet, and the number is generated by the sending end according to a certain mechanism. It should be noted that, in step 207, when detecting whether the number of the video data packet is continuous, it is detected backward from the video packet with the smallest number. For example, the video in the receiving buffer includes numbers 3, 4, 6, and 7. Packet, the result of this detection is the loss of the video packet numbered 5.
  • Step 208 Send a retransmission request message to the sending end according to the detection result of step 207.
  • the retransmission request message includes an identifier of the video data packet to be retransmitted and an identifier of the received video data packet, where the identifier may be a video. The number of the packet.
  • a Bitmap can be set in the retransmission request>3b4, which is used to identify which video data packets are not correctly received, and which video data packets have been correctly received, and the Bitmap has the last record recorded by the Bitmap.
  • the number of the video data packet, and the video data packet at the far left of the Bitmap is the first one lost during the detection process of step 207, and the video packet number recorded later is sequentially incremented, and each bit of the Bitmap is represented. Whether a video packet is received correctly, for example, 0 means that it was not received correctly, 1 means that it has been received correctly, and the total length of the Bitmap cannot exceed the total length of the buffer queue. It is easy to know that a video packet smaller than the number of the leftmost packet is considered to have been received correctly.
  • a retransmission timer is set.
  • Resend the retransmission request message It is easy to know that the retransmitted retransmission request message may be different from the identifier of the to-be-retransmitted video data packet included in the previous retransmission request message, and the retransmitted retransmission request message is in the previous retransmission request message.
  • the received video data packet to be retransmitted is marked as acknowledging the received video data packet.
  • a request is made to retransmit all the lost video data packets, and all the correctly received video data packets are confirmed.
  • the retransmission request message and the acknowledgement message may also be used to request to retransmit all the lost video data packets, and confirm the correctly received video data packets, and each retransmission request message Or the acknowledgment message can only be used to request retransmission or confirmation of a video packet.
  • the method further includes: periodically assembling the video data packets in the receiving buffer into SDUs in a predetermined number order, and submitting the SDU to the upper layer.
  • the receiving buffer includes 1, 2, 3, 5, 6, 7, 8, and 9 video data packets, and it is required to assemble 4 video data packets into 1 each time.
  • SDU when the cycle time is reached, assembles video packets 1, 2, 3, and 5 into one SDU, and assembles video packets 6, 7, 8, and 9 into one SDU.
  • the method further includes: segmenting the received video data packet, and transmitting the segmented PDU to the UE.
  • the video service data transmission when the video service data transmission is performed, if the receiving buffer overflows, the type of the video data packet is determined, and when an important video data packet is received, the unimportant video data packet in the buffer queue is received. Discard, so that important video packets received can be stored in the receive buffer. Since important video packets carry key frames, the video loss caused by the loss of key frames is much greater than the loss of non-key frames. It avoids the loss of key frames when the receive buffer overflows, avoids a significant drop in video quality, and improves the quality of video services. On the other hand, when it is detected that there is a video packet missing, by requesting retransmission, it is further ensured that the video frame is not lost, thereby improving the video service quality.
  • Embodiment 3 when it is detected that there is a video packet missing, by requesting retransmission, it is further ensured that the video frame is not lost, thereby improving the video service quality.
  • An embodiment of the present invention provides a video service data transmission method, where the method is performed by a sender in a video service, and the sender may be an RNC, and the receiver corresponding to the sender may be a UE, and the corresponding action of the receiver is implemented.
  • the method includes:
  • Step 301 Send a video packet in the send buffer, and copy the video packet in the send buffer into the retransmission buffer.
  • Step 302 Obtain a retransmission request message sent by the receiving end, where the retransmission request message includes an identifier of the video data packet to be retransmitted.
  • Steps 301 and 302 have no sequential relationship.
  • Step 303 Determine, according to the received retransmission request packet, the type of the video data packet to be retransmitted, and the type of the video data packet to be retransmitted includes important and unimportant.
  • Step 304 Determine, according to the type of the video data packet to be retransmitted, the maximum number of retransmissions of the video data packet to be retransmitted within the timeout threshold, and the type of the important retransmission video data packet whose maximum number of retransmissions is greater than the type is not important. The maximum number of retransmissions of the video packet to be retransmitted.
  • Step 305 Determine the number of times the video data packet to be retransmitted has been retransmitted within the timeout threshold.
  • Step 306 When the number of retransmissions of the video data packet to be retransmitted is less than the maximum number of retransmissions, send the video data packet to be retransmitted to the receiving end.
  • the number of retransmissions of different types of video data packets to be retransmitted is determined according to the type of the video data packet to be retransmitted, and the type is an important maximum retransmission of the video data packet to be retransmitted.
  • the number of times of retransmission is greater than the maximum number of retransmissions of the video packet to be retransmitted, which ensures that the number of retransmissions of important video packets to be retransmitted with key frames can be obtained, so that when the network is in poor condition , can also effectively guarantee the quality of video services.
  • An embodiment of the present invention provides a video service data transmission method, where the method is performed by a sender in a video service, and the sender may be an RNC, and the receiver corresponding to the sender may be a UE, and the corresponding action of the receiver is implemented.
  • Example 1 or 2 the embodiment of the present invention is a further description of the third embodiment. Referring to FIG. 5, the method includes:
  • Step 401 Send the video data packet in the sending buffer, and copy the video data packet in the sending buffer into the retransmission buffer.
  • the step 401 includes:
  • the to-be-sent video packet can be a PDU obtained by segmenting the video packet received in the receive buffer.
  • the video data packet in the transmission buffer is sent to the UE, and the video data packet is copied into the retransmission buffer when the video data packet is sent, so that the video data packet needs to be retransmitted.
  • Step 402 Obtain a retransmission request message sent by the receiving end, where the retransmission request message includes an identifier of the video data packet to be retransmitted.
  • the video data packet to be retransmitted is a video data packet that is missing at the receiving end, and the identifier of the video data packet to be retransmitted may be a number of the video data packet to be retransmitted.
  • Steps 401 and 402 have no sequential relationship and can be executed simultaneously.
  • Step 403 Determine, according to the received retransmission request packet, the type of the video data packet to be retransmitted, and the type of the video data packet to be retransmitted includes important and unimportant.
  • Unimportant video data packets and important video data packets may be pre-defined, and the prescribed basis may be The size and importance of the video packet.
  • the I frame represents the key frame, and the frame picture remains intact; only the frame data can be decoded during decoding.
  • the P frame represents the difference frame, and the difference between this frame and the previous key frame (or P frame) is recorded. ij, the difference between the definition of the frame and the previously buffered picture needs to be superimposed to generate the final picture.
  • the B frame is a bidirectional difference frame, that is, the B frame records the difference between the current frame and the previous frame.
  • the embodiment of the present invention can be applied to other video coding mechanisms such as H.262, in addition to the above H.264 video coding mechanism.
  • Step 404 Determine, according to the type of the video data packet to be retransmitted, the maximum number of retransmissions of the video data packet to be retransmitted within the timeout threshold, and the type of the important retransmission video data packet whose maximum number of retransmissions is greater than the type is not important. The maximum number of retransmissions of the video packet to be retransmitted.
  • step 404 can be implemented in the following manner:
  • R maxI is the maximum number of retransmissions of the video packet to be retransmitted
  • R maxN is the maximum number of retransmissions of the video packet to be retransmitted
  • Th is the timeout threshold set for the video service.
  • RTT is the average feedback acknowledgement period of the video data packet between the sender and the receiver. The average feedback confirmation period refers to the average round-trip time of the data between the transmitting end and the receiving end, and the time can be obtained according to statistics, and details are not described herein again.
  • the maximum number of retransmissions of the important to-be-retransmitted video data packet and the unimportant video data packet to be retransmitted in the step 404 may also be a set value. For example, important waiting The maximum number of retransmissions of retransmitted video packets is 5, and the maximum number of retransmissions of unimportant video packets to be retransmitted is 2.
  • Step 405 Determine the number of times the video data packet to be retransmitted has been retransmitted within the timeout threshold.
  • the method includes: when transmitting the video data packet to the receiving end, recording the number of retransmissions of the video data packet within a timeout threshold.
  • Step 406 When the number of retransmissions of the video data packet to be retransmitted is less than the maximum number of retransmissions, send the video data packet to be retransmitted to the receiving end; when the number of retransmissions of the video data packet to be retransmitted is equal to the maximum weight When the number of transmissions is exceeded, the packet to be retransmitted is discarded from the retransmission buffer.
  • the sending the to-retransmitted video data packet to the receiving end may be performed in the following manner:
  • the video data packet to be retransmitted is written from the retransmission buffer to the head of the transmission buffer queue and sent. Further, the retransmission request message further includes an identifier for confirming the received video data packet, where the method further includes:
  • the received video data packet is confirmed to be discarded from the retransmission buffer.
  • the number of the video data packet to be retransmitted and the number of the received video data packet may be obtained according to a Bitmap in the retransmission request message, where the Bitmap is used to identify which video data packets are not correctly received, and the leftmost bitmap is The number of the video packet starting from the Bitmap is recorded on the side, and the video packet at the far left of the Bitmap is the first one detected during the detection process, and the video packet number recorded later is incremented, Bitmap per One bit indicates whether a video data packet is correctly received. For example, 0 indicates that the video data packet to be retransmitted is not correctly received, and 1 indicates that the received video data packet has been correctly received. The total length of the Bitmap cannot exceed the receiving end. The total length of the buffer queue.
  • the number of retransmissions of different types of video data packets to be retransmitted is determined according to the type of the video data packet to be retransmitted, and the type is an important maximum retransmission of the video data packet to be retransmitted.
  • the number of times of retransmission is greater than the maximum number of retransmissions of the video packet to be retransmitted, which ensures that the number of retransmissions of important video packets to be retransmitted with key frames can be obtained, so that when the network is in poor condition
  • the number of retransmissions of the video service data packet is related to the timeout threshold of the video service, when the video data packet is retransmitted, the important video data packet is determined according to the timeout threshold.
  • the number of retransmissions of important video data packets ensures the real-time requirements of video services.
  • An embodiment of the present invention provides a video service data receiving apparatus, where the apparatus may be a UE or an RNC.
  • the apparatus includes:
  • the first receiving module 501 is configured to receive a video data packet.
  • the first determining module 502 is configured to determine whether the receiving buffer buffer is used to store the received video data packet if the video data packet received by the first receiving module 501 is placed in the receiving buffer.
  • the first processing module 503 is configured to: when the judgment result of the first determining module 502 is that the video data packet is placed in the receiving buffer, causing the receiving buffer to overflow, determine the type of the video data packet, where the video data packet is Types include not important and important;
  • the video data packet received by the first receiving module 501 is directly discarded; if the type of the video data packet received by the first receiving module 501 is important And finding the type of the video packet closest to the tail of the queue in the receive buffer queue is not important, and the type of the video packet closest to the tail of the queue is not important, and the first receiving module 501 receives the The video packet is added to the end of the queue of the receive buffer.
  • the video service data transmission when the video service data transmission is performed, if the receiving buffer overflows, the type of the video data packet is determined, and when an important video data packet is received, the unimportant video data packet in the buffer queue is received. Discard, so that important video packets received can be stored in the receive buffer. Since important video packets carry key frames, the video loss caused by the loss of key frames is much greater than the loss of non-key frames. It avoids the loss of key frames when the receive buffer overflows, avoids a significant drop in video quality, and improves the quality of video services.
  • Embodiment 6 Embodiment 6
  • the embodiment of the present invention provides a video service data receiving apparatus, which may be a UE or an RNC.
  • the embodiment of the present invention is further described in Embodiment 5.
  • the apparatus includes: a first receiving module 601, Receiving a video data packet;
  • the first determining module 602 is configured to determine, if the video data packet received by the first receiving module 601 is placed in the receiving buffer, whether the receiving buffer overflows, and the receiving buffer is configured to store the received video data packet;
  • the first processing module 603 is configured to: when the judgment result of the first determining module 602 is that the video data packet is placed in the receiving buffer, and does not cause the receiving buffer to overflow, the video data packet is placed in the receiving The tail of the buffer queue; when the result of the judgment is that the video data packet is placed in the receive buffer, causing the receive buffer to overflow, the type of the video data packet is determined, and the type of the video data packet includes unimportant and important;
  • the video data packet received by the first receiving module 601 is directly discarded; if the type of the video data packet received by the first receiving module 601 is important , in the receive buffer queue, find a video data packet of the type closest to the tail of the video packet that is not important, and discard the video packet of the type that is closest to the tail of the team to an unimportant video packet. And adding the video data packet received by the first receiving module 601 to the end of the queue of the receiving buffer.
  • the receiving end may be a UE or an RNC.
  • the video data packet received by the receiving end is an SDU.
  • the receiving end receives the video data packet as a PDU.
  • the first processing module 603 can include:
  • the determining unit is configured to obtain header information in the video data packet, where the header information includes a type of the video data packet.
  • the header is the SDU header
  • the header is the PDU header
  • the type of the video packet is recorded in the SDU header or the PDU header.
  • Unimportant video data packets and important video data packets may be pre-defined, and the prescribed basis may be The size and importance of the video packet.
  • the I frame represents the key frame, and the frame picture remains intact; only the frame data can be decoded during decoding.
  • the P frame represents the difference frame, and the difference between this frame and the previous key frame (or P frame) is recorded. ij, the difference between the definition of the frame and the previously buffered picture needs to be superimposed to generate the final picture.
  • the B frame is a bidirectional difference frame, that is, the B frame records the difference between the current frame and the previous frame.
  • the embodiment of the present invention can be applied to other video coding mechanisms such as H.262, in addition to the above H.264 video coding mechanism.
  • the apparatus further includes a detecting module 604, configured to periodically detect whether the number of the video data packet in the receiving buffer is continuous, and the video data packet further carries the data packet number.
  • the number of the video data packet may be carried in the header of the video data packet. It is worth noting that when detecting whether the number of the video data packet is continuous, it is detected backward from the video packet with the smallest number. For example, the video buffer packet with numbers 3, 4, 6, and 7 is included in the receiving buffer. The result of the test is that the video packet numbered 5 is lost.
  • the first processing module 603 is further configured to: send, according to the detection result of the detecting module 604, a retransmission request message to the sending end, where the retransmission request message includes an identifier of the video data packet to be retransmitted, and confirms the received The identifier of the video data packet, which may be the number of the video data packet.
  • a Bitmap can be set in the retransmission request>3b4, which is used to identify which video data packets are not correctly received, and the leftmost record of the Bitmap records the number of the video data packet starting from the Bitmap, and is in the The video packet on the far left of the Bitmap is the first one lost during the detection process. The number of the video packets recorded later is incremented.
  • Each bit of the Bitmap indicates whether a video packet is correctly received, for example, 0. Not correctly received, 1 means that it has been received correctly, the total length of Bitmap cannot exceed the total length of the buffer queue.
  • the device further includes a timing module, configured to: when the retransmission request message is sent, set a retransmission timer; the first processing module 603 is further configured to time out when the retransmission timer expires. And when all the video data packets to be retransmitted in the retransmission request message are not received, the retransmission request message is resent. It is easy to know that the retransmitted retransmission request message may be different from the identifier of the to-be-retransmitted video data packet included in the previous retransmission request message, and the retransmitted retransmission request message is in the previous retransmission request message. On the basis of the text, the received video data packet to be retransmitted is marked as acknowledging the received video data packet.
  • a retransmission request message in this embodiment, it is requested to retransmit all lost video data packets and confirm all the correctly received video data packets.
  • the retransmission request message and the acknowledgement message may also be used to request to retransmit all the lost video data packets, and confirm the correctly received video data packets, and each retransmission request message Or the acknowledgment message can only be used to request retransmission or confirmation of a video packet.
  • the first processing module 603 is further configured to periodically assemble the video data packets in the receiving buffer into SDUs in a predetermined number order, and deliver the SDUs to the upper layer.
  • the receiving buffer includes 1, 2, 3, 5, 6, 7, 8, and 9 video data packets, and it is required to assemble 4 video data packets into 1 each time.
  • SDU when the cycle time is reached, the video data packets 1, 2, 3 and 5 are assembled into one SDU, and the video data is Packages 6, 7, 8, and 9 are assembled into one SDU.
  • the first processing module 603 is further configured to segment the received video data packet, and send the segmented PDU to the UE.
  • the video service data transmission when the video service data transmission is performed, if the receiving buffer overflows, the type of the video data packet is determined, and when an important video data packet is received, the unimportant video data packet in the buffer queue is received. Discard, so that important video packets received can be stored in the receive buffer. Since important video packets carry key frames, the video loss caused by the loss of key frames is much greater than the loss of non-key frames. It avoids the loss of key frames when the receive buffer overflows, avoids a significant drop in video quality, and improves the quality of video services. On the other hand, when it is detected that there is a video packet missing, by requesting retransmission, it is further ensured that the video frame is not lost, thereby improving the video service quality.
  • An embodiment of the present invention provides a video service data sending apparatus, where the apparatus may be a UE or an RNC.
  • the apparatus includes:
  • a sending module 701 configured to send a video data packet in the sending buffer, and copy the video data packet in the sending buffer into the retransmission buffer;
  • the second receiving module 702 is configured to obtain a retransmission request packet sent by the receiving end, where the retransmission request packet includes an identifier of the video data packet to be retransmitted;
  • the second judging module 703 is configured to determine, according to the retransmission request packet received by the second receiving module 702, the type of the video data packet to be retransmitted, and the type of the video data packet to be retransmitted includes important and unimportant;
  • the module 704 is configured to determine, according to the type of the video data packet to be retransmitted that is determined by the second determining module 703, the maximum number of retransmissions of the video data packet to be retransmitted within a timeout threshold, and the type is the maximum retransmission of the important video data packet.
  • the number of retransmissions is greater than the maximum number of retransmissions of the video data packet whose type is not important, and the number of retransmissions of the video data packet to be retransmitted is determined to be less than the maximum retransmission.
  • the video data packet to be retransmitted is sent to the receiving end.
  • the number of retransmissions of different types of video data packets to be retransmitted is determined according to the type of the video data packet to be retransmitted, and the type is an important maximum retransmission of the video data packet to be retransmitted.
  • the number of times of retransmission is greater than the maximum number of retransmissions of the video packet to be retransmitted, which ensures that the number of retransmissions of important video packets to be retransmitted with key frames can be obtained, so that when the network is in poor condition , can also effectively guarantee the quality of video services.
  • An embodiment of the present invention provides a video service data sending apparatus, which may be an RNC.
  • the embodiment of the present invention is further described in Embodiment 7. Referring to FIG. 9, the apparatus includes:
  • a sending module 801 configured to send a video data packet in the sending buffer, and copy the video data packet in the sending buffer into the retransmission buffer;
  • the second receiving module 802 is configured to obtain a retransmission request packet sent by the receiving end, where the retransmission request packet includes an identifier of the video data packet to be retransmitted, and the identifier of the video data packet to be retransmitted may be a video data packet to be retransmitted. Number
  • the second determining module 803 is configured to determine, according to the retransmission request packet received by the second receiving module 802, the type of the video data packet to be retransmitted, and the type of the video data packet to be retransmitted includes important and unimportant;
  • the definition of the unimportant video data packet and the important video data packet are different.
  • the unimportant video data packet and the important video data packet may be pre-defined, and the prescribed basis may be the video data packet.
  • the size and importance of the role Take H.264 as an example: Under this coding mechanism, the I frame represents the key frame, and the frame picture remains intact; only the frame data can be decoded during decoding.
  • the P frame represents a difference frame, and the difference between this frame and a previous key frame (or P frame) is recorded.
  • the B frame is a bidirectional difference frame, that is, the B frame records the difference between the current frame and the previous frame.
  • the I frame data packet is an important video data packet
  • the B frame data packet and the P frame data packet are unimportant video data packets.
  • the embodiment of the present invention can be applied to other video coding mechanisms such as H.262, in addition to the above H.264 video coding mechanism.
  • the second processing module 804 is configured to determine, according to the type of the video data packet to be retransmitted that is determined by the second determining module 803, the maximum number of retransmissions of the video data packet to be retransmitted within a timeout threshold, and the type is an important video to be retransmitted.
  • the maximum number of retransmissions of the data packet is greater than the maximum number of retransmissions of the video data packet to be retransmitted, and the number of retransmissions of the video data packet to be retransmitted within the timeout threshold is determined.
  • the video data packet to be retransmitted is sent to the receiving end; when the number of retransmissions of the video data packet to be retransmitted is equal to the maximum number of retransmissions, the retransmission buffer is lost. Discard the packet to be retransmitted.
  • the sending module 801 writes the to-be-sent video data packet into the sending buffer, and then sends the sending buffer.
  • the video data packet is sent to the UE, and the video data packet is copied into the retransmission buffer when the video data packet is sent, in case the video data packet needs to be retransmitted.
  • the to-be-sent video data packet may be a PDU obtained by segmenting the video data packet received in the receive buffer.
  • the second processing module 804 can determine the maximum number of retransmissions corresponding to the to-be-retransmitted video data packet according to the following formula:
  • R maxI is the maximum number of retransmissions of the video data packet to be retransmitted
  • R maxN is the maximum number of retransmissions of the video data packet to be retransmitted
  • Th is the timeout threshold set for the video service.
  • RTT is the average feedback acknowledgement period of the video data packet between the sender and the receiver. The average feedback confirmation period refers to the average round-trip time of the data between the transmitting end and the receiving end, and the time can be obtained according to statistics, and details are not described herein again.
  • the maximum number of retransmissions of an important video packet and an unimportant video packet may also be a set value.
  • the maximum number of retransmissions for important video packets is 5, and the maximum number of retransmissions for unimportant video packets is 2.
  • the second processing module 804 is further configured to record, when the video data packet is sent to the receiving end, the number of retransmissions of the video data packet within a timeout threshold.
  • the second processing module 804 is further configured to write the to-retransmitted video data packet from the retransmission buffer to the head of the transmit buffer queue and send the packet.
  • the retransmission request message further includes an identifier for confirming the received video data packet
  • the second processing module 804 is further configured to: according to the retransmission request message, confirm the received video data packet from the retransmission buffer. Discarded in the area.
  • the number of the video data packet to be retransmitted and the number of the received video data packet may be obtained according to a Bitmap in the retransmission request message, where the Bitmap is used to identify which video data packets are not correctly received, and the leftmost bitmap is The number of the video packet starting from the Bitmap is recorded on the side, and the video packet at the far left of the Bitmap is the first one detected during the detection process, and the video packet number recorded later is incremented, Bitmap per One bit indicates whether a video data packet is correctly received. For example, 0 indicates that the video data packet to be retransmitted is not correctly received, and 1 indicates that the received video data packet has been correctly received. The total length of the Bitmap cannot exceed the receiving end. Buffer queue total Length.
  • the number of retransmissions of different types of video data packets to be retransmitted is determined according to the type of the video data packet to be retransmitted, and the type is an important maximum retransmission of the video data packet to be retransmitted.
  • the number of times of retransmission is greater than the maximum number of retransmissions of the video packet to be retransmitted, which ensures that the number of retransmissions of important video packets to be retransmitted with key frames can be obtained, so that when the network is in poor condition
  • the number of retransmissions of the video service data packet is related to the timeout threshold of the video service, when the video data packet is retransmitted, important video data packets are determined according to the timeout threshold.
  • the number of retransmissions of unimportant video packets ensures the real-time requirements of the video service.
  • the embodiment of the present invention provides a video service data receiving apparatus.
  • the apparatus 90 generally includes a first memory 91, a first processor 92, a first transmitter 93, and a first receiver 94.
  • the structure shown in FIG. 10 does not constitute a limitation to the present gateway, and may include more or less components than those illustrated, or some components may be combined, or different component arrangements.
  • the first memory 91 can be used to store software programs and application modules, and the first processor 92 executes various functional applications and data processing of the device 90 by running software programs and application modules stored in the first memory 91.
  • the first memory 91 may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application required for at least one function, and the like; and the storage data area may store data created according to the processing of the device 90.
  • the first memory 91 may include a high speed RAM (random access memory), and may also include a non-volatile memory such as at least one magnetic disk storage device, a flash memory device, or other volatile Solid state storage devices.
  • the first processor 92 is the control center of the device 90, which connects the various portions of the entire computer using various interfaces and lines.
  • the first processor 92 can implement: by running or executing a software program and/or an application module stored in the first memory 91, and calling data stored in the first memory 91, the first processor 92 can:
  • the receive buffer is used to store the received video data packet. When the judgment result is that the data packet is put into the receive buffer, the receive buffer overflows.
  • the type of the video data packet received by the first receiver 94 is determined, and the data packet type includes important and unimportant; if the type of the video data packet received by the first receiver 94 is not important, the data packet is directly discarded.
  • a video data packet received by a receiver 94 if the type of the video data packet received by the first receiver 94 is important, the type of the video data packet closest to the tail of the queue is found to be unimportant in the receive buffer queue.
  • the video data packet discards the video data packet of the type closest to the tail of the team as an unimportant video data packet, and adds the video data packet received by the first receiver 94 to the end of the queue of the receiving buffer queue.
  • first processor 92 can also implement:
  • the header information including a type of video data packet.
  • the data packet further carries a data packet number, and the first processor 92 further implements: periodically detecting whether the number of the video data packet in the receiving buffer is continuous;
  • the retransmission request message is sent to the sending end, and the retransmission request message includes an identifier of the video data packet to be retransmitted.
  • first processor 92 can also implement:
  • the retransmission request message is resent.
  • the video service data transmission when the video service data transmission is performed, if the receiving buffer overflows, the type of the video data packet is determined, and when an important video data packet is received, the unimportant video data packet in the buffer queue is received. Discard, so that important video packets received can be stored in the receive buffer. Since important video packets carry key frames, the video loss caused by the loss of key frames is much greater than the loss of non-key frames. It avoids the loss of key frames when the receive buffer overflows, avoids a significant drop in video quality, and improves the quality of video services. On the other hand, when it is detected that there is a video packet missing, by requesting retransmission, it is further ensured that the video frame is not lost, thereby improving the video service quality.
  • the embodiment of the present invention provides a video service data sending apparatus.
  • the apparatus 100 generally includes a second memory 1001, a second processor 1002, a second transmitter 1003, and a second interface. Receiver 1004 and other components. It will be understood by those skilled in the art that the structure shown in FIG. 11 does not constitute a limitation to the present gateway, and may include more or less components than those illustrated, or some components may be combined, or different component arrangements.
  • the second memory 1001 can be used to store software programs and application modules, and the second processor 1002 can execute various functional applications and data processing of the device 100 by running software programs stored in the second memory 1001 and application modules.
  • the second memory 1001 may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application required for at least one function, and the like; the storage data area may store data created according to the processing of the device 100.
  • the second memory 1001 may include a high speed RAM (random access memory), and may also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, or other volatile Solid state storage devices.
  • the second processor 1002 is the control center of the device 100, which connects various parts of the entire computer using various interfaces and lines.
  • the second processor 1002 can implement: by running or executing a software program and/or an application module stored in the second memory 1001, and calling data stored in the second memory 1001, the second processor 1002 can implement:
  • the retransmission request packet includes an identifier of the video data packet to be retransmitted.
  • the type of the video data packet to be retransmitted is determined according to the received retransmission request packet, and the type of the video data packet to be retransmitted includes important and unimportant; Determine the maximum number of retransmissions of the video data packet to be retransmitted within the timeout threshold according to the type of the video data packet to be retransmitted.
  • the maximum number of retransmissions of the video data packet to be retransmitted is greater than the type of weight to be re-transmitted.
  • the maximum number of retransmissions of the transmitted video data packet determining the number of retransmissions of the video data packet to be retransmitted within the timeout threshold; when the number of retransmissions of the video data packet to be retransmitted is less than the maximum number of retransmissions, sending to the receiving end Retransmit the video packet.
  • the second processor 1002 may further implement: determining, according to the following formula, a maximum number of retransmissions corresponding to the to-be-retransmitted video data packet:
  • R maxI is the maximum number of retransmissions of the video data packet to be retransmitted
  • R maxN is the maximum number of retransmissions of the video data packet to be retransmitted
  • Th is the timeout threshold set for the video service.
  • RTT is the average feedback acknowledgement period of the video data packet between the sender and the receiver.
  • the second processor 1002 can also implement:
  • the video data packet to be retransmitted is written from the retransmission buffer to the head of the transmission buffer queue and sent. Further, the second processor 1002 can also implement:
  • the video data packet to be retransmitted is discarded from the retransmission buffer.
  • the retransmission request message further includes an identifier for confirming the received video data packet
  • the second processor 1002 can further implement:
  • the request packet is retransmitted according to the request, and the received video packet is confirmed to be discarded from the retransmission buffer.
  • the number of retransmissions of different types of video data packets to be retransmitted is determined according to the type of the video data packet to be retransmitted, and the type is an important maximum retransmission of the video data packet to be retransmitted.
  • the number of times of retransmission is greater than the maximum number of retransmissions of the video packet to be retransmitted, which ensures that the number of retransmissions of important video packets to be retransmitted with key frames can be obtained, so that when the network is in poor condition
  • the number of retransmissions of the video service data packet is related to the timeout threshold of the video service, when the video data packet is retransmitted, important video data packets are determined according to the timeout threshold.
  • the number of retransmissions of unimportant video packets ensures the real-time requirements of the video service.
  • the video service data sending apparatus and the video service data receiving apparatus provided by the foregoing embodiments are only illustrated by dividing the foregoing functional modules when performing video service data transmission. In actual applications, the foregoing may be performed according to requirements. The function assignment is done by different functional modules, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
  • the video service data sending apparatus and the video service data receiving apparatus provided by the foregoing embodiments are in the same concept as the video service data transmission method embodiment, and the specific implementation process is described in the method embodiment, and details are not described herein again.
  • serial numbers of the embodiments of the present invention are merely for the description, and do not represent the advantages and disadvantages of the embodiments.
  • a person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium.
  • the storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.

Landscapes

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

Abstract

本发明实施例提供了一种视频业务数据传输方法、数据接收装置和数据发送装置,涉及数据传输领域,所述方法包括:接收视频数据包;判断如果将接收到的视频数据包放入接收缓冲区,是否会造成接收缓冲区溢出;当判断结果为将接收到的视频数据包放入接收缓冲区,会造成接收缓冲区溢出时,判断接收到的视频数据包的类型;若接收到的视频数据包的类型为不重要,则直接丢弃视频数据包;若接收到的视频数据包的类型为重要,则在接收缓冲区队列中找到离队尾最近的一个视频数据包的类型为不重要的视频数据包,将离队尾最近的一个视频数据包的类型为不重要的视频数据包丢弃,将接收到的视频数据包加入到接收缓冲区队列的队尾。从而保证了关键帧不会丢失。

Description

视频业务数据传输方法、 数据接收装置和数据发送装置 技术领域
本发明涉及数据传输领域, 特别涉及一种视频业务数据传输方法、 数据接 收装置和数据发送装置。 背景技术
随着移动终端和第三代移动通信技术(3rd-generation, 筒称 "3G" ) 的普 及, 移动视频业务逐渐获得用户青睐。
在 3G/通用移动通信系统 ( Universal Mobile Telecommunications System, 筒称 "UMTS" ) 中, 用户设备(User Equipment, 筒称 "UE" )通过网络连接 向视频服务器请求视频流服务, 视频服务器接收到请求之后向 UE传输视频流 (视频数据包)。 在视频流的传输过程中, 无线网络控制器 (Radio Network Controller, 筒称 "RNC" )和 UE执行无线部分的传输控制功能。 以 RNC为例, RNC将接收到的无线链路控制 (Radio Link Control, 筒称 "RLC" )协议数据 单元( Protocol Data Unit, 筒称 "PDU" )放入接收緩沖区中, 然后将 PDU组 成服务数据单元( Service Data Unit, 筒称 "SDU" ) 交给上层。
在实现本发明的过程中, 发明人发现现有技术至少存在以下问题:
RLC层的接收緩沖区容量是有限的, 不管是业务量太大超过了带宽,还是 由于无线链路出错导致部分 PDU重传, 都可能引起该接收緩沖区溢出, 导致 视频数据包丟失, 进而造成视频质量大幅下降。 发明内容
为了解决现有技术中接收緩沖区溢出, 导致视频数据包丟失, 造成视频质 量大幅下降问题, 本发明实施例提供了一种视频业务数据传输方法、 数据接收 装置和数据发送装置。 所述技术方案如下:
一方面,本发明实施例提供了一种视频业务数据接收装置,所述装置包括: 第一接收模块, 用于接收视频数据包;
第一判断模块, 用于判断如果将所述第一接收模块接收到的所述视频数据 包放入接收緩沖区, 是否会造成所述接收緩沖区溢出;
第一处理模块, 用于当所述第一判断模块的判断结果为将所述视频数据包 放入接收緩沖区,会造成所述接收緩沖区溢出时,判断所述视频数据包的类型, 所述视频数据包的类型包括重要和不重要;
若所述第一接收模块接收到的所述视频数据包的类型为不重要, 则直接丟 弃第一接收模块接收到的所述视频数据包; 若所述第一接收模块接收到的所述 视频数据包的类型为重要, 则在所述接收緩沖区队列中找到离队尾最近的一个 视频数据包的类型为不重要的视频数据包,将所述离队尾最近的一个视频数据 包的类型为不重要的视频数据包丟弃,将所述第一接收模块接收到的所述视频 数据包加入到所述接收緩沖区队列的队尾。
在本发明实施例的一种实现方式中, 所述第一处理模块包括:
判断单元, 用于获取所述视频数据包中的头部信息, 所述头部信息包括所 述视频数据包的类型。
在本发明实施例的另一种实现方式中, 所述视频数据包中还携带有数据包 编号, 所述装置还包括:
检测模块, 用于周期性检测所述接收緩沖区中的视频数据包的编号是否连 续;
第一处理模块, 还用于根据所述检测模块的检测结果, 向发送端发送重传 请求报文, 所述重传请求报文包括待重传视频数据包的标识。
在本发明实施例的另一种实现方式中, 所述装置还包括:
计时模块, 用于在发送所述重传请求报文时, 设置重传计时器;
所述第一处理模块,还用于当所述重传计时器超时且未收到重传请求报文 中的所有待重传视频数据包时, 重新发送所述重传请求报文。
另一方面, 本发明实施例还提供了一种视频业务数据发送装置, 所述装置 包括:
发送模块, 用于发送发送緩沖区中的视频数据包, 并将所述发送緩沖区中 的视频数据包复制进重传緩沖区;
第二接收模块, 用于获取接收端发送的重传请求报文, 所述重传请求报文 包括待重传视频数据包的标识;
第二判断模块, 用于根据所述第二接收模块接收到的重传请求报文, 判断 待重传视频数据包的类型, 所述待重传视频数据包的类型包括重要和不重要; 第二处理模块, 用于根据所述第二判断模块判断的待重传视频数据包的类 型, 确定所述待重传视频数据包在超时阈值内的最大重传次数, 所述类型为重 要的待重传视频数据包的最大重传次数大于所述类型为不重要的待重传视频 数据包的最大重传次数; 确定所述待重传视频数据包在所述超时阈值内已重传 次数; 当所述待重传视频数据包的已重传次数小于所述最大重传次数时, 向所 述接收端发送所述待重传视频数据包。
在本发明实施例的一种实现方式中, 所述第二处理模块, 用于根据以下公 式确定所述待重传视频数据包对应的最大重传次数:
1 ,if Th < 0.4
RmaxI = [Th 1 ?ΓΓ」― 1 ,if 0.4 < Th < 0.6;
6 ,if Th > 0.6
iO ,if Th < 0.4
丽" 丽, / 2, ,if Th≥"' 其中, RmaxI为所述类型为重要的待重传视频数据包的最大重传次数, RmaxN 为所述类型为不重要的待重传视频数据包的最大重传次数, Th 为视频业务设 置的超时阈值, RTT为视频数据包在所述发送端和所述接收端间的平均反馈确 认周期。
在本发明实施例的另一种实现方式中, 所述第二处理模块, 用于将所述待 重传视频数据包从所述重传緩沖区写入所述发送緩沖区队列的队首并发送。
在本发明实施例的另一种实现方式中, 所述第二处理模块, 还用于当所述 待重传视频数据包的已重传次数等于所述最大重传次数时,从所述重传緩沖区 中丟弃所述待重传视频数据包。
在本发明实施例的另一种实现方式中, 所述重传请求报文中还包括确认接 收到的视频数据包的标识,所述第二处理模块,还用于根据所述重传请求报文, 将所述确认接收到的视频数据包从所述重传緩沖区中丟弃。 另一方面, 本发明实施例还提供了一种视频业务数据传输方法, 所述方法 包括:
接收视频数据包;
判断如果将接收到的所述视频数据包放入接收緩沖区, 是否会造成所述接 收緩沖区溢出;
当判断结果为将接收到的所述视频数据包放入所述接收緩沖区,会造成所 述接收緩沖区溢出时, 判断接收到的所述视频数据包的类型, 所述视频数据包 的类型包括重要和不重要;
若接收到的所述视频数据包的类型为不重要, 则直接丟弃接收到的所述视 频数据包; 若接收到的所述视频数据包的类型为重要, 则在所述接收緩沖区队 列中找到离队尾最近的一个视频数据包的类型为不重要的视频数据包, 将所述 离队尾最近的一个视频数据包的类型为不重要的视频数据包丟弃,将接收到的 所述视频数据包加入到所述接收緩沖区队列的队尾。
在本发明实施例的一种实现方式中, 所述判断所述视频数据包的类型, 包 括:
获取所述视频数据包中的头部信息, 所述头部信息包括所述视频数据包的 类型。
在本发明实施例的另一种实现方式中, 所述视频数据包中还携带有数据包 编号, 所述方法还包括:
周期性检测所述接收緩沖区中的视频数据包的编号是否连续;
根据检测结果, 向发送端发送重传请求报文, 所述重传请求报文包括待重 传视频数据包的标识。
在本发明实施例的另一种实现方式中, 所述方法还包括:
在发送所述重传请求报文时, 设置重传计时器;
当所述重传计时器超时且未收到所述重传请求报文中的所有待重传视频 数据包时, 重新发送所述重传请求报文。
另一方面, 本发明实施例还提供了一种视频业务数据传输方法, 所述方法 包括:
发送发送緩沖区中的视频数据包, 并将所述发送緩沖区中的视频数据包复 制进重传緩沖区;
获取接收端发送的重传请求报文, 所述重传请求报文包括待重传视频数据 包的标识;
根据接收到的所述重传请求报文, 判断待重传视频数据包的类型, 所述待 重传视频数据包的类型包括重要和不重要;
根据待重传视频数据包的类型,确定所述待重传视频数据包在超时阈值内 的最大重传次数, 所述类型为重要的待重传视频数据包的最大重传次数大于所 述类型为不重要的待重传视频数据包的最大重传次数; 确定所述待重传视频数据包在所述超时阈值内已重传次数;
当所述待重传视频数据包的已重传次数小于所述最大重传次数时, 向所述 接收端发送所述待重传视频数据包。
在本发明实施例的一种实现方式中, 所述根据待重传视频数据包的类型, 确定所述待重传视频数据包在超时阈值内的最大重传次数, 包括:
根据以下公式确定所述待重传视频数据包对应的最大重传次数: < 0.6
Figure imgf000007_0001
[0 ,if Th < 0.4
R m, a N
W / 2, ,if Th≥"' 其中,!^^为所述类型为重要的待重传视频数据包的最大重传次数, RmaxN 为所述类型为不重要的待重传视频数据包的最大重传次数, Th 为视频业务设 置的超时阈值, RTT为视频数据包在所述发送端和所述接收端间的平均反馈确 认周期。
在本发明实施例的另一种实现方式中, 所述向所述接收端发送所述待重传 视频数据包, 包括:
将所述待重传视频数据包从所述重传緩沖区写入所述发送緩沖区队列的 队首并发送。
在本发明实施例的另一种实现方式中, 所述方法还包括:
当所述待重传视频数据包的已重传次数等于所述最大重传次数时,从所述 重传緩沖区中丟弃所述待重传视频数据包。
在本发明实施例的另一种实现方式中, 所述重传请求报文中还包括确认接 收到的视频数据包的标识, 所述方法还包括:
根据所述重传请求报文,将所述确认接收到的视频数据包从所述重传緩沖 区中丟弃。
本发明实施例提供的技术方案的有益效果是:
通过在进行视频业务数据传输时, 若接收緩沖区溢出, 则判断视频数据包 的类型, 并在接收到重要的视频数据包时, 将接收緩沖区队列中不重要的视频 数据包丟弃, 从而可以在接收緩沖区中存放接收到的重要的视频数据包, 由于 重要的视频数据包中携带了关键帧, 关键帧丟失所造成的视频损失远大于非关 键帧丟失,因此上述做法避免了在接收緩沖区溢出时,保证了关键帧不会丟失, 避免了视频质量大幅下降, 提高了视频业务质量。 附图说明
为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例描述中所 需要使用的附图作筒单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明实施例提供的视频业务数据传输场景示意图;
图 2是本发明实施例一提供的视频业务数据传输方法流程图;
图 3是本发明实施例二提供的视频业务数据传输方法流程图;
图 4是本发明实施例三提供的视频业务数据传输方法流程图;
图 5是本发明实施例四提供的视频业务数据传输方法流程图;
图 6是本发明实施例五提供的视频业务数据接收装置的结构示意图; 图 7是本发明实施例六提供的视频业务数据接收装置的结构示意图; 图 8是本发明实施例七提供的视频业务数据发送装置的结构示意图; 图 9是本发明实施例八提供的视频业务数据发送装置的结构示意图; 图 10是本发明实施例九提供的视频业务数据接收装置的结构示意图; 图 11是本发明实施例十提供的视频业务数据发送装置的结构示意图。 具体实施方式
为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明 实施方式作进一步地详细描述。
首先结合图 1说明本发明实施例的应用场景, 参见图 1 , 其中 1为通用移 动通信系统陆地无线接入网 (Universal Mobile Telecommunications System Terrestrial Radio Access Network, 筒称 "UTRAN" ), 2为核心网 ( Core Net, 筒称 "CN" ), 3为互联网 (Internet ), 4为视频服务器。 在移动视频业务中, UE 11与视频服务器 4之间通过 UTRAN 1、 CN 2和 Internet 3连接, CN 2中 主要包括有通用分组无线服务技术服务支持节点 (Serving GPRS SUPPORT NODE, 筒称 "SGSN" ) 21和网关 GPRS支持节点 (Gateway GPRS Support Node, 筒称 "GGSN" ) 22, UTRAN 4主要包括 RNC 13和基站 ( Node B ) 12, 其中 RNC 13负责无线部分的传输控制, 由于受到无线部分(UTRAN )带宽影 响, 在进行视频业务传输时, RNC与 UE在进行视频数据包的传输过程中可能 会出现是视频数据包丟失的情况, 从而导致视频业务质量的下降, 本发明实施 例所要解决的问题就是如何在无线网络状况不好的情况下, 最大限度保证视频 质量。 实施例一
本发明实施例提供了一种视频业务数据传输方法, 该方法由视频业务中的 接收端执行, 该接收端可以 UE或 RNC, 参见图 2, 该方法包括:
步骤 101: 接收视频数据包。
步骤 102: 判断如果将接收到的视频数据包放入接收緩沖区, 是否会造成 接收緩沖区溢出, 若判断结果为将接收到的视频数据包放入接收緩沖区, 不会 造成接收緩沖区溢出, 则执行步骤 103 , 若判断结果为将接收到的视频数据包 放入接收緩沖区, 会造成接收緩沖区溢出, 则执行步骤 104, 该接收緩沖区用 于存放接收到的视频数据包。
步骤 103: 将接收到的视频数据包放入该接收緩沖区队列的队尾。
步骤 104: 判断接收到的视频数据包的类型, 若接收到的视频数据包的类 型为不重要, 则执行步骤 105 , 若接收到的视频数据包的类型为重要, 则执行 步骤 106, 视频数据包类型包括不重要和重要。
步骤 105: 直接丟弃接收到的视频数据包。
步骤 106: 在该接收緩沖区队列中找到离队尾最近的一个视频数据包的类 型为不重要的视频数据包, 将该离队尾最近的一个视频数据包的类型为不重要 的视频数据包丟弃, 将接收到的视频数据包加入到该接收緩沖区队列的队尾。
本发明实施例通过在进行视频业务数据传输时, 若接收緩沖区溢出, 则判 断视频数据包的类型, 并在接收到重要的视频数据包时, 将接收緩沖区队列中 不重要的视频数据包丟弃,从而可以在接收緩沖区中存放接收到的重要的视频 数据包, 由于重要的视频数据包中携带了关键帧, 关键帧丟失所造成的视频损 失远大于非关键帧丟失, 因此上述做法避免了在接收緩沖区溢出时, 保证了关 键帧不会丟失, 避免了视频质量大幅下降, 提高了视频业务质量。 实施例二
本发明实施例提供了一种视频业务数据传输方法, 该方法由视频业务中的 接收端执行, 该接收端可以是 UE或 RNC, 本发明实施例是对实施例一的进一 步说明, 该进一步说明包括但不限于视频数据包的类型判断、 发送重传请求报 文等内容, 参见图 3, 该方法包括:
步骤 201 : 接收视频数据包。
如前所述, 执行该步骤 201 的接收端可以是 UE或者 RNC, 当接收端为 RNC时, 接收端接收到的视频数据包为 SDU。 当接收端为 UE时, 接收端接 收到的视频数据包为 PDU。
步骤 202: 判断如果将接收到的视频数据包放入接收緩沖区, 是否会造成 接收緩沖区溢出, 若判断结果为将接收到的视频数据包放入接收緩沖区, 不会 造成接收緩沖区溢出, 则执行步骤 203, 若判断结果为将接收到的视频数据包 放入接收緩沖区, 会造成接收緩沖区溢出, 则执行步骤 204。
其中, 接收緩沖区用于存放接收到的视频数据包。
步骤 203: 将接收到的视频数据包放入该接收緩沖区队列的队尾。
步骤 204: 判断接收到的视频数据包的类型, 若接收到的视频数据包的类 型为不重要, 则执行步骤 205 , 若接收到的视频数据包的类型为重要, 则执行 步骤 206, 该视频数据包的类型包括不重要和重要。
具体地, 步骤 204可以采用以下方式实现:
获取视频数据包中的头部信息, 该头部信息包括视频数据包的类型。
对于 SDU来说该头部即为 SDU头, 对于 PDU来说该头部即为 PDU头。 SDU头或者 PDU头中均记录有该视频数据包的类型。
在不同的视频编码机制中, 不重要的视频数据包和重要的视频数据包的定 义是不同的, 不重要的视频数据包和重要的视频数据包可以是事先规定好的, 规定的依据可以是视频数据包的作用大小及重要程度。 以 H.264为例: 在该编 码机制下, I 帧表示关键帧, 这一帧画面保留完整; 解码时只需要本帧数据就 可以完成。 P帧表示差别帧, 记录这一帧跟之前的一个关键帧 (或 P帧) 的差 别, 解码时需要用之前緩存的画面叠加上本帧定义的差别, 生成最终画面。 B 帧是双向差别帧, 也就是 B帧记录的是本帧与前后帧的差别, 要解码 B帧, 不仅要取得之前的緩存画面, 还要解码之后的画面, 通过前后画面的与本帧数 据的叠加取得最终的画面, 因此在 H.264编码方式下, I帧数据包即是重要的 视频数据包, B帧数据包和 P帧数据包即为不重要的视频数据包。 当然本发明 实施例除了可以应用在上述 H.264视频编码机制中以外, 还可以应用于 H.262 等其他视频编码机制中, 在其他视频编码机制中根据视频数据包的功能和重要 性可以划分重要和不重要。
步骤 205: 直接丟弃接收到的视频数据包。
步骤 206: 在该接收緩沖区队列中找到离队尾最近的一个视频数据包的类 型为不重要的视频数据包, 并将该离队尾最近的一个视频数据包的类型为不重 要的视频数据包丟弃, 将接收到的视频数据包加入到该接收緩沖区队列的队 尾。
步骤 207: 周期性检测接收緩沖区中的视频数据包的编号是否连续, 视频 数据包中还携带有数据包编号。
其中, 视频数据包的编号可以携带在视频数据包的包头中, 且该编号是由 发送端按一定机制产生的。 值得说明的是, 在步骤 207中, 检测视频数据包的 编号是否连续时, 是从编号最小的视频数据包向后检测, 例如, 接收緩沖区中 包括编号为 3、 4、 6和 7的视频数据包, 此时检测的结果为编号为 5的视频数 据包丟失。
步骤 208: 根据步骤 207的检测结果, 向发送端发送重传请求报文, 重传 请求报文包括待重传视频数据包的标识以及确认接收到的视频数据包的标识, 该标识可以是视频数据包的编号。
在具体实现时, 可以在重传请求>¾文中设置一个 Bitmap, 该 Bitmap用来 标识哪些视频数据包未被正确接收, 哪些视频数据包已被正确接收, Bitmap 的最左侧记录有该 Bitmap开始的视频数据包的编号, 并且处于 Bitmap最左侧 的视频数据包是在步骤 207的检测过程中检测到的第一个丟失掉的,后面记录 的视频数据包编号依次递增, Bitmap每一位表示一个视频数据包是否被正确接 收, 例如 0表示未被正确接收, 1表示已被正确接收, Bitmap总长度不能超过 緩沖区队列总长度。 容易知道, 比最左侧数据包的编号小的视频数据包认为是 已被正确接收。
为了保证重传成功, 在发送重传请求报文时, 设置一个重传计时器, 当重 传计时器超时且未收到重传请求报文中请求中的所有待重传视频数据包时, 重 新发送重传请求报文。 容易知道, 重新发送的重传请求报文与前一个重传请求 报文中包括的待重传视频数据包的标识可能不同, 该重新发送的重传请求报文 是在前一个重传请求报文的基础上将已接收到的待重传视频数据包标记为确 认接收到的视频数据包后得到的。 另外, 除了本实施例中采用的使用一个重传请求报文同时实现请求重传所 有丟失的视频数据包, 并确认所有已正确接收到的视频数据包外。 在其他实施 例中,还可以采用重传请求报文和确认报文分别用来请求重传所有丟失的视频 数据包, 和确认已正确接收到的视频数据包, 且每个重传请求报文或确认报文 可以只用来请求重传或确认一个视频数据包。
进一步地, 当接收端为 UE时, 该方法还包括: 周期性地将接收緩沖区中 的视频数据包, 按规定的个数顺序组装成 SDU, 并将该 SDU递交给上层。
下面对 UE组装 SDU进行举例说明: 接收緩沖区中包括 1、 2、 3、 5、 6、 7、 8和 9几个视频数据包, 且规定每次将 4个视频数据包组装成 1个 SDU, 当达到周期时间时, 将视频数据包 1、 2、 3和 5组装成一个 SDU, 将视频数据 包 6、 7、 8和 9组装成一个 SDU。
当接收端为 RNC时, 该方法还包括: 将接收到的视频数据包进行分段, 将分段得到的 PDU发送给 UE。
本发明实施例通过在进行视频业务数据传输时, 若接收緩沖区溢出, 则判 断视频数据包的类型, 并在接收到重要的视频数据包时, 将接收緩沖区队列中 不重要的视频数据包丟弃,从而可以在接收緩沖区中存放接收到的重要的视频 数据包, 由于重要的视频数据包中携带了关键帧, 关键帧丟失所造成的视频损 失远大于非关键帧丟失, 因此上述做法避免了在接收緩沖区溢出时, 保证了关 键帧不会丟失, 避免了视频质量大幅下降, 提高了视频业务质量。 另一方面, 在检测到有视频数据包缺失情况下, 通过请求重传, 可以进一步保证视频帧不 丟失, 从而提高视频业务质量。 实施例三
本发明实施例提供了一种视频业务数据传输方法, 该方法由视频业务中的 发送端执行, 该发送端可以是 RNC, 与该发送端对应的接收端可以为 UE, 接 收端的相应动作参见实施例一或二, 参见图 4, 该方法包括:
步骤 301: 发送发送緩沖区中的视频数据包, 并将发送緩沖区中的视频数 据包复制进重传緩沖区。
步骤 302: 获取接收端发送的重传请求报文, 重传请求报文包括待重传视 频数据包的标识。
步骤 301和 302没有先后关系。 步骤 303: 根据接收到的重传请求报文, 判断待重传视频数据包的类型, 待重传视频数据包的类型包括重要和不重要。
步骤 304: 根据待重传视频数据包的类型, 确定待重传视频数据包在超时 阈值内的最大重传次数, 类型为重要的待重传视频数据包的最大重传次数大于 类型为不重要的待重传视频数据包的最大重传次数。
步骤 305: 确定该待重传视频数据包在该超时阈值内已重传次数。
步骤 306: 当待重传视频数据包的已重传次数小于最大重传次数时, 向接 收端发送待重传视频数据包。
本发明实施例通过在发送端进行重传时,根据待重传视频数据包的类型确 定不同类型的待重传视频数据包重传次数, 类型为重要的待重传视频数据包的 最大重传次数大于类型为不重要的待重传视频数据包的最大重传次数,保证了 携带关键帧的重要的待重传视频数据包可以获得更多的重传次数,从而使得在 网络状况不佳时, 也可以有效保证视频业务的质量。 实施例四
本发明实施例提供了一种视频业务数据传输方法, 该方法由视频业务中的 发送端执行, 该发送端可以是 RNC, 与该发送端对应的接收端可以为 UE, 接 收端的相应动作参见实施例一或二, 本发明实施例是对实施例三的进一步说 明, 参见图 5, 该方法包括:
步骤 401: 发送发送緩沖区中的视频数据包, 并将发送緩沖区中的视频数 据包复制进重传緩沖区。
具体地, 该步骤 401包括:
将待发送视频数据包写入发送緩沖区中。
对于 RNC来说, 待发送视频数据包可以为接收緩沖区中收到的视频数据 包进行分段处理后得到的 PDU。
将发送緩沖区中的视频数据包发送给 UE, 并在发送该视频数据包时将该 视频数据包复制进重传緩沖区, 以防该视频数据包需要重传。
步骤 402: 获取接收端发送的重传请求报文, 重传请求报文包括待重传视 频数据包的标识。
具体地, 待重传视频数据包为接收端缺少的视频数据包, 待重传视频数据 包的标识可以为待重传视频数据包的编号。 步骤 401和 402没有先后关系, 可以同时执行。
步骤 403: 根据接收到的重传请求报文, 判断待重传视频数据包的类型, 待重传视频数据包的类型包括重要和不重要。
在不同的视频编码机制中, 不重要的视频数据包和重要的视频数据包的定 义是不同的, 不重要的视频数据包和重要的视频数据包可以是事先规定好的, 规定的依据可以是视频数据包的作用大小及重要程度。 以 H.264为例: 在该编 码机制下, I 帧表示关键帧, 这一帧画面保留完整; 解码时只需要本帧数据就 可以完成。 P帧表示差别帧, 记录这一帧跟之前的一个关键帧 (或 P帧) 的差 另 ij , 解码时需要用之前緩存的画面叠加上本帧定义的差别, 生成最终画面。 B 帧是双向差别帧, 也就是 B帧记录的是本帧与前后帧的差别, 要解码 B帧, 不仅要取得之前的緩存画面, 还要解码之后的画面, 通过前后画面的与本帧数 据的叠加取得最终的画面, 因此在 H.264编码方式下, I帧数据包即是重要的 视频数据包, B帧数据包和 P帧数据包即为不重要的视频数据包。 当然本发明 实施例除了可以应用在上述 H.264视频编码机制中以外, 还可以应用于 H.262 等其他视频编码机制中。
步骤 404: 根据待重传视频数据包的类型, 确定待重传视频数据包在超时 阈值内的最大重传次数, 类型为重要的待重传视频数据包的最大重传次数大于 类型为不重要的待重传视频数据包的最大重传次数。
在本实施例中, 步骤 404可以采用以下方式实现:
根据以下公式确定该待重传视频数据包对应的最大重传次数:
1 ,if Th < 0.4
L7¾ / ?rr」_l ,if Q.4 < Th < 0.6 ;
6 , if Th≥ 0.6
Figure imgf000014_0001
' 其中, RmaxI为类型为重要的待重传视频数据包的最大重传次数, RmaxN为 类型为不重要的待重传视频数据包的最大重传次数, Th 为视频业务设置的超 时阈值, RTT为视频数据包在发送端和接收端间的平均反馈确认周期。 该平均 反馈确认周期是指数据在发送端和接收端之间的平均往返时间, 该时间可以根 据统计获得, 这里不再赘述。
容易知道, 在其他实施例中, 该步骤 404中的重要的待重传视频数据包和 不重要的待重传视频数据包的最大重传次数也可以为设定值。 例如, 重要的待 重传视频数据包的最大重传次数为 5次, 不重要的待重传视频数据包的最大重 传次数为 2次。
步骤 405: 确定该待重传视频数据包在该超时阈值内已重传次数。
进一步地,在步骤 405之前,该方法包括: 在向接收端发送视频数据包时, 记录该视频数据包在超时阈值内的已重传次数。
步骤 406: 当待重传视频数据包的已重传次数小于最大重传次数时, 向接 收端发送待重传视频数据包; 当该待重传视频数据包的已重传次数等于该最大 重传次数时, 从重传緩沖区中丟弃该待重传数据包。
具体地, 上述向该接收端发送该待重传视频数据包, 可以采用下述方式完 成:
将该待重传视频数据包从重传緩沖区写入发送緩沖区队列的队首并发送。 进一步地, 该重传请求报文还包括确认接收到的视频数据包的标识, 该方 法还包括:
根据该重传请求报文, 将确认接收到的视频数据包从重传緩沖区中丟弃。 具体地, 该待重传视频数据包和确认接收到的视频数据包的编号可以根据 重传请求报文中的 Bitmap得到, 该 Bitmap用来标识哪些视频数据包未被正确 接收, Bitmap的最左侧记录有该 Bitmap开始的视频数据包的编号, 并且处于 Bitmap最左侧的视频数据包是在检测过程中检测到的第一个丟失掉的,后面记 录的视频数据包编号依次递增, Bitmap每一位表示一个视频数据包是否被正确 接收, 例如 0表示未被正确接收的待重传视频数据包, 1表示已被正确接收的 确认接收到的视频数据包, Bitmap总长度不能超过接收端的接收緩沖区队列总 长度。
本发明实施例通过在发送端进行重传时,根据待重传视频数据包的类型确 定不同类型的待重传视频数据包重传次数, 类型为重要的待重传视频数据包的 最大重传次数大于类型为不重要的待重传视频数据包的最大重传次数,保证了 携带关键帧的重要的待重传视频数据包可以获得更多的重传次数,从而使得在 网络状况不佳时, 也可以有效保证视频业务的质量; 另外, 由于视频业务数据 包的重传次数与视频业务的超时阈值相关, 因此在进行视频数据包的重传时, 根据超时阈值确定重要视频数据包和不重要视频数据包的重传次数,保证了视 频业务对实时性的要求。 实施例五
本发明实施例提供了一种视频业务数据接收装置, 该装置可以是 UE 或 RNC, 参见图 6, 该装置包括:
第一接收模块 501 , 用于接收视频数据包;
第一判断模块 502, 用于判断如果将第一接收模块 501接收到的视频数据 包放入接收緩沖区, 是否会造成接收緩沖区溢出, 该接收緩沖区用于存放接收 到的视频数据包;
第一处理模块 503 , 用于当第一判断模块 502的判断结果为将该视频数据 包放入接收緩沖区, 会造成接收緩沖区溢出时, 判断该视频数据包的类型, 该 视频数据包的类型包括不重要和重要;
若第一接收模块 501接收到的视频数据包的类型为不重要, 则直接丟弃第 一接收模块 501接收到的视频数据包; 若第一接收模块 501接收到的视频数据 包的类型为重要, 则在该接收緩沖区队列中找到离队尾最近的一个视频数据包 的类型为不重要, 并将该离队尾最近的一个视频数据包的类型为不重要, 将第 一接收模块 501接收到的视频数据包加入到该接收緩沖区队列的队尾。
本发明实施例通过在进行视频业务数据传输时, 若接收緩沖区溢出, 则判 断视频数据包的类型, 并在接收到重要的视频数据包时, 将接收緩沖区队列中 不重要的视频数据包丟弃,从而可以在接收緩沖区中存放接收到的重要的视频 数据包, 由于重要的视频数据包中携带了关键帧, 关键帧丟失所造成的视频损 失远大于非关键帧丟失, 因此上述做法避免了在接收緩沖区溢出时, 保证了关 键帧不会丟失, 避免了视频质量大幅下降, 提高了视频业务质量。 实施例六
本发明实施例提供了一种视频业务数据接收装置, 该装置可以是 UE 或 RNC, 本发明实施例是对实施例五的进一步说明, 参见图 7, 该装置包括: 第一接收模块 601 , 用于接收视频数据包;
第一判断模块 602, 用于判断如果将第一接收模块 601接收到的视频数据 包放入接收緩沖区, 是否会造成接收緩沖区溢出, 该接收緩沖区用于存放接收 到的视频数据包;
第一处理模块 603 , 用于当第一判断模块 602的判断结果为将该视频数据 包放入接收緩沖区, 不会造成接收緩沖区溢出时, 将该视频数据包放入该接收 緩沖区队列的队尾; 当判断结果为将该视频数据包放入接收緩沖区, 会造成接 收緩沖区溢出时, 判断该视频数据包的类型, 该视频数据包的类型包括不重要 和重要;
若第一接收模块 601接收到的视频数据包的类型为不重要, 则直接丟弃第 一接收模块 601接收到的视频数据包; 若第一接收模块 601接收到的视频数据 包的类型为重要, 则在该接收緩沖区队列中找到离队尾最近的一个视频数据包 的类型为不重要的视频数据包, 并将该离队尾最近的一个视频数据包的类型为 不重要的视频数据包丟弃, 将第一接收模块 601接收到的视频数据包加入到该 接收緩沖区队列的队尾。
如前所述, 该接收端可以是 UE或者 RNC, 当接收端为 RNC时, 接收端 接收到的视频数据包为 SDU。 当接收端为 UE时, 接收端接收到视频数据包为 PDU。
具体地, 第一处理模块 603可以包括:
判断单元, 用于获取视频数据包中的头部信息, 该头部信息包括视频数据 包的类型。
对于 SDU来说该头部即为 SDU头, 对于 PDU来说该头部即为 PDU头。 SDU头或者 PDU头中均记录有该视频数据包的类型。
在不同的视频编码机制中, 不重要的视频数据包和重要的视频数据包的定 义是不同的, 不重要的视频数据包和重要的视频数据包可以是事先规定好的, 规定的依据可以是视频数据包的作用大小及重要程度。 以 H.264为例: 在该编 码机制下, I 帧表示关键帧, 这一帧画面保留完整; 解码时只需要本帧数据就 可以完成。 P帧表示差别帧, 记录这一帧跟之前的一个关键帧 (或 P帧) 的差 另 ij , 解码时需要用之前緩存的画面叠加上本帧定义的差别, 生成最终画面。 B 帧是双向差别帧, 也就是 B帧记录的是本帧与前后帧的差别, 要解码 B帧, 不仅要取得之前的緩存画面, 还要解码之后的画面, 通过前后画面的与本帧数 据的叠加取得最终的画面, 因此在 H.264编码方式下, I帧数据包即是重要的 视频数据包, B帧数据包和 P帧数据包即为不重要的视频数据包。 当然本发明 实施例除了可以应用在上述 H.264视频编码机制中以外, 还可以应用于 H.262 等其他视频编码机制中。
进一步地, 该装置还包括检测模块 604, 用于周期性检测接收緩沖区中的 视频数据包的编号是否连续, 视频数据包中还携带有数据包编号。 其中,视频数据包的编号可以携带在视频数据包的包头中。值得说明的是, 检测视频数据包的编号是否连续时, 是从编号最小的视频数据包向后检测, 例 如, 接收緩沖区中包括编号为 3、 4、 6和 7的视频数据包, 此时检测的结果为 编号为 5的视频数据包丟失。
相应地, 上述第一处理模块 603还用于, 根据检测模块 604的检测结果, 向发送端发送重传请求报文, 重传请求报文包括待重传视频数据包的标识以及 确认接收到的视频数据包的标识, 该标识可以是视频数据包的编号。
在具体实现时, 可以在重传请求>¾文中设置一个 Bitmap, 该 Bitmap用来 标识哪些视频数据包未被正确接收, Bitmap的最左侧记录有该 Bitmap开始的 视频数据包的编号, 并且处于 Bitmap最左侧的视频数据包是在检测过程中检 测到的第一个丟失掉的,后面记录的视频数据包编号依次递增, Bitmap每一位 表示一个视频数据包是否被正确接收, 例如 0表示未被正确接收, 1表示已被 正确接收, Bitmap总长度不能超过緩沖区队列总长度。
进一步地, 为了保证重传成功, 该装置还包括计时模块, 用于在在发送重 传请求报文时, 设置一个重传计时器; 第一处理模块 603, 还用于当重传计时 器超时且未收到重传请求报文中的所有待重传视频数据包时, 重新发送重传请 求报文。 容易知道, 重新发送的重传请求报文与前一个重传请求报文中包括的 待重传视频数据包的标识可能不同, 该重新发送的重传请求报文是在前一个重 传请求报文的基础上将已接收到的待重传视频数据包标记为确认接收到的视 频数据包后得到的。
另外, 除了本实施例中采用的使用一个重传请求报文同时实现请求重传所 有丟失的视频数据包, 并确认所有已正确接收到的视频数据包外。 在其他实施 例中,还可以采用重传请求报文和确认报文分别用来请求重传所有丟失的视频 数据包, 和确认已正确接收到的视频数据包, 且每个重传请求报文或确认报文 可以只用来请求重传或确认一个视频数据包。
进一步地, 当接收端为 UE时, 第一处理模块 603, 还用于周期性地将接 收緩沖区中的视频数据包, 按规定的个数顺序组装成 SDU, 并将该 SDU递交 给上层。
下面对 UE组装 SDU进行举例说明: 接收緩沖区中包括 1、 2、 3、 5、 6、 7、 8和 9几个视频数据包, 且规定每次将 4个视频数据包组装成 1个 SDU, 当达到周期时间时, 将视频数据包 1、 2、 3和 5组装成一个 SDU, 将视频数据 包 6、 7、 8和 9组装成一个 SDU。
当接收端为 RNC时,第一处理模块 603,还用于将接收到的视频数据包进 行分段, 将分段得到的 PDU发送给 UE。
本发明实施例通过在进行视频业务数据传输时, 若接收緩沖区溢出, 则判 断视频数据包的类型, 并在接收到重要的视频数据包时, 将接收緩沖区队列中 不重要的视频数据包丟弃,从而可以在接收緩沖区中存放接收到的重要的视频 数据包, 由于重要的视频数据包中携带了关键帧, 关键帧丟失所造成的视频损 失远大于非关键帧丟失, 因此上述做法避免了在接收緩沖区溢出时, 保证了关 键帧不会丟失, 避免了视频质量大幅下降, 提高了视频业务质量。 另一方面, 在检测到有视频数据包缺失情况下, 通过请求重传, 可以进一步保证视频帧不 丟失, 从而提高视频业务质量。 实施例七
本发明实施例提供了一种视频业务数据发送装置, 该装置可以是 UE 或 RNC, 参见图 8, 该装置包括:
发送模块 701 , 用于发送发送緩沖区中的视频数据包, 并将发送緩沖区中 的视频数据包复制进重传緩沖区;
第二接收模块 702, 用于获取接收端发送的重传请求报文, 重传请求报文 包括待重传视频数据包的标识;
第二判断模块 703 , 用于根据第二接收模块 702接收到的重传请求报文, 判断待重传视频数据包的类型, 待重传视频数据包的类型包括重要和不重要; 第二处理模块 704, 用于根据第二判断模块 703判断的待重传视频数据包 的类型, 确定待重传视频数据包在超时阈值内的最大重传次数, 类型为重要的 视频数据包的最大重传次数大于类型为不重要的视频数据包的最大重传次数, 确定该待重传视频数据包在该超时阈值内已重传次数, 当待重传视频数据包的 已重传次数小于最大重传次数时, 向接收端发送待重传视频数据包。
本发明实施例通过在发送端进行重传时,根据待重传视频数据包的类型确 定不同类型的待重传视频数据包重传次数, 类型为重要的待重传视频数据包的 最大重传次数大于类型为不重要的待重传视频数据包的最大重传次数,保证了 携带关键帧的重要的待重传视频数据包可以获得更多的重传次数,从而使得在 网络状况不佳时, 也可以有效保证视频业务的质量。 实施例八
本发明实施例提供了一种视频业务数据发送装置,该装置可以是 RNC,本 发明实施例是对实施例七的进一步说明, 参见图 9, 该装置包括:
发送模块 801 , 用于发送发送緩沖区中的视频数据包, 并将发送緩沖区中 的视频数据包复制进重传緩沖区;
第二接收模块 802, 用于获取接收端发送的重传请求报文, 重传请求报文 包括待重传视频数据包的标识,待重传视频数据包的标识可以为待重传视频数 据包的编号;
第二判断模块 803 , 用于根据第二接收模块 802接收到的重传请求报文, 判断待重传视频数据包的类型, 待重传视频数据包的类型包括重要和不重要; 在不同的视频编码机制中, 不重要的视频数据包和重要的视频数据包的定 义是不同的, 不重要的视频数据包和重要的视频数据包可以是事先规定好的, 规定的依据可以是视频数据包的作用大小及重要程度。 以 H.264为例: 在该编 码机制下, I 帧表示关键帧, 这一帧画面保留完整; 解码时只需要本帧数据就 可以完成。 P帧表示差别帧, 记录这一帧跟之前的一个关键帧 (或 P帧) 的差 别, 解码时需要用之前緩存的画面叠加上本帧定义的差别, 生成最终画面。 B 帧是双向差别帧, 也就是 B帧记录的是本帧与前后帧的差别, 要解码 B帧, 不仅要取得之前的緩存画面, 还要解码之后的画面, 通过前后画面的与本帧数 据的叠加取得最终的画面, 因此在 H.264编码方式下, I帧数据包即是重要的 视频数据包, B帧数据包和 P帧数据包即为不重要的视频数据包。 当然本发明 实施例除了可以应用在上述 H.264视频编码机制中以外, 还可以应用于 H.262 等其他视频编码机制中。
第二处理模块 804, 用于根据第二判断模块 803判断的待重传视频数据包 的类型, 确定待重传视频数据包在超时阈值内的最大重传次数, 类型为重要的 待重传视频数据包的最大重传次数大于类型为不重要的待重传视频数据包的 最大重传次数, 确定该待重传视频数据包在该超时阈值内已重传次数, 当待重 传视频数据包的已重传次数小于最大重传次数时, 向接收端发送待重传视频数 据包; 当该待重传视频数据包的已重传次数等于该最大重传次数时, 从重传緩 沖区中丟弃该待重传数据包。
发送模块 801将待发送视频数据包写入发送緩沖区中, 然后将发送緩沖区 中的视频数据包发送给 UE, 并在发送该视频数据包时将该视频数据包复制进 重传緩沖区, 以防该视频数据包需要重传。 对于 RNC来说, 待发送视频数据 包可以为接收緩沖区中收到的视频数据包进行分段处理后得到的 PDU。
进一步地, 该第二处理模块 804可以根据以下公式确定该待重传视频数据 包对应的最大重传次数:
1 ,if Th < 0.4
RmaxI = [Th 1 ?ΓΓ」― 1 ,if 0.4 < Th < 0.6;
6 ,if Th > 0.6
RmixN
Figure imgf000021_0001
其中, RmaxI为类型为重要的待重传视频数据包的最大重传次数, RmaxN为 类型为不重要的待重传视频数据包的最大重传次数, Th 为视频业务设置的超 时阈值, RTT为视频数据包在发送端和接收端间的平均反馈确认周期。 该平均 反馈确认周期是指数据在发送端和接收端之间的平均往返时间, 该时间可以根 据统计获得, 这里不再赘述。
容易知道, 在其他实施例中, 重要的视频数据包和不重要的视频数据包的 最大重传次数也可以为设定值。 例如, 重要的视频数据包的最大重传次数为 5 次, 不重要的视频数据包的最大重传次数为 2次。
进一步地, 该第二处理模块 804, 还用于在向接收端发送视频数据包时, 记录该视频数据包在超时阈值内的已重传次数。
进一步地, 该第二处理模块 804, 还用于将该待重传视频数据包从重传緩 沖区写入发送緩沖区队列的队首并发送。
进一步地, 该重传请求报文还包括确认接收到的视频数据包的标识, 该第 二处理模块 804, 还用于根据该重传请求报文, 将确认接收到的视频数据包从 重传緩沖区中丟弃。
具体地, 该待重传视频数据包和确认接收到的视频数据包的编号可以根据 重传请求报文中的 Bitmap得到, 该 Bitmap用来标识哪些视频数据包未被正确 接收, Bitmap的最左侧记录有该 Bitmap开始的视频数据包的编号, 并且处于 Bitmap最左侧的视频数据包是在检测过程中检测到的第一个丟失掉的,后面记 录的视频数据包编号依次递增, Bitmap每一位表示一个视频数据包是否被正确 接收, 例如 0表示未被正确接收的待重传视频数据包, 1表示已被正确接收的 确认接收到的视频数据包, Bitmap总长度不能超过接收端的接收緩沖区队列总 长度。
本发明实施例通过在发送端进行重传时,根据待重传视频数据包的类型确 定不同类型的待重传视频数据包重传次数, 类型为重要的待重传视频数据包的 最大重传次数大于类型为不重要的待重传视频数据包的最大重传次数,保证了 携带关键帧的重要的待重传视频数据包可以获得更多的重传次数,从而使得在 网络状况不佳时, 也可以有效保证视频业务的质量; 另外, 由于视频业务数据 包的重传次数与视频业务的超时阈值相关, 因此在进行视频数据包的重传时, 根据超时阈值确定重要的视频数据包和不重要的视频数据包的重传次数,保证 了视频业务对实时性的要求。 实施例九
本发明实施例提供了一种视频业务数据接收装置, 如图 10所示, 该装置 90—般包括第一存储器 91、 第一处理器 92、 第一发送器 93和第一接收器 94 等部件。 本领域技术人员可以理解, 图 10 中所示出的结构并不构成对本网关 的限定, 可以包括比图示更多或更少的部件, 或者组合某些部件, 或者不同的 部件布置。
下面结合图 10对装置 90的各个构成部件进行具体的介绍:
第一存储器 91可用于存储软件程序以及应用模块, 第一处理器 92通过运 行存储在第一存储器 91的软件程序以及应用模块,从而执行装置 90的各种功 能应用以及数据处理。 第一存储器 91可主要包括存储程序区和存储数据区, 其中, 存储程序区可存储操作系统、 至少一个功能所需的应用程序等; 存储数 据区可存储根据装置 90的处理所创建的数据。 此外, 第一存储器 91可以包括 高速 RAM ( Random Access Memory, 随机存取存储器), 还可以包括非易失性 存储器(non-volatile memory ), 例如至少一个磁盘存储器件、 闪存器件、 或其 他易失性固态存储器件。
第一处理器 92是装置 90的控制中心, 利用各种接口和线路连接整个计算 机的各个部分。
具体地, 第一处理器 92通过运行或执行存储在第一存储器 91内的软件程 序和 /或应用模块, 以及调用存储在第一存储器 91 内的数据, 第一处理器 92 可以实现:
通过第一接收器 94接收视频数据包; 判断如果将第一接收器 94接收到的 视频数据包放入接收緩沖区, 是否会造成接收緩沖区溢出, 该接收緩沖区用于 存放接收到的视频数据包; 当判断结果为将数据包放入接收緩沖区, 会造成接 收緩沖区溢出时, 则判断第一接收器 94接收到的视频数据包的类型, 数据包 类型包括重要和不重要; 若第一接收器 94接收到的视频数据包的类型为不重 要, 则直接丟弃第一接收器 94接收到的视频数据包; 若第一接收器 94接收到 的视频数据包的类型为重要, 则在接收緩沖区队列中找到离队尾最近的一个视 频数据包的类型为不重要的视频数据包, 将离队尾最近的一个视频数据包的类 型为不重要的视频数据包丟弃, 将第一接收器 94接收到的视频数据包加入到 接收緩沖区队列的队尾。
进一步地, 该第一处理器 92还可实现:
获取视频数据包中的头部信息, 该头部信息包括视频数据包的类型。 进一步地, 数据包中还携带有数据包编号, 该第一处理器 92还可实现: 周期性检测接收緩沖区中的视频数据包的编号是否连续;
根据检测结果, 向发送端发送重传请求报文, 重传请求报文包括待重传视 频数据包的标识。
进一步地, 该第一处理器 92还可实现:
在发送重传请求报文时, 设置对应的重传计时器;
当重传计时器超时且未收到请求重传请求报文中的所有待重传视频数据 包时, 重新发送重传请求报文。
本发明实施例通过在进行视频业务数据传输时, 若接收緩沖区溢出, 则判 断视频数据包的类型, 并在接收到重要的视频数据包时, 将接收緩沖区队列中 不重要的视频数据包丟弃,从而可以在接收緩沖区中存放接收到的重要的视频 数据包, 由于重要的视频数据包中携带了关键帧, 关键帧丟失所造成的视频损 失远大于非关键帧丟失, 因此上述做法避免了在接收緩沖区溢出时, 保证了关 键帧不会丟失, 避免了视频质量大幅下降, 提高了视频业务质量。 另一方面, 在检测到有视频数据包缺失情况下, 通过请求重传, 可以进一步保证视频帧不 丟失, 从而提高视频业务质量。 实施例十
本发明实施例提供了一种视频业务数据发送装置, 如图 11 所示, 该装置 100一般包括第二存储器 1001、 第二处理器 1002、 第二发送器 1003和第二接 收器 1004等部件。 本领域技术人员可以理解, 图 11中所示出的结构并不构成 对本网关的限定, 可以包括比图示更多或更少的部件, 或者组合某些部件, 或 者不同的部件布置。
下面结合图 11对装置 100的各个构成部件进行具体的介绍:
第二存储器 1001可用于存储软件程序以及应用模块, 第二处理器 1002通 过运行存储在第二存储器 1001 的软件程序以及应用模块, 从而执行装置 100 的各种功能应用以及数据处理。 第二存储器 1001可主要包括存储程序区和存 储数据区, 其中, 存储程序区可存储操作系统、 至少一个功能所需的应用程序 等; 存储数据区可存储根据装置 100的处理所创建的数据。 此外, 第二存储器 1001可以包括高速 RAM ( Random Access Memory, 随机存取存储器), 还可 以包括非易失性存储器(non- volatile memory ), 例如至少一个磁盘存储器件、 闪存器件、 或其他易失性固态存储器件。
第二处理器 1002是装置 100的控制中心, 利用各种接口和线路连接整个 计算机的各个部分。
具体地, 第二处理器 1002通过运行或执行存储在第二存储器 1001内的软 件程序和 /或应用模块, 以及调用存储在第二存储器 1001内的数据, 第二处理 器 1002可以实现:
通过第二发送器 1003发送发送緩沖区中的视频数据包, 并将该发送緩沖 区中的视频数据包复制进重传緩沖区; 通过第二接收器 1004获取接收端发送 的重传请求报文, 重传请求报文包括待重传视频数据包的标识; 根据接收到的 重传请求报文, 判断待重传视频数据包的类型, 待重传视频数据包的类型包括 重要和不重要; 根据待重传视频数据包的类型, 确定待重传视频数据包在超时 阈值内的最大重传次数, 类型为重要的待重传视频数据包的最大重传次数大于 类型为不重要的待重传视频数据包的最大重传次数; 确定待重传视频数据包在 超时阈值内已重传次数; 当待重传视频数据包的已重传次数小于最大重传次数 时, 向接收端发送待重传视频数据包。
进一步地, 第二处理器 1002还可以实现: 根据以下公式确定该待重传视 频数据包对应的最大重传次数:
,if Th < 0.4
Figure imgf000024_0001
ίθ ,if Th < 0.4
w _ l「U2, ,if Th≥"'
其中, RmaxI为类型为重要的待重传视频数据包的最大重传次数, RmaxN为 类型为不重要的待重传视频数据包的最大重传次数, Th 为视频业务设置的超 时阈值, RTT为视频数据包在发送端和接收端间的平均反馈确认周期。
进一步地, 第二处理器 1002还可以实现:
将该待重传视频数据包从重传緩沖区写入发送緩沖区队列的队首并发送。 进一步地, 第二处理器 1002还可以实现:
当待重传视频数据包的已重传次数等于最大重传次数时,从重传緩沖区中 丟弃待重传视频数据包。
进一步地, 该重传请求报文还包括确认接收到的视频数据包的标识, 第二 处理器 1002还可以实现:
根据请求重传请求报文, 将确认接收到的视频数据包从重传緩沖区中丟 弃。
本发明实施例通过在发送端进行重传时,根据待重传视频数据包的类型确 定不同类型的待重传视频数据包重传次数, 类型为重要的待重传视频数据包的 最大重传次数大于类型为不重要的待重传视频数据包的最大重传次数,保证了 携带关键帧的重要的待重传视频数据包可以获得更多的重传次数,从而使得在 网络状况不佳时, 也可以有效保证视频业务的质量; 另外, 由于视频业务数据 包的重传次数与视频业务的超时阈值相关, 因此在进行视频数据包的重传时, 根据超时阈值确定重要的视频数据包和不重要的视频数据包的重传次数,保证 了视频业务对实时性的要求。 需要说明的是: 上述实施例提供的视频业务数据发送装置和视频业务数据 接收装置在进行视频业务数据传输时 仅以上述各功能模块的划分进行举例说 明, 实际应用中, 可以根据需要而将上述功能分配由不同的功能模块完成, 即 将设备的内部结构划分成不同的功能模块, 以完成以上描述的全部或者部分功 能。 另外, 上述实施例提供的视频业务数据发送装置和视频业务数据接收装置 与视频业务数据传输方法实施例属于同一构思, 其具体实现过程详见方法实施 例, 这里不再赘述。
上述本发明实施例序号仅仅为了描述, 不代表实施例的优劣。 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通 过硬件来完成, 也可以通过程序来指令相关的硬件完成, 所述的程序可以存储 于一种计算机可读存储介质中, 上述提到的存储介质可以是只读存储器, 磁盘 或光盘等。
以上所述仅为本发明的较佳实施例, 并不用以限制本发明, 凡在本发明的 精神和原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的 保护范围之内。

Claims

权 利 要 求 书
1、 一种视频业务数据接收装置, 其特征在于, 所述装置包括:
第一接收模块, 用于接收视频数据包;
第一判断模块, 用于判断如果将所述第一接收模块接收到的所述视频数据 包放入接收緩沖区, 是否会造成所述接收緩沖区溢出;
第一处理模块, 用于当所述第一判断模块的判断结果为将所述视频数据包 放入接收緩沖区, 会造成所述接收緩沖区溢出时, 判断所述视频数据包的类型, 所述视频数据包的类型包括重要和不重要;
若所述第一接收模块接收到的所述视频数据包的类型为不重要, 则直接丟 弃第一接收模块接收到的所述视频数据包; 若所述第一接收模块接收到的所述 视频数据包的类型为重要, 则在所述接收緩沖区队列中找到离队尾最近的一个 视频数据包的类型为不重要的视频数据包, 将所述离队尾最近的一个视频数据 包的类型为不重要的视频数据包丟弃, 将所述第一接收模块接收到的所述视频 数据包加入到所述接收緩沖区队列的队尾。
2、 根据权利要求 1所述的装置, 其特征在于, 所述第一处理模块包括: 判断单元, 用于获取所述视频数据包中的头部信息, 所述头部信息包括所 述视频数据包的类型。
3、 根据权利要求 1或 2所述的装置, 其特征在于, 所述视频数据包中还携 带有数据包编号, 所述装置还包括:
检测模块, 用于周期性检测所述接收緩沖区中的视频数据包的编号是否连 续;
第一处理模块, 还用于根据所述检测模块的检测结果, 向发送端发送重传 请求报文, 所述重传请求报文包括待重传视频数据包的标识。
4、 根据权利要求 3所述的装置, 其特征在于, 所述装置还包括:
计时模块, 用于在发送所述重传请求报文时, 设置重传计时器;
所述第一处理模块, 还用于当所述重传计时器超时且未收到重传请求报文 中的所有待重传视频数据包时, 重新发送所述重传请求报文。
5、 一种视频业务数据发送装置, 其特征在于, 所述装置包括:
发送模块, 用于发送发送緩沖区中的视频数据包, 并将所述发送緩沖区中 的视频数据包复制进重传緩沖区; 第二接收模块, 用于获取接收端发送的重传请求报文, 所述重传请求报文 包括待重传视频数据包的标识;
第二判断模块, 用于根据所述第二接收模块接收到的重传请求报文, 判断 待重传视频数据包的类型, 所述待重传视频数据包的类型包括重要和不重要; 第二处理模块, 用于根据所述第二判断模块判断的待重传视频数据包的类 型, 确定所述待重传视频数据包在超时阈值内的最大重传次数, 所述类型为重 要的待重传视频数据包的最大重传次数大于所述类型为不重要的待重传视频数 据包的最大重传次数; 确定所述待重传视频数据包在所述超时阈值内已重传次 数; 当所述待重传视频数据包的已重传次数小于所述最大重传次数时, 向所述 接收端发送所述待重传视频数据包。
6、 根据权利要求 5所述的装置, 其特征在于, 所述第二处理模块, 用于根 据以下公式确定所述待重传视频数据包对应的最大重传次数:
1 ,if Th < 0.4
Rmi l = l ?ΓΓ」― 1 ,if 0.4 < Th < 0.6;
6 , if Th > 0.6
ίθ , if Th < 0.4
I 2, , if Th≥"' 其中, !^^为所述类型为重要的待重传视频数据包的最大重传次数, RmaxN 为所述类型为不重要的待重传视频数据包的最大重传次数, Th为视频业务设置 的超时阈值, RTT 为视频数据包在所述发送端和所述接收端间的平均反馈确认 周期。
7、 根据权利要求 5所述的装置, 其特征在于, 所述第二处理模块, 用于将 所述待重传视频数据包从所述重传緩沖区写入所述发送緩沖区队列的队首并发 送。
8、 根据权利要求 5-7任一项所述的装置, 其特征在于, 所述第二处理模块, 还用于当所述待重传视频数据包的已重传次数等于所述最大重传次数时, 从所 述重传緩沖区中丟弃所述待重传视频数据包。
9、 根据权利要求 5-8任一项所述的装置, 其特征在于, 所述重传请求报文 中还包括确认接收到的视频数据包的标识, 所述第二处理模块, 还用于根据所 述重传请求报文, 将所述确认接收到的视频数据包从所述重传緩沖区中丟弃。 种视频业务数据传输方法, 其特征在于, 所述方法包括: 接收视频数据包;
判断如果将接收到的所述视频数据包放入接收緩沖区, 是否会造成所述接 收緩沖区溢出;
当判断结果为将接收到的所述视频数据包放入所述接收緩沖区, 会造成所 述接收緩沖区溢出时, 判断接收到的所述视频数据包的类型, 所述视频数据包 的类型包括重要和不重要;
若接收到的所述视频数据包的类型为不重要, 则直接丟弃接收到的所述视 频数据包; 若接收到的所述视频数据包的类型为重要, 则在所述接收緩沖区队 列中找到离队尾最近的一个视频数据包的类型为不重要的视频数据包, 将所述 离队尾最近的一个视频数据包的类型为不重要的视频数据包丟弃, 将接收到的 所述视频数据包加入到所述接收緩沖区队列的队尾。
11、 根据权利要求 10所述的方法, 其特征在于, 所述判断所述视频数据包 的类型, 包括:
获取所述视频数据包中的头部信息, 所述头部信息包括所述视频数据包的 类型。
12、 根据权利要求 10或 11所述的方法, 其特征在于, 所述视频数据包中 还携带有数据包编号, 所述方法还包括:
周期性检测所述接收緩沖区中的视频数据包的编号是否连续;
根据检测结果, 向发送端发送重传请求报文, 所述重传请求报文包括待重 传视频数据包的标识。
13、 根据权利要求 12所述的方法, 其特征在于, 所述方法还包括: 在发送所述重传请求报文时, 设置重传计时器;
当所述重传计时器超时且未收到所述重传请求报文中的所有待重传视频数 据包时, 重新发送所述重传请求报文。
14、 一种视频业务数据传输方法, 其特征在于, 所述方法包括:
发送发送緩沖区中的视频数据包, 并将所述发送緩沖区中的视频数据包复 制进重传緩沖区;
获取接收端发送的重传请求报文, 所述重传请求报文包括待重传视频数据 包的标识;
根据接收到的所述重传请求报文, 判断待重传视频数据包的类型, 所述待 重传视频数据包的类型包括重要和不重要; 根据待重传视频数据包的类型, 确定所述待重传视频数据包在超时阈值内 的最大重传次数, 所述类型为重要的待重传视频数据包的最大重传次数大于所 述类型为不重要的待重传视频数据包的最大重传次数;
确定所述待重传视频数据包在所述超时阈值内已重传次数;
当所述待重传视频数据包的已重传次数小于所述最大重传次数时, 向所述 接收端发送所述待重传视频数据包。
15、 根据权利要求 14所述的方法, 其特征在于, 所述根据待重传视频数据 包的类型, 确定所述待重传视频数据包在超时阈值内的最大重传次数, 包括: 根据以下公式确定所述待重传视频数据包对应的最大重传次数:
1 ,if Th < 0.4
L7¾ / ?rr」_ l ,ί/" 0.4 < 7¾ < 0.6;
6 , if Th > 0.6
Figure imgf000030_0001
'
其中, !^^为所述类型为重要的待重传视频数据包的最大重传次数, RmaxN 为所述类型为不重要的待重传视频数据包的最大重传次数, Th为视频业务设置 的超时阈值, RTT 为视频数据包在所述发送端和所述接收端间的平均反馈确认 周期。
16、 根据权利要求 14所述的方法, 其特征在于, 所述向所述接收端发送所 述待重传视频数据包, 包括:
将所述待重传视频数据包从所述重传緩沖区写入所述发送緩沖区队列的队 首并发送。
17、根据权利要求 14-16任一项所述的方法,其特征在于,所述方法还包括: 当所述待重传视频数据包的已重传次数等于所述最大重传次数时, 从所述 重传緩沖区中丟弃所述待重传视频数据包。
18、根据权利要求 14-17任一项所述的方法, 其特征在于, 所述重传请求报 文中还包括确认接收到的视频数据包的标识, 所述方法还包括:
根据所述重传请求报文, 将所述确认接收到的视频数据包从所述重传緩沖 区中丟弃。
PCT/CN2013/086531 2013-11-05 2013-11-05 视频业务数据传输方法、数据接收装置和数据发送装置 WO2015066836A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2013/086531 WO2015066836A1 (zh) 2013-11-05 2013-11-05 视频业务数据传输方法、数据接收装置和数据发送装置
CN201380002474.3A CN103814582B (zh) 2013-11-05 2013-11-05 视频业务数据传输方法和数据发送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/086531 WO2015066836A1 (zh) 2013-11-05 2013-11-05 视频业务数据传输方法、数据接收装置和数据发送装置

Publications (1)

Publication Number Publication Date
WO2015066836A1 true WO2015066836A1 (zh) 2015-05-14

Family

ID=50709728

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/086531 WO2015066836A1 (zh) 2013-11-05 2013-11-05 视频业务数据传输方法、数据接收装置和数据发送装置

Country Status (2)

Country Link
CN (1) CN103814582B (zh)
WO (1) WO2015066836A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107404443A (zh) * 2017-08-03 2017-11-28 北京东土军悦科技有限公司 队列缓存资源控制方法及装置、服务器及存储介质

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105450969B (zh) * 2014-06-16 2019-01-15 联想(北京)有限公司 一种实时视频数据传输方法及电子设备
CN105828180A (zh) * 2016-03-31 2016-08-03 努比亚技术有限公司 一种缓存视频帧的装置和方法
CN108616925B (zh) * 2016-12-13 2023-03-21 中兴通讯股份有限公司 一种数据流的处理方法及装置
CN108419275B (zh) * 2017-02-10 2022-01-14 华为技术有限公司 一种数据传输方法、通信设备、终端和基站
CN109002361B (zh) * 2017-06-07 2022-06-03 阿里巴巴集团控股有限公司 数据处理方法、分配方法、电子设备、客户端和存储介质
CN109996088A (zh) * 2017-12-29 2019-07-09 阿里巴巴集团控股有限公司 一种直播数据处理方法及装置
CN110830818A (zh) * 2018-08-10 2020-02-21 北京松果电子有限公司 视频传输方法和装置
CN110839164A (zh) * 2018-08-17 2020-02-25 北京松果电子有限公司 视频传输方法和装置
CN111131210B (zh) * 2019-12-16 2021-09-17 维沃移动通信有限公司 数据处理方法及电子设备
CN113495832A (zh) * 2020-04-05 2021-10-12 杭州迪普科技股份有限公司 缓存区泄漏检测系统及其方法
CN115001632A (zh) * 2022-06-09 2022-09-02 咪咕文化科技有限公司 一种信息传输方法、装置、电子设备及可读存储介质
CN115514815A (zh) * 2022-07-13 2022-12-23 武汉依迅北斗时空技术股份有限公司 一种音视频数据采集方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075948A (zh) * 2006-05-15 2007-11-21 中兴通讯股份有限公司 一种实现实时流媒体节目可靠传输的方法
CN101360058A (zh) * 2008-09-08 2009-02-04 华为技术有限公司 一种控制缓存溢出的方法及装置
CN101466034A (zh) * 2008-12-25 2009-06-24 华为技术有限公司 发送、播放流媒体数据的方法和装置及流媒体点播系统
CN102017539A (zh) * 2005-08-05 2011-04-13 索尼株式会社 用于通过有损网络传输数据的系统和方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1361690B1 (en) * 2000-03-02 2006-01-11 Matsushita Electric Industrial Co., Ltd. Method and apparatus for retransmitting data packets based on channel conditions
CN101039254B (zh) * 2006-03-15 2011-01-26 联想(北京)有限公司 一种媒体数据重组方法以及组包服务器
CN101179362B (zh) * 2006-11-07 2012-07-11 中兴通讯股份有限公司 适宜移动流媒体应用的自动重传请求机制
CN101645883A (zh) * 2008-08-08 2010-02-10 比亚迪股份有限公司 数据传输方法、数据发送方法及数据接收方法
US8009567B2 (en) * 2009-02-05 2011-08-30 Cisco Technology, Inc. System and method for improved data transmission reliability over a network
JP5075225B2 (ja) * 2010-05-31 2012-11-21 株式会社エヌ・ティ・ティ・ドコモ 放送補完データ伝送装置および放送補完データ伝送方法、ならびに放送システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102017539A (zh) * 2005-08-05 2011-04-13 索尼株式会社 用于通过有损网络传输数据的系统和方法
CN101075948A (zh) * 2006-05-15 2007-11-21 中兴通讯股份有限公司 一种实现实时流媒体节目可靠传输的方法
CN101360058A (zh) * 2008-09-08 2009-02-04 华为技术有限公司 一种控制缓存溢出的方法及装置
CN101466034A (zh) * 2008-12-25 2009-06-24 华为技术有限公司 发送、播放流媒体数据的方法和装置及流媒体点播系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107404443A (zh) * 2017-08-03 2017-11-28 北京东土军悦科技有限公司 队列缓存资源控制方法及装置、服务器及存储介质
CN107404443B (zh) * 2017-08-03 2020-06-23 北京东土军悦科技有限公司 队列缓存资源控制方法及装置、服务器及存储介质

Also Published As

Publication number Publication date
CN103814582B (zh) 2017-06-20
CN103814582A (zh) 2014-05-21

Similar Documents

Publication Publication Date Title
WO2015066836A1 (zh) 视频业务数据传输方法、数据接收装置和数据发送装置
US10630819B2 (en) Method and apparatus for PCDP discard
JP6321607B2 (ja) 無線リンク制御パケットの破棄および無線リンク制御の再確立をトリガする方法および装置
JP4318733B2 (ja) 処理時間情報を含む制御プロトコルデータユニットの送受信方法
US8346274B2 (en) Method to control multiple radio access bearers in a wireless device
US20090103445A1 (en) Method and apparatus for enhancing various pdcp and layer 2 operations
US20090175163A1 (en) Method and apparatus of performing packet data convergence protocol re-establishment
EP1811727A2 (en) Method and apparatus for transmitting a status report for retransmission control in a mobile communication system
US20070168826A1 (en) Method and system for implementing h-arq-assisted arq operation
KR20180048760A (ko) 패킷 전송 방법 및 사용자 장비
WO2013135196A1 (zh) 数据包传输方法及系统、发送端设备与接收端设备
JP5351329B2 (ja) 無線通信システムにおいて1対多サービスを受信する方法及び端末
CN102340535B (zh) 数据传输方法、设备和系统
TW200807992A (en) BI-directional RLC non-persistent mode for low delay services
JP2013507826A (ja) ネットワークにおける信頼性の高いリアルタイム・データストリーミングのための効率的なアプリケーションレイヤの自動再送要求の再送信方法
WO2007098676A1 (fr) Procédé de réassemblage de données dans un système de communication sans fil et appareil associé
TW200926668A (en) A method of performing polling procedure in a wireless communication system
WO2013159516A1 (zh) 无线侧tcp数据重传的方法和设备
WO2007025454A1 (fr) Methode et systeme de retransmission de donnees avec abaissement de couche dans une communication sans fil
WO2014205814A1 (zh) 一种数据传输方法、装置、基站及用户设备
KR20150066335A (ko) 무선통신에서 패킷 손실을 줄이기 위한 방법 및 장치
WO2017185353A1 (zh) 一种传输控制协议tcp报文的传输方法、设备及系统
WO2022083371A1 (zh) 一种数据传输方法和装置
WO2020007278A1 (zh) 数据发送方法及发送设备、数据接收方法及接收设备
CN115766519A (zh) 便携通信设备的数据传输方法及系统

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: 13896876

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13896876

Country of ref document: EP

Kind code of ref document: A1