A communication method and device
By acquiring the extended delay budget in the communication device and determining the transmission timing of the video frame data packets based on the budget, the problem of the delay limit of multiple data packets of the video frame processing by the receiver is solved, and the decoding success rate is improved.
Patent Information
- Application Number
- CN202010504771.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-06-05
- Publication Date
- 2025-04-11
- Estimated Expiration
- 2040-06-05
AI Technical Summary
In the field of video processing, it is difficult for the receiver to effectively process multiple data packets in the same video frame, resulting in decoding failure or delay exceeding the limit.
By acquiring the extended delay budget, the communication device determines an appropriate transmission time according to the budget when receiving the data packet of the video frame to avoid delay exceeding the limit.
It effectively reduces the probability of delay exceeding the limit of terminal devices or video servers when processing video frame data packets, and improves the decoding success rate.
Smart Images

Figure CN113766567B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of communication technology, and in particular to a communication method and apparatus. Background Art
[0002] In the field of video processing, due to different compression methods, the sizes of different video frames after compression vary greatly. Among them, the base frame, also known as the I frame, has the largest size of the compressed video frame. The sizes of P frames and B frames after compression are next. Since the size of the I frame is too large, it is divided into multiple fragments by the transmission control protocol / internet protocol (TCP / IP) layer or the Ethernet layer during transmission, and then handed over to the wireless communication network for transmission. For example, a typical I frame is divided into 64 IP packets. Because the application layer of the receiver has a certain time limit for decoding each video frame. For example, the time for the application layer of the receiver to decode each video frame cannot exceed the extended delay. At this time, how the receiver processes multiple data packets of the same video frame is a technical problem that needs to be solved. Summary of the Invention
[0003] The embodiments of the present application provide a communication method and apparatus to solve the technical problem of a receiver processing multiple data packets of the same video frame.
[0004] In a first aspect, a communication method is provided, the method comprising: a communication device obtaining an extended delay budget; the communication device receiving a data packet of a first service; and the communication device processing the data packet according to the extended delay budget.
[0005] Optionally, the extended delay budget may also be referred to as a spread delay budget. The extended delay budget may be preconfigured or specified by a protocol, etc., without limitation. If preconfigured, the communication device may receive first information. The first information may directly indicate the size of the extended delay or indirectly indicate the size of the extended delay budget. For example, the first information may indicate a service type or a decoding type. The service type and decoding type may correspond to the extended delay budget. The communication device may determine the extended delay budget based on the first information.
[0006] In one possible design, the communication device may be an access network device. The solution of the first aspect may be applied during downlink video transmission. The process of the access network device processing data packets according to the extended delay budget may include: the access network device determining a timing for transmitting N data packets to a terminal device based on the extended delay budget and the data volume of the N data packets. The N data packets are sent to the terminal device at the aforementioned timing, thereby preventing the delay in the terminal device receiving or processing the N data packets from exceeding the extended delay budget, thereby improving the decoding success rate of the terminal device. Alternatively, the solution of the first aspect may be applied during uplink video transmission. The access network device may determine a timing for transmitting the N data packets based on the extended delay budget and the data volume of the N data packets. Scheduling information is sent to the terminal device to schedule the terminal device to transmit the N data packets to the network device at the aforementioned transmission timing, thereby reducing the probability that the delay in receiving or processing the N data packets will exceed the extended delay budget, thereby improving the decoding success rate of the video server.
[0007] In another possible design, the communication device may be a terminal device. The access layer of the terminal device may deliver N data packets to an upper layer based on the extended delay budget, thereby reducing the probability that the delay of the upper layer decoder processing the N data packets exceeds the extended delay budget and increasing the probability of successful decoding.
[0008] In one possible design, the communication device may receive N data packets belonging to the same video frame in the first service. For example, N may be less than or equal to the number of data packets included in a video frame. For example, when a video frame includes 64 data packets, the value of N may be a positive integer less than or equal to 64.
[0009] In one possible design, the first packet of N data, i.e., the first data packet, may carry a frame start identifier, or the communication device may receive an independent frame start identifier and the first data packet, without limiting the order of the frame start identifier and the first data packet. Alternatively, the data packet before the first data packet carries a frame end identifier, or the communication device may receive an independent frame end identifier and the last data packet of the previous frame. Alternatively, the communication device does not receive any data packets within a period of time T, and the data packets received thereafter may be considered as the first data packet, etc. The value of T may be pre-configured, or specified by the protocol, or confirmed by the communication device itself, etc. In addition to receiving the first packet, the communication device may continue to receive other data packets of the N data packets. The method of receiving other data packets may be achieved by a preset duration, or by a preset number or a preset data volume, etc., without limitation.
[0010] In one possible design, the tail packet of the N data packets, ie, the second data packet, may carry a frame end identifier. The communication device may determine that the other data packets between the frame end identifiers and the tail packet corresponding to the next frame end identifier constitute N data packets.
[0011] In one possible design, N data packets may carry the same indication information. The communication device may determine that the data packets carrying the same indication information are N data packets, etc., without limitation.
[0012] In one possible design, when the communication device is an access network device, the access network device can arrange data scheduling based on the extended delay budget. Thus, after receiving the tail packet of a video frame, the access network device needs to calculate the sum of the data volumes of all data packets in the video frame. Optionally, the first packet of each video frame, i.e., N data packets, can carry information indicating the sizes of the N data packets. In this way, upon receiving the first packet, the access network device can determine the sizes of the N data packets and begin looking for opportunities to transmit the aforementioned N data packets, thereby improving the transmission efficiency of the video frames. Alternatively, the aforementioned "indication information of the sizes of the N data packets" can be replaced by "indication information of the average size of the N data packets."
[0013] In a second aspect, a communication method is provided, including: an access layer receives a first data packet, where the first data packet is the first data packet of a video frame; the access layer receives other data packets belonging to the same video frame as the first data packet; when a preset time expires or all N data packets belonging to the same video frame are received, the access layer submits the N data packets to an upper layer, where the N data packets include the first data packet and the other data packets.
[0014] In one possible implementation, the preset time can be preconfigured, or the protocol specifies the preset time. Optionally, the above solution can be implemented through a timer. For example, when the access layer receives the first packet of a video frame, it starts the timer; when the timer ends, it submits the received data packet to the upper layer. Alternatively, the access layer can receive indication information sent by the access network device, the core network network element or the video data source, and determine the preset time based on the indication information. The indication information can indicate a specific preset time size. Alternatively, the indication information can indicate an extended delay budget. Based on the extended delay budget, the preset time can be determined, and the preset time can be less than or equal to the extended delay budget, etc. In one solution, the access layer submits each data packet it receives to the upper layer. This may cause the time interval from the first packet to the last packet of the video frame received by the upper layer to exceed the limit of the extended delay budget, causing the upper layer decoder to fail decoding. In this implementation, the access layer no longer submits each received data packet to the upper layer. Instead, it submits all data packets received continuously over a period of time (i.e., a preset time) to the upper layer. This reduces the probability that the delay of each video frame in the upper layer will exceed the extended delay budget. Of course, if the preset time is set appropriately, the upper layer can submit all data packets for a video frame to the upper layer simultaneously. This ensures that the extended delay of each video frame in the upper layer does not exceed the extended delay budget, ensuring successful decoding by the upper layer decoder.
[0015] In another possible implementation, the access layer may uniformly submit N data packets to the upper layer when all N data packets are received. The N may be less than or equal to the number of data packets included in a video frame. For example, if a video frame includes 64 data packets, the value of N may be less than or equal to 64, etc. In this implementation, the access layer uniformly submits N data packets to the upper layer. Compared with the method in which the access layer submits data packets to the upper layer one by one, the probability of the extended delay of the upper layer video frame exceeding the extended delay budget limit can also be reduced, thereby reducing the probability of decoding failure. Of course, if the value of N is equal to the number of all data packets in a video frame, then the access layer may uniformly submit all data packets of a video frame to the upper layer, which can ensure that the extended delay of each video frame in the upper layer does not exceed the extended delay budget, so that the upper layer decoder can successfully decode.
[0016] In another possible implementation, when the access layer receives the tail packet of a video frame, it may be considered that all data packets of the video frame have been received, and all data packets are delivered to the upper layer, otherwise no data packets are delivered to the upper layer. There are many ways for the access layer to determine whether a data packet is a tail packet. For example, the video frame end identifier may be carried in the tail packet, or the tail packet indication information may be carried in the tail packet, or the video frame end identifier or the tail packet indication information may be sent separately, without limitation. Optionally, in another way, the UE may rely on the PDCP sequence number (serial number, SN) assigned to each data packet by the PDCP layer of the base station to determine whether all data packets of the video frame have been received. Optionally, if the UE still fails to receive all data packets of the i-th video frame and receives the first data packet of the i+1-th frame, the UE may discard the data packet of the i-th frame and no longer deliver it to the upper layer.
[0017] In a third aspect, a device is provided, comprising units or means for executing each step included in the first or second aspect.
[0018] In a fourth aspect, a device is provided, comprising a processor and an interface circuit, wherein the processor is used to communicate with other devices through the interface circuit and execute the method provided in the first or second aspect above, and the processor includes one or more.
[0019] In a fifth aspect, a device is provided, comprising a processor, which is connected to a memory and is used to call a program stored in the memory to execute the method provided in the first or second aspect above. The memory may be located inside or outside the device, and the processor includes one or more.
[0020] In a sixth aspect, a device is provided, comprising at least one processor and at least one memory, wherein the at least one processor is used to execute the method provided in the first or second aspect above.
[0021] In a seventh aspect, a program is provided, which, when executed by a processor, is used to execute the method provided in the first or second aspect above.
[0022] In an eighth aspect, a program product is provided, such as a computer-readable storage medium, comprising the program of the first aspect or the second aspect.
[0023] In a ninth aspect, a computer-readable storage medium is provided, comprising a program. When the program is executed by a processor, the method provided in the first or second aspect is executed.
[0024] The above device can be a chip, and the processor can be implemented by hardware or by software. When implemented by hardware, the processor can be a logic circuit, an integrated circuit, etc.; when implemented by software, the processor can be a general-purpose processor, which is implemented by reading the software code stored in the memory. The memory can be integrated into the processor, or can be located outside the processor and exist independently. There are one or more processors and one or more memories. The memory can be integrated with the processor, or the memory and the processor can be set separately. In the specific implementation process, the memory can be integrated with the processor on the same chip, or can be set on different chips respectively. The embodiment of the present application does not limit the type of memory and the setting method of the memory and the processor. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] Figure 1 A schematic diagram of a video frame provided in an embodiment of the present application;
[0026] Figure 2 Schematic diagram of different transmission schemes provided in embodiments of the present application;
[0027] Figure 3 A schematic diagram of the network architecture provided in an embodiment of the present application;
[0028] Figures 4 to 7 A flow chart of a communication method provided in an embodiment of the present application;
[0029] Figure 8 A schematic diagram of a receiving protocol stack provided in an embodiment of the present application;
[0030] Figure 9 and Figure 10 A flow chart of a communication method provided in an embodiment of the present application;
[0031] Figure 11 and Figure 12 A schematic diagram of the structure of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0032] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application. Among them, in the description of the present application, unless otherwise specified, " / " indicates that the objects associated before and after are in an "or" relationship. For example, A / B can represent A or B; "and / or" in the present application is only a description of the association relationship of the associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. In addition, in the description of the present application, unless otherwise specified, "multiple" refers to two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, c can be single or multiple. In addition, to facilitate the clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, the words "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. Those skilled in the art will understand that the words "first" and "second" do not limit the quantity or execution order, and the words "first" and "second" do not necessarily mean different.
[0033] In addition, the network architecture and business scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Ordinary technicians in this field can know that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0034] For video services, the basic processing involves dividing the video into N frames per second, encoding each frame as a video frame. Each video frame can be encoded in terms of color and brightness to generate digital information. However, because each video frame contains many pixels, the encoded digital information is quite large, and direct transmission would consume a significant amount of bandwidth. Therefore, video services can be compressed before transmission.
[0035] Due to the nature of video services, as long as the camera doesn't switch, the majority of the content between adjacent frames is typically the same, with only minor differences. Therefore, video frames can be grouped, with the first frame of each group being the reference frame and subsequent frames being dependent frames. During compression, the reference frame undergoes intra-frame compression, meaning that compression only references the frame's own codestream, ignoring other frames. This allows the decompressor to independently decompress a single reference frame without requiring other frames. Dependent frames following the reference frame undergo inter-frame compression, referencing both the frame's own codestream and other frames, such as the reference frame. This significantly improves the compression ratio and reduces the size of the compressed data.
[0036] Due to the above compression method, the sizes of the compressed video frames will vary greatly. Figure 1 As shown, the reference frame (also known as the I frame) has the largest size. The dependent frames, namely the P frame (which only depends on the previous frame when decoding) and the B frame (which depends on both the previous frame and the following frame when decoding), have smaller sizes.
[0037] Because I frames are so large, they are typically segmented into multiple IP packets at the TCP / IP or Ethernet layers during transmission, before being delivered to the communications network. A typical I frame is divided into 64 IP packets. From the perspective of a base station (e.g., a gNB), dozens of IP packets are received before the subsequent P and B frames. Optionally, due to their smaller size, each P and B frame can include one or more IP packets.
[0038] See also Figure 2 The following three transmission schemes can be used by a base station (e.g., gNB) to transmit video frames. Optionally, these transmission schemes can be used to transmit I-frames, B-frames, or P-frames. The following describes the IP packet transmitting an I-frame as an example:
[0039] Transmission scenario 1 represents an ideal scenario. The gNB's air interface load is very light, allowing the gNB to quickly transmit the IP packet of the I frame to the terminal device. Upon receiving the packet, the terminal device immediately decodes the IP packet, resulting in minimal latency and extended latency, both within the specified limits.
[0040] Transmission scenario 2 applies to situations where the gNB's air interface is heavily loaded and the gNB has other, more urgent data to transmit, resulting in late scheduling of the IP packets for the I frame. This can result in the gNB not scheduling all the IP packets for the I frame until the delay budget for the I frame is exceeded. From the gNB's perspective, only some IP packets fail to reach the receiver on time, and the quality of service (QoS) is still met. However, from the perspective of the receiver's video decoder, the I frame exceeds the delay budget, affecting not only the decoding of the I frame itself but also the decoding of subsequent P and B frames.
[0041] Transmission solution three corresponds to a moderate gNB air interface load. However, because the gNB is unaware that the dozens of IP packets mentioned above belong to the same I-frame, the extended delay of the I-frame may be excessive. Although all IP packets of the I-frame arrive at the receiver before the delay budget, the extended delay of the I-frame exceeds the extended delay budget limit and does not meet the requirements of the video decoder.
[0042] Among them, the delay budget can also be called delay budget; the extended delay budget can also be called spread delaybudget, and the two are different. The delay budget defines the time limit for the data packet transmission delay between the core network element and the terminal device, or in other words, it refers to the time limit from the core network element receiving a data packet to delivering it to the terminal device. Delivery to the terminal device, for example, refers to the non-access layer of the terminal device, and the core network element is the core network element used for user plane control, such as the user plane function (UPF) element. The extended delay budget may refer to the time limit for the time interval from the first packet to the last packet of the received video frame by the video decoder. Optionally, for the video decoder, if all the IP packets of the I frame have not been received when the above-mentioned extended delay budget is reached, the video decoder will discard the previously received IP packets, resulting in the failure of decoding the I frame.
[0043] Based on the above, embodiments of the present application provide a communication method and apparatus, which may include: a communication apparatus obtaining an extended delay budget; a communication apparatus receiving a data packet of a first service; and a communication apparatus processing the received data packet based on the extended delay budget. For example, the communication apparatus may be an access network device, which may allocate a reasonable transmission opportunity based on the extended delay budget of an I frame and transmit the data packet of an I frame received from the core network to a terminal device, thereby reducing the chance that the I frame data packet will exceed the extended delay budget when arriving at the access layer of the terminal device, thereby resolving the technical issue of I frame decoding failure.
[0044] like Figure 3 As shown, a network architecture is provided, including: an access network and a core network.
[0045] The access network implements wireless access-related functions, and access network equipment provides access for terminal devices. Access network equipment includes radio access network (RAN) equipment and / or access network (AN) equipment. RAN equipment can be access network equipment defined in 3GPP. AN equipment can be access network equipment defined in non-3GPP (non-3GPP) formats.
[0046] RAN equipment is mainly responsible for radio resource management, quality of service (QoS) management, data compression and security processing on the air interface side. The RAN equipment may include various forms of base stations. For example, macro base stations, micro base stations (small stations), relay stations or access points. RAN equipment includes but is not limited to: next-generation base stations (gNBs) in 5G, evolved node Bs (eNBs), radio network controllers (RNCs), node Bs (NBs), base station controllers (BSCs), base transceiver stations (BTSs), home base stations (e.g., home evolved node Bs, or home node Bs, HNBs), baseband units (BBUs), transmitting and receiving points (TRPs), transmitting points (TPs), or mobile switching centers. The RAN device can also be a wireless controller, a centralized unit (CU), and / or a distributed unit (DU) in a cloud radio access network (CRAN) scenario, or the RAN device can be a relay station, an access point, a vehicle-mounted device, a terminal device, a wearable device, and an access network device in a future 6G network or an access network device in a future evolved public land mobile network (PLMN) network.
[0047] AN equipment is used to enable interoperability between terminal devices and the 3GPP core network using non-3GPP technologies. Such non-3GPP technologies include but are not limited to wireless fidelity (WIFI), worldwide interoperability for microwave access (WiMAX), and code division multiple access (CDMA) network technologies.
[0048] Among them, the core network equipment is mainly used to manage terminal equipment and provide a gateway for communication with the external network. The core network equipment can be, for example, core network elements in different network formats, and can include one or more of the following network elements: access and mobility management function (AMF) network element, session management function (SMF) network element, user plane function (UPF) network element, policy control function (PCF) network element, application function (AF) network element, unified data management (UDM) network element, authentication server function (AUSF) network element, and network slice selection function (NSSF) network element.
[0049] AMF network element: Primarily responsible for mobility management in mobile networks, such as user location updates, user network registration, and user handover. SMF network element: Primarily responsible for session management in mobile networks, such as session establishment, modification, and release. Specific functions include allocating IP addresses to users and selecting UPF network elements that provide packet forwarding capabilities. UPF network element: Primarily responsible for forwarding and receiving user data. In downlink transmission, the UPF network element can receive user data from the data network (DN) and transmit it to the terminal device via access network equipment. In uplink transmission, the UPF network element can receive user data from the terminal device via access network equipment and forward it to the DN. Optionally, the transmission resources and scheduling functions provided by the UPF network element to terminal devices can be managed and controlled by the SMF network element. PCF network element: Primarily supports the provision of a unified policy framework to control network behavior, provides policy rules to control-layer network functions, and is responsible for obtaining user subscription information related to policy decisions. AF network element: Primarily supports interaction with the 3GPP core network to provide services, such as influencing data routing decisions, policy control functions, or providing third-party services to the network side. The UDM network element is mainly used to generate authentication credentials, user identity processing (such as storage and management of user permanent identity, etc.), access authorization control and contract data management, etc. The AUSF network element is mainly used to perform authentication when the terminal device accesses the network, including receiving the authentication request sent by the security anchor function (SEAF), selecting the authentication method, and requesting the authentication vector from the authentication repository and processing function (ARPF). The NSSF network element is mainly used to select network slice instances for terminal devices, determine the allowed network slice selection assistance information (NSSAI), configure NSSAI and determine the AMF set serving the terminal device.
[0050] Optional, Figure 3The network architecture shown may also include: terminal devices. The terminal device, which can be simply referred to as a terminal, is a device with wireless transceiver capabilities. The terminal device can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; it can also be deployed on the water (such as a ship); it can also be deployed in the air (for example, on an airplane, a balloon, and a satellite). The terminal device can be a mobile phone, a tablet computer, a computer with wireless transceiver capabilities, a virtual reality (VR) terminal device, an augmented reality (AR) terminal device, a wireless terminal device in industrial control, a wireless terminal device in self-driving, a wireless terminal device in remote medical care, a wireless terminal device in a smart grid, a wireless terminal device in transportation safety, a wireless terminal device in a smart city, or a wireless terminal device in a smart home, etc. The terminal device may also be a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device with wireless communication capabilities, a computing device or other processing device connected to a wireless modem, an in-vehicle device, a wearable device, a terminal device in the future fifth generation (5G) network, or a terminal device in a future evolved public land mobile network (PLMN). The terminal device may also sometimes be referred to as user equipment (UE), access terminal device, in-vehicle terminal device, industrial control terminal device, UE unit, UE station, mobile station, mobile station, remote station, remote terminal device, mobile device, wireless communication device, UE agent or UE device. The terminal device may also be fixed or mobile. The embodiments of the present application are not limited to this. As an example and not a limitation, in the embodiments of the present application, the terminal device may be a wearable device. Wearable devices, also known as wearable smart devices, are a general term for wearable devices developed by applying wearable technology to the intelligent design of everyday wearables, such as glasses, gloves, watches, clothing, and shoes. Wearable devices are portable devices that are worn directly on the body or integrated into the user's clothing or accessories.Wearable devices are not just hardware devices, but also devices that achieve powerful functions through software support, data interaction, and cloud interaction. In a broad sense, wearable smart devices include those that are full-featured, large in size, and can achieve complete or partial functions without relying on smartphones, such as smart watches or smart glasses, as well as those that only focus on a certain type of application function and need to be used in conjunction with other devices such as smartphones, such as various smart bracelets and smart jewelry for vital sign monitoring. In this application, the terminal device can be a terminal in the Internet of Things (IoT) system. IoT is an important part of the future development of information technology. Its main technical feature is to connect objects to the network through communication technology, thereby realizing an intelligent network of human-machine interconnection and object-to-object interconnection. The terminal device in this application can be a terminal device in machine type communication (MTC). The terminal device in this application can be an on-board module, on-board module, on-board component, on-board chip or on-board unit built into a vehicle as one or more components or units. The vehicle can implement the method of this application through the built-in on-board module, on-board module, on-board component, on-board chip or on-board unit. Therefore, the embodiments of the present application can be applied to the Internet of Vehicles, such as vehicle to everything (V2X), long-term evolution vehicle (LTE-V), vehicle to vehicle (V2V), etc.
[0051] Optional, in Figure 3 The illustrated network architecture may also include a data network (DN). The DN may be a service network that provides data services to users. For example, the DN may be an IP multimedia service network or the internet. A terminal device may establish a protocol data unit (PDU) session from the terminal device to the DN to access the DN.
[0052] It should be noted that in different communication systems, the network elements in the core network may have different names. Figure 3 The schematic diagram shown is an example of a fifth-generation mobile communication system and is not intended to limit the present application. For example, in an LTE communication system, the core network equipment may include one or more of the following network elements: a mobility management entity (MME) and a serving gateway (S-GW). Figure 3The core network elements in the figure are only for illustrative purposes and are not intended to limit the embodiments of the present application. Figure 1 In the network architecture shown, the core network elements may also include one or more network elements such as a network exposure function (NEF), a network repository function (NRF), or a service control point (SCP).
[0053] like Figure 4 As shown, an embodiment of the present application provides a flow chart of a communication method, which includes but is not limited to:
[0054] Step 401: The communication device obtains an extended delay budget.
[0055] Optionally, the extended delay budget may adopt any one of the following descriptions:
[0056] 1. Extended delay budget is used to set a time limit for the communication device to process all data packets of a video frame.
[0057] 2. Extended delay budget refers to a time limit for a communication device to process all data packets of a video frame, such as the maximum processing delay, tolerance time, or maximum decoding duration of all data packets of a video frame. For example, a video frame can usually be split into multiple data packets. The video decoder of the communication device can use the extended delay budget to limit the processing time of all data packets of a video frame. For example, the video decoder of the communication device starts timing from the reception of the first data packet of the video frame, or starts timing from the processing of the first data packet of the video frame; if the decoder still has not received or successfully decoded all data packets after the limit of the above-mentioned extended delay budget expires, the decoding of the video frame fails, and the decoder can discard the received data packets; if all data packets are received or successfully decoded within the limit of the above-mentioned extended delay budget, the decoding of the video frame is successful. Of course, it can be understood that the above-mentioned collection or decoding success can be replaced by submission to the upper layer.
[0058] In one possible implementation, the extended delay budget may be preconfigured or specified by a protocol, etc., without limitation. If preconfigured, the communication device may receive first information and determine the extended delay budget based on the first information. The first information may directly indicate the size of the extended delay budget. Alternatively, the first information may indirectly indicate the size of the extended delay budget. For example, the first information may indicate the service type, and the communication device may determine the extended delay budget based on the correspondence between the service type and the extended delay budget. For example, the extended delay budget corresponding to an animation video may be 20ms, the extended delay budget corresponding to a landscape video may be 15ms, and the extended delay budget corresponding to an action film video may be 10ms. Alternatively, the first information may indicate the decoding type of the video frame, and different decoding types may correspond to different extended delay budgets. The communication device may determine the extended delay budget based on the correspondence between the decoding type of the video frame and the extended delay budget, etc., without limitation. The communication device may be an access network device, and the access network device may receive the first information from a core network element. For example, the SMF network element can send the first information to the access network device through the AMF network element. Alternatively, the above-mentioned communication device can be a terminal device, and the terminal device can receive the above-mentioned first information from the access network device. For example, the access network device can first obtain the first information from the core network network element, and then transparently transmit it to the terminal device. Optionally, the first information obtained by the above-mentioned access network device can be a direct indication or an indirect indication; the first information transmitted to the terminal device can also be a direct indication or an indirect indication, etc., without limitation. Among them, the first information can be carried in an application layer data packet, and the application layer data packet is sent by the access network device to the terminal device. The terminal device can obtain the first information by parsing the application layer data packet. The application layer data packet can be provided by the application layer to the access layer, and the access layer transmits it to the terminal device without parsing. Alternatively, the first information can be sent by the access network device to the terminal device as an access layer control information element.
[0059] The pre-configuration in this embodiment and the following embodiments refers to pre-configuration to the communication device. As for the message carrying the configuration content, the embodiments of the present application do not impose any restrictions.
[0060] In step 402, the communication device receives a data packet for a first service. For example, the communication device may receive N data packets for the same video frame, where the N data packets may be all or part of the data packets for the same video frame. For example, for a reference frame, i.e., an I-frame, an I-frame is assumed to include 64 IP packets, and the value of N may be a positive integer less than or equal to 64. Optionally, the N data packets for the same video frame may also be referred to as a cluster of data. The data packets may also be referred to as IP packets, without distinction between the two.
[0061] In an embodiment of the present application, the communication device may determine that the first received data packet is the first data packet of the video frame in the following manner. For example, the first data packet carries a frame start identifier, or the communication device may receive an independent frame start identifier and the first data packet, without limiting the order of the frame start identifier and the first data packet. Alternatively, the previous data packet of the first data packet carries a frame end identifier, or the communication device may receive an independent frame end identifier and the last data packet of the previous frame. Alternatively, the communication device does not receive any data packets within a period of time T, and the data packet received thereafter may be considered to be the first data packet, etc. The value of T may be pre-configured, or specified by the protocol, or confirmed by the communication device itself, etc. In the following description, the frame start identifier may also be referred to as indication information of the first data packet, or the first indication information, etc. The frame end identifier may also be referred to as indication information of the last data packet, or the second indication information, etc., without limitation. In addition to receiving the first data packet of the video frame, the communication device may also receive other data packets in the video frame.
[0062] In one possible implementation, the communication device may receive a first data packet, referred to as data packet P1, which is the first data packet among N data packets. The data packet P1 may carry first indication information for indicating the first data packet. Other data packets received by the communication device within a preset time belong to the same video frame as the data packet P1. In one possible implementation, the above function may be implemented by a timer. When the communication device receives the data packet P1, it may start a first timer. Other data packets received during the operation of the first timer may be the remaining data packets among the N data packets. The timer may be specified by the protocol, or pre-configured, and is not limited. Alternatively, the above-mentioned data packet P1 and the first indication information may be sent independently, and the order of the two is not limited.
[0063] In one possible implementation, a communications device receives a first data packet, referred to as data packet P1. Data packet P1 is the first of N data packets. Data packet P1 may carry first indication information, indicating that data packet P1 is the first of the N data packets. A preset number of other data packets received by the communications device belong to the same video frame as data packet P1. The preset number may be specified by the protocol, or preconfigured, for example, using application layer configuration information or access layer information, or carried in the first data packet. For example, the first data packet includes information indicating the preset number and the first indication information, and the information and the first indication information are separate information elements. Alternatively, the first indication information may indicate both the preset number and the first packet of the video frame. For example, in one possible implementation, after receiving data packet P1, the communications device may receive a preset number of other data packets, assuming that the other data packets belong to the same video frame as data packet P1. For example, the preconfigured or protocol-specified preset number may be N. After receiving the first data packet of the same video frame, data packet P1, the communications device may continue to receive N-1 data packets according to the preset number, and so on. Similarly, in this implementation, the first indication information and the data packet P1 can also be sent independently of each other, and the order of the two is not limited. At this time, the information indicating the preset quantity can be carried in the same message as the first indication information, or the first indication information can indicate both the preset quantity and the first packet of the video frame.
[0064] The above preset number may be the total number of a video frame including the first packet, or may be the number of data packets in a video frame excluding the first packet.
[0065] In another possible implementation, a communications device receives a first data packet, referred to as data packet P1. Data packet P1 is the first of N data packets. Data packet P1 may carry first indication information, indicating that data packet P1 is the first of the N data packets. Other data packets of a preset data volume received by the communications device belong to the same video frame as data packet P1. The preset data volume may be specified by the protocol, preconfigured, for example, using application layer configuration information or access layer information, or carried in the first data packet. For example, the first data packet includes information indicating the preset data volume and the first indication information, and the information and the first indication information are separate information elements. Alternatively, the first indication information may indicate both the preset data volume and the first packet of the video frame. The preset data volume may be expressed in bytes, for example. For example, in one possible implementation, after receiving data packet P1, the communications device may receive other data packets of the preset data volume and deem the other data packets of the preset data volume to belong to the same video frame as data packet P1. For example, if the data volume of a video frame is 1500 bytes, the 1500 bytes may be preconfigured for the communications device. When the communication device receives the first data packet of a video frame, it can determine the data volume of the first data packet. Afterwards, after receiving the second data packet, the sum of the data volume of the first data packet + the second data packet is determined. Similarly, after receiving the third data packet, the sum of the first data packet + the second data packet + the third data packet is determined. Until the sum of the data volume of the multiple data packets received reaches 1500 bytes, the data packets of the current video frame are stopped from being received, and the multiple data packets are considered to belong to the same video frame. Subsequently, the communication device can continue to receive the data packets of the next video frame. Similarly, in this implementation method, the first indication information and the data packet P1 can also be sent independently of each other, and the order of the two is not limited. At this time, the information indicating the preset data volume can be carried in the same message with the first indication information, or the first indication information can indicate both the preset data volume and the first packet of the video frame.
[0066] The above-mentioned preset data amount may be the total data amount of a video frame including the first packet, or may be the remaining data amount in a video frame excluding the data amount of the first packet.
[0067] In another possible implementation, the communication device receives a first data packet, referred to as data packet P1, which is the first data packet among N data packets. Data packet P1 may carry first indication information, and the first indication information is used to indicate that data packet P1 is the first data packet among N data packets. The other data packets received by the communication device between data packet P1 and data packet P2 (which may also be referred to as the second data packet) belong to the same video frame as data packet P1, and data packet P2 is the first data packet of the next video frame. In this manner, the communication device can distinguish different video frames by indicating the first data packet of each video frame. Similarly, in this implementation, the first indication information and data packet P1 can also be sent independently of each other, and the order of the two is not limited.
[0068] In another possible implementation, the communication device receives data packet Pn (which may be referred to as a third data packet), which is the last data packet among N data packets. Data packet Pn carries second indication information, which is used to indicate that data packet Pn is the last data packet among the N data packets, i.e., the last data packet. Other data packets received by the communication device between the last data packet of the previous video frame and the last data packet of the current video frame (i.e., data packet Pn) belong to the same video frame as data packet Pn. In this method, the communication device can distinguish different video frames by indicating the last data packet of each video frame.
[0069] For example, a communication device may receive a data packet Pm, which may include information indicating a tail data packet. Subsequently, the communication device may receive another data packet that does not include information indicating a tail data packet. Further, the communication device may receive a data packet Pn, which includes information indicating a tail data packet. The terminal device may determine that the other data packets received between the aforementioned data packets Pm and Pn belong to the same video frame as the aforementioned data packet Pn. Optionally, the second indication information and data packet Pn may be sent separately, and the order of the two is not limited.
[0070] In another possible implementation, the communication device receives N data packets of the same frame, each of the N data packets carries third indication information corresponding to the video frame, and the data packets carrying the same third indication information belong to the same video frame. For example, the communication device receives N1 data packets, each of which carries indication information 1. The communication device then determines, based on indication information 1, that the N1 data packets belong to the same video frame. Thereafter, the communication device receives N2 data packets, each of which carries indication information 0. The communication device can then determine, based on indication information 0, that the N2 data packets belong to the same video frame. By analogy, the communication device then receives N3 data packets, each of which carries indication information 1, and so on.
[0071] The first indication information is used to indicate the first data packet of a video frame; the second indication information is used to indicate the last data packet of a video frame, i.e., the tail data packet; the third indication information can be understood as an indication of the same video frame, i.e., data packets carrying the same third indication information belong to the same video frame. The first and second indication information can be used in combination to provide another implementation method, i.e., the data packets between the data packet carrying the first indication information and the data packet carrying the second indication information (including the first and last data packets) belong to the same video frame.
[0072] In addition, the above second indication information can replace the first indication information and be used in combination with a preset number or a preset data volume. For example, when the tail data packet is received, the preset number of data packets or the preset data volume before the tail data packet are understood as belonging to the same video frame as the tail data packet.
[0073] In step 403, the communication device processes the data packets according to the extended delay budget. For example, the communication device may determine the timing for transmitting or delivering N data packets based on the data volume of the N data packets and the extended delay budget. Optionally, since the communication device determines the transmission timing based on the data volume of the N data packets in the same video frame, the first data packet among the above-mentioned N data packets may carry information indicating the data volume of the N data packets. In this way, when the communication device receives the first data packet of each video frame, it can determine the data volume of the entire video frame and start looking for the timing to transmit the above-mentioned video frame. Alternatively, the first data packet of each of the above-mentioned video frames may carry the average data volume of the N data packets included therein, and the communication device may also determine the data volume size of the entire video frame based on the average data volume of the N data packets.
[0074] Optionally, the indication information indicating the data amount of N data packets may not be sent, but may be indicated as specified by the protocol or through information independent of the first data packet.
[0075] In a possible implementation, the communication device may be an access network device. Figure 4 The solution shown can be applied to downlink video transmission. In the above 403, the access network device can determine the timing of transmitting N data packets to the terminal device based on the extended delay budget and the data volume of the N data packets. At the above timing, the N data packets are sent to the terminal device, thereby reducing the delay of the terminal device receiving or processing the N data packets exceeding the extended delay budget, thereby improving the decoding success rate of the terminal device. Alternatively, the above Figure 4The illustrated solution can be applied to uplink video transmission. In step 403 above, the access network device can determine the transmission timing of N data packets based on the extended delay budget and the data volume of the N data packets. Scheduling information is then sent to the terminal device, which schedules the terminal device to transmit N data packets to the network device at the aforementioned transmission timing. This reduces the delay in receiving or processing N data packets from exceeding the extended delay budget, thereby improving the decoding success rate of the video server. Optionally, in the uplink video transmission solution, the terminal device can transmit the uplink video service to the access network device. The access network device then transmits the uplink video service to the video server via the UPF network element, which then decodes the uplink video service.
[0076] In another possible implementation, the communication device may be a terminal device. The access layer of the terminal device may deliver N data packets to an upper layer based on the extended delay budget, thereby reducing the delay of the upper layer decoder processing the N data packets by more than the extended delay budget, thereby increasing the probability of successful decoding.
[0077] Optional, above Figure 4 The process solution can be applied to process video frames including multiple data packets, for example, I-frames, P-frames, or B-frames, without limitation.
[0078] Figure 5 A flow chart of a communication method is shown, which can be applied to downlink video transmission, including but not limited to:
[0079] In step 501, the SMF network element sends first information to the AMF network element. The first information can be used to directly indicate the extended delay budget size of the first service; or the first information can be used to indicate the type of the first service, or the first information can be used to indicate the decoding type of the first service, thereby indirectly indicating the extended delay budget size of the first service. The first information can be generated by the SMF network element, or obtained by the SMF network element from other network elements, such as UDM network elements, PCF network elements, or video application servers.
[0080] In step 502, the AMF network element sends first information to the gNB. Optionally, the gNB may determine an extended delay budget for the first service based on the first information. The first information may directly indicate the size of the extended delay budget, or may indirectly indicate the size of the extended delay budget. For example, the first information may indicate the type of the first service, or may indicate the decoding type of the first service, etc., without limitation.
[0081] Step 503: The application server sends N data packets of the same video frame to the UPF network element. In a possible implementation, the application server may send N data packets of the same video frame to the UPF network element via the DN.
[0082] In step 504, the UPF network element sends N data packets of the same video frame to the gNB.
[0083] In one possible implementation, the first data packet of each video frame may carry first indication information, where the first indication information indicates the first data packet of the video frame. The gNB may distinguish data packets included in different video frames based on the first indication information. Optionally, the first indication information and the first data packet may be sent separately, and the order of the first and second data packets is not restricted.
[0084] 1. Upon receiving the first data packet of each video frame, the gNB may start a timer. The timer may be protocol-specified or preconfigured. During the timer, any additional data packets received by the UPF network element from the UPF network element and the first data packet may belong to the same video frame. That is, the additional data packets and the first data packet together constitute N data packets of the same video frame.
[0085] 2. In addition to receiving the first data packet of each video frame, the gNB also receives a preset number or a preset amount of other data packets from the UPF network element. The preset number or the preset amount of data can be specified by the protocol, or pre-configured, or carried in the first data packet, etc., without limitation. For the manner in which the preset number or the preset amount of data is carried in the first data packet, please refer to the above Figure 4 The records in will not be explained here.
[0086] 3. The gNB may determine that other data packets between two first data packets, together with the previous first data packet, constitute the same video frame. For example, the gNB receives the first data packet of the i-th video frame from the UPF network element. Thereafter, the gNB receives other data packets from the UPF network element. Thereafter, the gNB receives the first data packet of the i+1-th video frame from the UPF network element. The gNB may determine that these other data packets, together with the first data packet of the i-th video frame, constitute the i-th video frame, where i is a positive integer greater than or equal to 1.
[0087] In another possible implementation, the last data packet of each video frame may carry second indication information, where the second indication information is used to indicate the last data packet of the video frame. The gNB may distinguish data packets included in different video frames based on the second indication information.
[0088] 1. The gNB can determine that the other packets between two tail packets, together with the last tail packet, constitute the same video frame. For example, the gNB receives the tail packet of the i-th video frame from the UPF network element. Thereafter, it receives other packets from the UPF network element. Then, it receives the tail packet of the i+1-th video frame from the UPF network element. The gNB can determine that these other packets, together with the tail packet of the i+1-th video frame, constitute the i+1-th video frame.
[0089] In another possible implementation, data packets of different video frames may carry different indication information to indicate the corresponding video frames. The gNB may determine the data packets included in each video frame based on the indication information.
[0090] In step 505, the gNB determines a transmission opportunity to begin transmitting the N data packets based on the data volume of the N data packets in the same video frame and the extended delay budget. Optionally, the number of transmission opportunities may be one or more. When there is one transmission opportunity, the gNB transmits the N data packets in that transmission opportunity. When there are multiple transmission opportunities, the gNB may split the N data packets into multiple parts and transmit a corresponding data packet in each transmission opportunity.
[0091] In one possible implementation, the gNB can schedule data based on the extended delay budget. After receiving the last packet of a video frame, the gNB calculates the sum of the data sizes of all packets in the frame. It then schedules a continuous or non-contiguous transmission resource for transmitting all packets in the frame. Optionally, "video frame size indication information" can be added to the packets of the video frame and notified to the gNB. Theoretically, this "video frame size indication information" can be added to any packet in the frame. Alternatively, this "video frame size indication information" can be added to the first packet of the frame. This eliminates the need for the gNB to wait until the last packet of a video frame is received before calculating the sum of the data sizes of all packets in the frame. It then schedules a continuous or non-contiguous transmission resource for transmitting all packets in the frame. Instead, the gNB can determine the size of each video frame upon receiving the first packet and begin searching for transmission opportunities, improving video frame transmission efficiency.
[0092] Optionally, the "indication of the video frame size" may be replaced with "indication of the average size of all data packets in the video frame." The gNB may also estimate the total size of the video frame based on the average size of the data packets and the number of data packets in the video frame.
[0093] Figure 6Another process of the communication method is shown, which can also be applied to downlink video transmission. Figure 5 The difference in the process is that the video data source (e.g., application server) notifies the gNB to extend the delay budget.
[0094] In step 601, the video receiver reports any one or more of the following parameters to the video data source: video receiver buffer size, video receiver buffer time, compression / decompression algorithm, compression / decompression parameters, and video type (e.g., animation, landscape, or people). Optionally, for downlink transmission, the video receiver may be a UE.
[0095] Step 602: The video data source determines the extended delay budget of the video service based on the above parameters.
[0096] In one possible implementation, if the video data source needs to determine the extended delay budget for the video service based on the aforementioned "video receiver buffer size," the video receiver may report the aforementioned video receiver buffer size in the following manner.
[0097] 1. Configure a different receiver buffer size for each service. The video receiver, such as a UE, can obtain the receiver buffer size configured for the current service and report this size in step 601.
[0098] 2. Configure the same receiver buffer size for each service. Since the receiver buffer size is the same for each video service, the receiver can pre-report this size to the video data source. Regardless of the service type, the video data source determines the extended latency budget based on this size.
[0099] 3. Configure a unified receiver cache size, shared by multiple services. The video data source determines the cache size for each video service based on the number of video services the video receiver is receiving simultaneously, ensuring that it does not exceed the total size limit. Before determining the extended latency budget for each service, the video data source may need to consult with the video receiver. Through this consultation, the video data source can obtain the shared cache size of the receiver and the number of video services currently being received simultaneously. Based on these two factors, the video data source determines an appropriate cache size. Then, based on this appropriate cache size, it determines the extended latency budget for the current service.
[0100] In step 603, the video data source sends first information to the gNB. The first information may directly indicate the size of the extended delay budget. Alternatively, the first information may indirectly indicate the size of the extended delay budget. For example, the first information may indicate the video service type or decoding type. The video service type or decoding type may correspond to the extended delay budget. The gNB may determine the extended delay precode based on the video service type or decoding type. Optionally, in addition to the video service type, the terminal device may also consider its capabilities, such as the terminal device buffer size and buffering time. The terminal device determines the extended delay budget based on the video service type and terminal device capabilities.
[0101] Step 604: The UPF network element sends N data packets of the same video frame to the gNB. For details on how the gNB receives N data packets of the same video frame from the UPF network element, please refer to the above Figure 5 or Figure 4 The records in will not be explained again.
[0102] In step 605, the gNB determines the timing for transmitting the N data packets based on the extended delay budget and the data volume of the N data packets, so that the delay between the first and last data packets of the video frame does not exceed the limit of the extended delay budget.
[0103] above Figure 5 and Figure 6 The method shown is for downlink video transmission. In actual networks, most video transmission is downlink, but uplink video transmission also exists. For example, in live broadcast services, the host needs to upload the real-time video to the video server, and the video server then downloads the live video to each viewer. For uplink video services, there may also be the problem of extending the delay budget. See Figure 7 , provides a specific process of a communication method, which can be applied to uplink video transmission, including but not limited to:
[0104] In step 701, the SMF network element sends first information to the AMF network element. The first information may directly indicate the size of the extended delay budget, or indirectly indicate the size of the extended delay budget, without limitation. Optionally, the extended delay budget may be an uplink extended delay budget, such as the uplink extended delay budget corresponding to a particular session data.
[0105] Step 702: The AMF network element sends first information to the gNB.
[0106] Optional, in Figure 7 In the process of , the core network element notifies the gNB to extend the delay budget as an example. In addition, you can also use Figure 6 There is no restriction on how the video data source notifies the gNB to extend the latency budget.
[0107] In step 703, the UE sends a notification message to the gNB, notifying the gNB that an uplink video frame is pending for transmission. Optionally, the notification message may also include information indicating the data volume of an uplink video frame. Alternatively, the UE's upper layers may notify the access layer of the pending video frame, which then sends the notification message to the gNB. Alternatively, the UE's upper layers may directly transmit the first packet of the video frame to the access layer. Upon receiving the first packet of the video frame, the access layer sends the notification message to the gNB.
[0108] In one possible implementation, the UE may notify the gNB via a buffer status report (BSR). For example, the BSR may carry a notification message. Alternatively, the UE may notify the gNB via a media access control element (MAC CE) other than the BSR, and the MAC CE may carry the notification message. Alternatively, the UE may generate control signaling via the SDAP layer, PDCP layer, or RLC layer to notify the gNB. Alternatively, when transmitting other data, the UE may notify the gNB via a reserved field in the protocol data unit (PDU) header of the SDAP layer, PDCP layer, or RLC layer. That is, the reserved field may carry the notification message. In a more specific implementation, the UE has multiple video frames to be transmitted, and the extended delay budgets of different video frames may be the same or different. When the extended delay budgets of these multiple video frames to be transmitted are different, the UE may report notification messages for different video frames via different BSRs. For example, a notification message reported via a BSR could be: "There is a 5000-byte video frame to be transmitted, and it is desired to be transmitted within a 30ms delay." The gNB can allocate transmission resources for the video frame based on the UE's requirements and the corresponding extended delay budget.
[0109] In step 704, the gNB receives the notification message and determines scheduling behavior to ensure sufficient uplink resources are allocated to the UE within the extended delay budget to complete uplink video frame transmission. For example, upon receiving the notification message, the gNB may allocate an appropriate timing for the UE based on the data volume of the uplink video frame and the extended delay budget. The gNB also sends downlink control information (DCI) to the UE, which allocates resources for uplink data transmission. The UE transmits the uplink video frame to the gNB based on the uplink resources allocated by the DCI.
[0110] Optionally, the above-mentioned DCI may include an uplink grant (UL grant). The gNB may allocate uplink resources to the UE through one or more UL grants. When the gNB allocates uplink grants to the UE through multiple UL grants, the first UL grant may carry indication information, which may indicate that uplink resources will continue to be allocated to the UE. For example, the indication may specifically indicate that the gNB will allocate X bits of resources to the UE within the next T time period. Furthermore, when the UE receives the indication information, it may optimize the logical channel prioritization (LCP) behavior. For example, for the logical channel corresponding to the video service, the UE may temporarily increase the guaranteed bit rate (GBR) value of the video service, or temporarily increase the priority of the video service, to ensure that as much data of the current video frame as possible is transmitted during the LCP, further ensuring that the delay of the current video frame does not exceed the limit of the uplink extended delay budget.
[0111] Furthermore, if the UE decides to optimize the transmission of the current video service, for example, by temporarily increasing the GBR value or priority of the current video service, there are several implementation options for when to end this preferential treatment: The UE decides. For example, the UE may end the preferential treatment upon completing transmission of the current frame's video service. Alternatively, the gNB decides. For example, when allocating uplink resources to the UE, the gNB may include an indication. For example, the currently allocated uplink resources may be preferred for transmission of video services. In this way, when the UE performs LCP, preferential treatment may be given to the transmission of this video service. Alternatively, the gNB may notify the UE of the end of the preferential treatment through an indication. The indication may be carried in a DCI, MAC CE, or radio resource control (RRC). For example, if the gNB allocates uplink resources to the UE using dynamic scheduling, the gNB may notify the UE of the end of the preferential treatment through DCI. Alternatively, if the gNB allocates uplink resources to the UE using semi-persistent scheduling, the gNB may notify the UE of the end of the preferential treatment through RRC or MAC CE.
[0112] Through the above Figure 7 In the method described above, the UE notifies the gNB of the amount of uplink video data to be transmitted, and the video data belongs to the same frame of video service. The gNB can then use this information for scheduling, ensuring that the uplink video frame transmission does not exceed the extended delay budget.
[0113] Figure 8A schematic diagram of the protocol stack of a video receiver (e.g., a terminal device) is shown. In one possible implementation, the protocol stack of the video receiver may include, from top to bottom: an application (APP) layer, a service data adaptation protocol (SDAP) layer, a packet data convergence protocol (PDCP) layer, a radio link control (RLC) layer, a media access control (MAC) layer, and a physical (PHY) layer. Optionally, the "access layer" mentioned in the embodiment of the present application may include: one or more of the SDAP layer, the PDCP layer, the RLC layer, the MAC layer, or the PHY layer; the upper layer may include the APP layer. The access layer and the upper layer may be adjacent protocol layers or non-adjacent protocol layers, without limitation. For example, between the upper layer and the access layer, there may also be an IP layer, a TCP layer, or a user datagram protocol (UDP) layer, without limitation.
[0114] like Figure 9 As shown, a flow chart of a communication method is provided. Optionally, the method of the process can be executed at the video receiving party (e.g., terminal device). Including but not limited to:
[0115] Step 901: The access layer receives a first data packet, where the first data packet is the first data packet of a video frame.
[0116] In an embodiment of the present application, the access layer may determine that the first received data packet is the first data packet of the video frame in the following manner. For example, the first data packet carries a frame start identifier, or the access layer receives an independent frame start identifier and the first data packet, without limiting the order of the frame start identifier and the first data packet. Alternatively, the previous data packet of the first data packet carries a frame end identifier, or the access layer receives an independent frame end identifier and the last data packet of the previous frame, without limiting the order of the two. Alternatively, the access layer does not receive any data packet within a period of time T, and the data packet received thereafter can be considered to be the first data packet. The value of T may be pre-configured, or specified by the protocol, or confirmed by the UE itself, etc.
[0117] Step 902: The access layer receives other data packets that belong to the same video frame as the first data packet.
[0118] Step 903 : When the preset time expires or all N data packets belonging to the same video frame are received, the access layer delivers N data packets to the upper layer, where the N data packets include the first data packet and other data packets.
[0119] In one possible implementation, the preset time can be preconfigured, or the protocol specifies the preset time. Optionally, the above solution can be implemented through a timer. For example, when the access layer receives the first packet of a video frame, it starts the timer; when the timer ends, it submits the received data packet to the upper layer. Alternatively, the access layer can receive indication information sent by the access network device, the core network network element or the video data source, and determine the preset time based on the indication information. The indication information can indicate a specific preset time size. Alternatively, the indication information can indicate an extended delay budget. Based on the extended delay budget, the preset time can be determined, and the preset time can be less than or equal to the extended delay budget, etc. In one solution, the access layer submits each data packet it receives to the upper layer. This may cause the time interval from the first packet to the last packet of the video frame received by the upper layer to exceed the limit of the extended delay budget, causing the upper layer decoder to fail decoding. In this implementation, the access layer no longer submits each received data packet to the upper layer. Instead, it submits all data packets received continuously over a period of time (i.e., a preset time) to the upper layer. This reduces the probability that the delay of each video frame in the upper layer will exceed the extended delay budget. Of course, if the preset time is set appropriately, the upper layer can submit all data packets for a video frame to the upper layer simultaneously. This ensures that the extended delay of each video frame in the upper layer does not exceed the extended delay budget, ensuring successful decoding by the upper layer decoder.
[0120] In this embodiment, the method for determining whether the data packets belong to the same video frame can adopt any method of the above embodiments, which will not be described in detail here.
[0121] In another possible implementation, the access layer may uniformly submit N data packets to the upper layer when all N data packets are received. The N may be less than or equal to the number of data packets included in a video frame. For example, if a video frame includes 64 data packets, the value of N may be less than or equal to 64, etc. In this implementation, the access layer uniformly submits N data packets to the upper layer. Compared with the method in which the access layer submits data packets to the upper layer one by one, the probability of the extended delay of the upper layer video frame exceeding the extended delay budget limit can also be reduced, thereby reducing the probability of decoding failure. Of course, if the value of N is equal to the number of all data packets in a video frame, then the access layer may uniformly submit all data packets of a video frame to the upper layer, which can ensure that the extended delay of each video frame in the upper layer does not exceed the extended delay budget, so that the upper layer decoder can successfully decode.
[0122] In another possible implementation, when the access layer receives the tail packet of a video frame, it may be considered that all data packets of the video frame have been received, and all data packets are delivered to the upper layer, otherwise no data packets are delivered to the upper layer. There are many ways for the access layer to determine whether a data packet is a tail packet. For example, the video frame end identifier may be carried in the tail packet, or the tail packet indication information may be carried in the tail packet, or the video frame end identifier or the tail packet indication information may be sent separately, without limitation. Optionally, in another way, the UE may rely on the PDCP sequence number (serial number, SN) assigned to each data packet by the PDCP layer of the base station to determine whether all data packets of the video frame have been received. Optionally, if the UE still fails to receive all data packets of the i-th video frame and receives the first data packet of the i+1-th frame, the UE may discard the data packet of the i-th frame and no longer deliver it to the upper layer.
[0123] Optional, above Figure 9 The method shown above Figures 4 to 7 The methods shown can be used in combination. For example, in one possible implementation, the gNB can allocate transmission opportunities for N data packets based on the extended delay budget, so that the transmission of the N data packets meets the delay spread budget requirement. Furthermore, upon receiving the N data packets, the access stratum of the UE can collectively deliver the N data packets to the upper layer.
[0124] like Figure 10 As shown, a flow chart of a communication method is provided, including but not limited to:
[0125] In step 1000, an SMF network element sends first information to a UE. Optionally, the SMF may send the first information to the UE via an AMF network element or a gNB. The first information may directly indicate the size of the extended delay budget, or indirectly indicate the size of the extended delay budget.
[0126] Step 1001: The UPF network element receives N data packets from the same video frame. For example, the video data source may send N data packets of the same video frame to the UPF network element via the DN.
[0127] In step 1002, the UPF sends N data packets for the same video frame to the gNB. For details on how the gNB determines the N data packets for the same video frame, see the above description.
[0128] Step 1003: The gNB sends N data packets of the same video frame to the UE.
[0129] Step 1004: The access layer of the UE waits until all N data packets are received before submitting them to the upper layer.
[0130] Similarly, the N data packets of the same video frame sent by the gNB to the UE carry information indicating the first packet, the last packet, or different video frames. Therefore, upon receiving the data packets, the UE's access layer can distinguish which data packets comprise each video frame. Unlike existing solutions, the UE's access layer collectively delivers all data packets of the same video frame to the upper layer. In one specific implementation, upon receiving a data packet, if the UE's access layer determines that it belongs to the current video frame, it temporarily does not deliver it to the upper layer but instead buffers it. It then delivers all the data packets of the current video frame to the upper layer in a centralized manner after receiving all the data packets of the current video frame. Optionally, if the UE uses indication information for data packets of different video frames, the UE can determine that data packets carrying the same indication information belong to the same video frame. When the UE receives data packets with different indication information, it can determine that all the data packets of the current video frame have been received and can then deliver them collectively to the upper layer.
[0131] In an embodiment of the present application, in order to prevent the extended delay budget from timeout, the video receiver (eg, UE) collects all data packets of the same video frame and then collectively delivers them to the upper layer.
[0132] It is understood that the above-described solutions can be used independently or in combination, without limitation. For example, in one possible implementation, during downlink video transmission, the gNB can assign different transmission opportunities to different video frames based on the extended delay budget, and use these opportunities to send different video frames to the UE. After receiving the video frames, the UE can determine the data packets included in each video frame and deliver all data packets for each video frame to the upper layer.
[0133] Combination of the above Figures 1 to 10 The method provided in the embodiment of the present application is described in detail. Figure 11 and Figure 12 The apparatus provided in the embodiments of the present application will be described in detail. It should be understood that the descriptions of the apparatus and method embodiments correspond to each other, and any details not described in detail in the apparatus can be found in the description of the method embodiments above.
[0134] Figure 11 This is a schematic block diagram of an apparatus 1100 provided in an embodiment of the present application, which is used to implement the functions of the access network device or terminal device in the above method. For example, the apparatus can be a software unit or a chip system. The chip system can be composed of a chip, or can include a chip and other discrete devices. The apparatus includes a communication unit 1101 and can also include a processing unit 1102. The communication unit 1101 can communicate with the department. The processing unit 1102 is used for processing. The communication unit 1101 can also be called a communication interface, a transceiver unit, an input / output interface, etc.
[0135] In one example, the apparatus 1100 may implement the steps performed by the access network device in the above method embodiment, and the apparatus 1100 may be an access network device, or a chip or circuit configured in the access network device. The communication unit 1101 performs the transceiver operations of the access network device in the above method embodiment, and the processing unit 1102 is used to perform the processing-related operations on the access network device side in the above method embodiment. Alternatively, the apparatus 1100 may implement the steps performed by the terminal device in the above method embodiment, and the apparatus 1100 may be a terminal device, or a chip or circuit configured in the terminal device. The communication unit 1101 performs the transceiver operations of the terminal device in the above method embodiment, and the processing unit 1102 is used to perform the same processing operations of the terminal device in the above method embodiment.
[0136] For example, processing unit 1102 is used to obtain an extended delay budget, and the extended delay budget is used by the communication device to set a time limit for processing all data packets of a video frame; communication unit 1101 is used to receive data packets of a first service; processing unit 1102 is also used to process the data packets according to the extended delay budget.
[0137] Optionally, the extended delay budget is preconfigured; or preconfigured. For example, the communication unit 1101 may receive first information indicating the extended delay budget from a core network element; or receive first information indicating the extended delay budget from an access network device.
[0138] Optionally, when the first information is used to indicate the service type of the first service, the processing unit 1102 obtains the extended delay budget, including: determining the service type of the first service based on the first information; and determining the extended delay budget based on the correspondence between the service type and the extended delay budget.
[0139] Optionally, the communication unit 1101 receives data packets of the first service, including: receiving N data packets belonging to the same video frame in the first service, where N is an integer greater than 1; the processing unit 1102 processes the data packets according to the extended delay budget, including: determining the timing of transmitting or delivering the N data packets based on the data volume of the N data packets and the extended delay budget of the first service.
[0140] Optionally, the communication unit 1101 receives N data packets belonging to the same video frame in the first service, including: receiving a first data packet, the first data packet carrying first indication information, the first indication information being used to indicate that the first data packet is the first data packet among the N data packets; other data packets received within a preset time belong to the same video frame as the first data packet.
[0141] Optionally, the communication unit 1101 receives N data packets belonging to the same video frame in the first service, including: receiving a first data packet, the first data packet carrying first indication information, the first indication information being used to indicate that the first data packet is first data in the N data packets; and receiving a preset number or a preset data volume of other data packets belonging to the same video frame as the first data packet.
[0142] Optionally, the communication unit 1101 receives N data packets belonging to the same video frame in the first service, including: receiving a first data packet, the first data packet carrying first indication information, the first indication information being used to indicate that the first data packet is the first data packet among the N data packets; other data packets received between the first data packet and the second data packet belong to the same video frame as the first data packet, and the second data packet is the first data packet of the next video frame.
[0143] Optionally, the communication unit 1101 receives N data packets belonging to the same video frame in the first service, including: receiving a third data packet, the third data packet carrying second indication information, the second indication information being used to indicate that the third data packet is the last data packet among the N data packets; other data packets received between the last data packet of the previous frame and the third data packet belong to the same video frame as the third data packet.
[0144] Optionally, the first data packet among the N data packets carries third indication information, and the third indication information is used to indicate the data volume size of the video frame in the first service; or, the first data packet among the N data packets carries fourth indication information, and the fourth indication information is used to indicate the average data volume size of the data packets included in the video frame in the first service.
[0145] Optionally, the extended delay budget of the first service is determined based on one or more of the following parameters: the buffer space of the video receiver, the cache duration of the video receiver, the decompression algorithm of the video receiver, the decompression parameters of the video receiver, and the video type of the first service.
[0146] The division of units in the embodiments of the present application is illustrative and is merely a logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional units in the various embodiments of the present application may be integrated into a single processor, or may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
[0147] It is understood that the functions of the communication unit in the above embodiment can be implemented by a transceiver, and the functions of the processing unit can be implemented by a processor. The transceiver may include a transmitter and / or a receiver, etc., which are respectively used to implement the functions of the sending unit and / or the receiving unit. Figure 12 Let me explain this with an example.
[0148] Figure 12 is a schematic block diagram of the apparatus 1200 provided in an embodiment of the present application, Figure 12 The device 1200 shown can be Figure 11 A hardware circuit implementation of the device shown. The device can perform the functions of the access network device or terminal device in the above method embodiment. For the convenience of explanation, Figure 12 Only the essential components of the communication device are shown.
[0149] Figure 12 The communication device 1200 shown includes at least one processor 1201. The communication device 1200 may also include at least one memory 1202 for storing program instructions and / or data. The memory 1202 is coupled to the processor 1201. The coupling in the embodiment of the present application is an indirect coupling or communication connection between devices, units or modules, which can be electrical, mechanical or other forms, and is used for information exchange between devices, units or modules. The processor 1201 can operate in conjunction with the memory 1202, and the processor 1201 can execute program instructions stored in the memory 1202. At least one of the at least one memory 1202 may be included in the processor 1201.
[0150] The apparatus 1200 may also include a communication interface 1203 for communicating with other devices via a transmission medium, thereby enabling the communication apparatus 1200 to communicate with other devices. In embodiments of the present application, the communication interface may be a transceiver, circuit, bus, module, or other type of communication interface. In embodiments of the present application, when the communication interface is a transceiver, the transceiver may include an independent receiver or an independent transmitter; it may also include a transceiver with integrated transceiver functions, or an interface circuit.
[0151] It should be understood that the connection medium between the processor 1201, the memory 1202 and the communication interface 1203 is not limited in the embodiment of the present application. Figure 12 The memory 1202, the processor 1201 and the communication interface 1203 are connected via a communication bus 1204. Figure 12 The connections between the other components are shown in bold, which is only for illustration and not for limitation. The bus may include an address bus, a data bus, a control bus, etc. Figure 12Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.
[0152] In one example, apparatus 1200 is configured to implement the steps performed by an access network device in the above method embodiment. Communication interface 1203 is configured to perform the transceiver-related operations of the access network device in the above method embodiment, and processor 1201 is configured to perform the processing-related operations on the access network device side in the above method embodiment. Alternatively, apparatus 1200 is configured to implement the steps performed by a terminal device in the above method embodiment. Communication interface 1203 is configured to perform the transceiver-related operations of the terminal device in the above method embodiment, and processor 1201 is configured to perform the processing-related operations on the terminal device side in the above method embodiment.
[0153] For example, processor 1201 is used to obtain an extended delay budget, and the extended delay budget is used by the communication device to set a time limit for processing all data packets of a video frame; communication interface 1203 is used to receive data packets of the first service; processor 1201 is also used to process the data packets according to the extended delay budget.
[0154] Optionally, the extended delay budget is preconfigured; for example, the communication interface 1203 may receive first information indicating the extended delay budget from a core network element, or receive first information indicating the extended delay budget from an access network device.
[0155] Optionally, when the first information is used to indicate the service type of the first service, the processor 1201 obtains the extended delay budget, including: determining the service type of the first service based on the first information; and determining the extended delay budget based on the correspondence between the service type and the extended delay budget.
[0156] Optionally, the communication interface 1203 receives data packets of the first service, including: receiving N data packets belonging to the same video frame in the first service, where N is an integer greater than 1; the processor 1201 processes the data packets according to the extended delay budget, including: determining the timing of transmitting or submitting the N data packets based on the data volume of the N data packets and the extended delay budget of the first service.
[0157] Optionally, the communication interface 1203 receives N data packets belonging to the same video frame in the first service, including: receiving a first data packet, the first data packet carrying first indication information, the first indication information being used to indicate that the first data packet is the first data packet among the N data packets; other data packets received within a preset time belong to the same video frame as the first data packet.
[0158] Optionally, the communication interface 1203 receives N data packets belonging to the same video frame in the first service, including: receiving a first data packet, the first data packet carrying first indication information, the first indication information being used to indicate that the first data packet is the first data packet among the N data packets; the other data packets received of a preset number or preset data volume belong to the same video frame as the first data packet.
[0159] Optionally, the communication interface 1203 receives N data packets belonging to the same video frame in the first service, including: receiving a first data packet, the first data packet carrying first indication information, the first indication information being used to indicate that the first data packet is the first data packet among the N data packets; other data packets received between the first data packet and the second data packet belong to the same video frame as the first data packet, and the second data packet is the first data packet of the next video frame.
[0160] Optionally, the communication interface 1203 receives N data packets belonging to the same video frame in the first service, including: receiving a third data packet, the third data packet carrying second indication information, the second indication information being used to indicate that the third data packet is the last data packet among the N data packets; other data packets received between the last data packet of the previous frame and the third data packet belong to the same video frame as the third data packet.
[0161] Optionally, the first data packet among the N data packets carries third indication information, and the third indication information is used to indicate the data volume size of the video frame in the first service; or, the first data packet among the N data packets carries fourth indication information, and the fourth indication information is used to indicate the average data volume size of the data packets included in the video frame in the first service.
[0162] Optionally, the extended delay budget of the first service is determined based on one or more of the following parameters: the buffer space of the video receiver, the cache duration of the video receiver, the decompression algorithm of the video receiver, the decompression parameters of the video receiver, and the video type of the first service.
[0163] Furthermore, an embodiment of the present application also provides a device for executing the method in the above method embodiment. A computer-readable storage medium, comprising a program, when the program is executed by a processor, the method in the above method embodiment is executed. A computer program product, comprising a computer program code, when the computer program code is executed on a computer, enables the computer to implement the method in the above method embodiment. A chip, comprising: a processor, the processor is coupled to a memory, the memory is used to store a program or instruction, when the program or instruction is executed by the processor, enables the device to execute the method in the above method embodiment. A system, comprising at least one of an access network device, a terminal device, a core network element or an application server that executes the above method embodiment.
[0164] In the embodiments of the present application, the processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, and may implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of the present application may be directly implemented as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.
[0165] In an embodiment of the present application, the memory may be a non-volatile memory, such as a hard disk drive (HDD) or a solid-state drive (SSD), etc., or a volatile memory (volatile memory), such as a random-access memory (RAM). The memory is any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory in an embodiment of the present application may also be a circuit or any other device that can implement a storage function, for storing program instructions and / or data.
[0166] The methods provided in the embodiments of the present application can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, they can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present invention is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a digital video disc (DVD)), or a semiconductor medium (eg, an SSD).
[0167] Obviously, those skilled in the art may make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include these modifications and variations.
Claims
1. A communication method, characterized in that: include: The communication device acquires an extended delay, where the extended delay is used for the communication device to impose a time limit on processing all data packets of a video frame; The communication device receives a data packet of a first service; The communication device processes the data packet according to the extended delay; The communication device receives a data packet of a first service, comprising: the communication device receives N data packets belonging to the same video frame in the first service, where N is an integer greater than 1; The communication device processes the data packet according to the extended delay, including: the communication device determines the timing of transmitting or submitting the N data packets according to the data volume of the N data packets and the extended delay of the first service.
2. The method according to claim 1, characterized in that The extended delay is preconfigured; or The communication device is an access network device, and the access network device receives first information indicating the extended delay from a core network element; or The communication device is a terminal device, and the terminal device receives first information indicating the extended delay from an access network device.
3. The method according to claim 2, characterized in that The first information is used to indicate a service type of the first service, and the communication device acquires an extended delay, including: The communication device determines, according to the first information, a service type of the first service; The communication device determines the extended delay according to the correspondence between the service type and the extended delay.
4. The method according to claim 1, characterized in that The communication device receives N data packets belonging to the same video frame in the first service, including: The communication device receives a first data packet, wherein the first data packet carries first indication information, and the first indication information is used to indicate that the first data packet is the first data packet among the N data packets; The other data packets received by the communication device within a preset time belong to the same video frame as the first data packet.
5. The method according to claim 1, characterized in that The communication device receives N data packets belonging to the same video frame in the first service, including: The communication device receives a first data packet, wherein the first data packet carries first indication information, and the first indication information is used to indicate that the first data packet is the first data packet among the N data packets; The other data packets with a preset number or a preset data volume received by the communication device belong to the same video frame as the first data packet.
6. The method according to claim 1, characterized in that The communication device receives N data packets belonging to the same video frame in the first service, including: The communication device receives a first data packet, wherein the first data packet carries first indication information, and the first indication information is used to indicate that the first data packet is the first data packet among the N data packets; The other data packets received by the communication device during the period between the first data packet and the second data packet belong to the same video frame as the first data packet, and the second data packet is the first data packet of the next video frame.
7. The method according to claim 1, characterized in that The communication device receives N data packets belonging to the same video frame in the first service, including: The communication device receives a third data packet, the third data packet carries second indication information, and the second indication information is used to indicate that the third data packet is the last data packet among the N data packets; The other data packets received by the communication device during the period between the tail data packet of the previous frame and the third data packet belong to the same video frame as the third data packet.
8. The method according to any one of claims 1 to 7, characterized in that The first data packet among the N data packets carries the third indication information or the fourth indication information, the third indication information is used to indicate the data amount of the N data packets, and the fourth indication information is used to indicate the average data amount of the N data packets.
9. The method according to any one of claims 1 to 7, characterized in that The extended delay of the first service is determined based on one or more of the following parameters: the cache space of the video receiver, the cache duration of the video receiver, the decompression algorithm of the video receiver, the decompression parameters of the video receiver, and the video type of the first service.
10. A device, characterized in that: The method comprises a unit for executing each step of the method according to any one of claims 1 to 9.
11. A device, characterized in that: The device comprises at least one processor and an interface circuit, wherein the at least one processor is used to communicate with other devices through the interface circuit and execute the method according to any one of claims 1 to 9.
12. A device, characterized in that: The method comprises a processor, configured to call a program stored in a memory to execute the method according to any one of claims 1 to 9.
13. A computer-readable storage medium, characterized in that: The invention comprises a program, and when the program is executed by a processor, the method according to any one of claims 1 to 9 is executed.
14. A computer program product, characterized in that The computer program product comprises instructions, which, when executed, cause a communication device to perform a method according to any one of claims 1 to 9.
Citation Information
Patent Citations
Synchronization process for mobile phone stream media audio and video
CN101271720A