Resource allocation for reducing delays in video streaming
By aligning video frame transmission cycles with allocated timeslots, the network node reduces frame arrival collisions and jitter in wireless video streaming, enhancing streaming efficiency and performance.
Patent Information
- Application Number
- PCT/IB2024/053579
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-12
- Publication Date
- 2025-10-16
AI Technical Summary
Video streaming over wireless networks experiences delays and frame jitter due to overlapping arrival times of video frames from multiple applications, which requires additional buffering and processing, especially when there is no shared clock or synchronization between the applications and the network node.
A network node coordinates the receipt of video frames by monitoring the timing of each application's repeating frame transmission cycle and adjusts the phases of these cycles to align them with allocated timeslots, minimizing frame arrival collisions and jitter through a timeslot-based resource allocation technique.
This approach reduces frame arrival collisions and minimizes jitter, allowing video frames to be transmitted with minimal queueing delay and buffering, improving the efficiency and performance of video streaming.
Smart Images

Figure IB2024053579_16102025_PF_FP_ABST
Abstract
Description
SPECIFICATIONRESOURCE ALLOCATION FOR REDUCING DELAYS IN VIDEO STREAMINGTECHNICAL FIELD
[0001] Embodiments of the invention relate to the field of video streaming; and more specifically, to video streaming over a wireless network.BACKGROUND ART
[0002] Video streaming may be implemented over a wireless network (e.g., in various contexts, such as remote-rendered cloud gaming). For example, a network node (e.g., a radio base station (RBS)) may receive video streams (also referred to as streams) from respective video streaming applications (also referred to as streaming servers or streamers) (e.g., cloudbased video streaming applications). In response, the network node may send these video streams to the respective user equipment (UE) (e.g., cellular / wireless phones) via radio links (also referred to as shared radio resources). The final destinations of these video streams are respective UE-based video streaming application clients (also referred to as video streaming clients, streamer client apps, or streamer clients).
[0003] In an ideal scenario where there is a single video streaming application, protocol data unit (PDU) packets of any video frame from such a video streaming application arrive one after another at the network node and then are transmitted by the network node one after another without any additional frame delay. That is, the expected frame delay may include only the sum of packet transmission times. However, when there are multiple video streaming applications, video frames from these video streaming applications may overlap in time when they arrive. Such a situation may cause additional frame delays to the video streams of some of or all these video streaming applications.SUMMARY OF THE INVENTION
[0004] In some aspects, the techniques described herein relate to a method, performed by a network node (121), for reducing delays when different video streams being sent by different video streaming applications (102) are transmitted over a telecommunication network (120) to respective user equipment (UE) (131). The video streams each include a series of video frames. The method includes coordinating (151), by the network node (121), receipt of the video frames from the video streaming applications (102). The coordinating including: monitoring (152) timing of receipt of communications sent by the video streaming applications (102) according toa respective repeating video frame transmission cycle (103) of each of the video streaming applications (102); and initiating sending (154) of instructions to adjust phases of the respective repeating video frame transmission cycles (103) of the video streaming applications (102) to coordinate receipt of future ones of the video frames from the video streaming applications (102) relative a mapping (125) of the video streaming applications (102) to timeslots within a subsequent block of time.
[0005] In some aspects, the techniques described herein relate to an apparatus to operate as network node (121) for reducing delays when different video streams being sent by different video streaming applications (102) are transmitted over a telecommunication network (120) to respective user equipment (UE) (131). The video streams each include a series of video frames, and the apparatus includes a processor (1102) and a memory (1104). The memory (1104) stores instructions executable by the processor whereby the network node (121) is operative to coordinate receipt of the video frames from the video streaming applications (102). The coordination including the network node (121) operative to: monitor timing of receipt of communications sent by the video streaming applications (102) according to a respective repeating video frame transmission cycle (103) of each of the video streaming applications (102); and initiate sending of instructions to adjust phases of the respective repeating video frame transmission cycles (103) of the video streaming applications (102) to coordinate receipt of future ones of the video frames from the video streaming applications (102) relative a mapping (25) of the video streaming applications (102) to timeslots within a subsequent block of time.BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
[0007] Figure 1A is a block diagram illustrating one aspect of resource allocation for reducing delays in video streaming, according to some embodiments of the invention.
[0008] Figure IB is a flow diagram illustrating resource allocation for reducing delays in video streaming, according to some example implementations.
[0009] Figure 1C is a block diagram illustrating an example of resource mapping 125, according to some implementations.
[0010] Figure 2A is a block diagram illustrating an example embodiment of the repeating video frame transmission cycle 103A.
[0011] Figure 2B is a block diagram illustrating the allocation to time slots to and phase shifting of the video streaming application 102 A, according to some implementations.
[0012] Figure 2C is a block diagram illustrating an example embodiment of the repeating video frame transmission cycle 103B.
[0013] Figure 3 is a flow diagram illustrating the processing, at a network node, of a request to register a first video streaming application in more detail according to some embodiments.
[0014] Figure 4 is a block diagram illustrating receipt of PDUs carrying a frame from each of two different video streaming applications that arrive simultaneously at area 122 according to some embodiments.
[0015] Figure 5 is a block diagram illustrating receipt of PDUs carrying a frame from each of two different video streaming applications that are coordinated to arrive at area 122 at different times according to some embodiments.
[0016] Figure 6 is a block diagram illustrating an example allocation of timeslots to three video streaming applications with different sets of characteristics according to some embodiments.
[0017] Figure 7 is a transactional diagram illustrating the process of a registration request being communicated, allocation, and instructions being returned according to some embodiments.
[0018] Figure 8 is a transactional diagram illustrating the process of instructions being sent to an already registered video streaming applications according to some embodiments.
[0019] Figure 9 shows an example of a communication system 900 in accordance with some embodiments.
[0020] Figure 10 shows a UE 1000 in accordance with some embodiments.
[0021] Figure 11 shows a network node 1100 in accordance with some embodiments.
[0022] Figure 12 is a block diagram of a host 1200, which may be an embodiment of the host 916 of Figure 9, in accordance with various aspects described herein.
[0023] Figure 13 is a block diagram illustrating a virtualization environment 1300 in which functions implemented by some embodiments may be virtualized.
[0024] Figure 14 shows a communication diagram of a host 1402 communicating via a network node 1404 with a UE 1406 over a partially wireless connection in accordance with some embodiments.DETAILED DESCRIPTION
[0025] The following description describes implementations for resource allocation to reduce delays in video streaming. In this description, the figure(s) illustrating block diagramssometimes refer to the figure(s) illustrating flow diagrams, and vice versa. Whether or not explicitly described, the alternative embodiments discussed with reference to the figure(s) illustrating block diagrams also apply to the embodiments discussed with reference to the figure(s) illustrating flow diagrams, and vice versa. At the same time, the scope of this description includes embodiments, other than those discussed with reference to the block diagrams, for performing the flow diagrams, and vice versa.
[0026] Figure 1A is a block diagram illustrating one aspect of resource allocation for reducing delays in video streaming, according to some embodiments of the invention. The communication system 100 includes hosts 110, a telecommunication network 120 (of which, one or more of the hosts 110 may be a part), and UEs 131A-N.
[0027] Hosts 111 are hosting video streaming applications 102A-N. The video streaming applications 102A-N are transmitting video streams over the telecommunication network 120 to UEs 131A-N (e.g., communications 104A-N include the video streams being respectively sent to UEs 131A-N). Each of the video streams each comprises a series of video frames. While as shown each of the video streaming applications 102A-N is transmitting a respective video stream to a respective one of UEs 131 A-N, other relationships may be used in other embodiments (e.g., one video stream application may be sending a video stream to multiple UEs).
[0028] While the telecommunication network 120 is shown to include network node 121 and area 122, the telecommunication network 120 will typically include multiple network nodes performing different operations and / or supporting communications between other applications and / or other UEs.
[0029] In fact, the area 122 is used to illustrate operations that may be in network node 121 or in a separate network node. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)), O. N nodes or components of an O-RAN network node (e.g., O-RU, O-DU, O-CU). In some of such embodiments, these units may be implemented according to Open-RAN (ORAN) where the network node 121 implements an O- DU and the area 122 implements an O-CU and an O-RU. In some of such embodiments, the implementation of some or all these units may be virtualized. In some embodiments, the network node 121 may implement the baseband portion of the base station and the area 122 may implement the radio portion of the base station.
[0030] The area 122 shows that the communications 104A-N (see circled 1) may include: 1) video frames (see circled IB) that are forwarded (see circled 2A and 3A) to the UEs 131 A-N as previously described; and 2) registration requests (see circled IB) from the video streamingapplications 102A-N that are sent (see circled 2B) to a video frame reception coordinator 123 in the network node 121. In addition, timing information regarding the video frames are sent to the video frame reception coordinator 123. The video frame reception coordinator 123 may coordinate the timing of receipt of the video frames from the video streaming applications 102A-N by sending instructions 105 A-N to respective ones of the video steaming applications 105A-N.
[0031] The coordination introduced by the video frame reception coordinator 123 includes coordination in terms of the timing of receipt of the video streams to improve efficiency and performance of the transmission of the video streams. More specifically, there is not a shared clock, between the video streaming applications 102A-N and the network node 121 / area 122 (If there was, the communications 104A-N may be referred to as time division multiplexed (TDM)). Without TDM or some other form of coordination, PDUs carrying video frames from these video streaming applications may overlap (e.g., be interleaved) in terms of when they are received, and this can cause a variety of issues. For instance, this lack of coordination requires: 1) more storage with area 122 to provide for the buffering of PDUs / frame; 2) more processing cycles to manage this buffering; 3) introduce delays in the video streaming that produce a noticeable frame jitter at a UE (e.g., to the video streams of some of or all the video streaming applications).
[0032] In contrast, video frame reception coordinator 123: 1) allocates processing resources within area 122 at least according to timeslots; and 2) coordinates with the video streaming applications 102A-N to cause video frames to be received relative to the allocated timeslots. Thus, the per video stream timeslot allocation is used to time-separate video frame arrivals from different video streams, minimizing frame arrival collisions and minimizing frame jitter. This approach may be referred to as a timeslot-based radio resource allocation technique. Video frames from each streamer that arrive at (or slightly before) the assigned timeslot(s) can be transmitted with minimal queueing delay.
[0033] In some sense, the allocation and coordination can be considered an attempt to provide some aspect of TDM communications (which may be referred to as pseudo or approximate TDM communications) because one or more of the timings may be affected by a variety of factors, such as: 1) network conditions between area 122 and one or more of the video streaming applications; 2) delays within one or more of the video streaming applications; etc. Such conditions may cause changes in timing temporarily and / or be within an acceptable margin of error relative to the processing / transmitting in area 122. However, such conditions may be longer term and / or outside an acceptable margin of error, and thus may require action to better align video frame receipt with allocated timeslot(s); where such action may include: 1) thetransmitting of one or more additional instructions to one or more of the video stream applications to perform additional phase shift(s); and / or 2) adjust the allocation of resources (e.g., rearrangement / reallocation of timeslot(s), allocating additional timeslots, etc.) for one or more of the video streaming applications.
[0034] As shown, the video frame reception coordinator 123 includes a coordination engine 124 and resource mapping 125. The coordination engine 124 is to monitor communications 104A-N, allocate resources, and initiate transmission of instructions 105 A-N. The coordination engine 124 uses the resource mapping 125 to track how the resources have been allocated. In some embodiments, the resource mapping 125 reflects an assignment of the video streaming applications to the timeslots.
[0035] Some embodiments allocate time slots only responsive to registration requests, and thus video frames sent by any video streaming applications that do not send a registration request are handled using best efforts close print (e.g., during any unassigned time slots). In contrast, some embodiments additionally or alternatively respond to one or more other triggers. For example, one such trigger may be detecting that there are communications (e.g., a PDU, a video frame, a video stream) from a video stream application that is not represented in resource mapping 125. Embodiments that use such a trigger can be implemented differently, such as checking each PDU, checking periodically, etc. Also, embodiments may track in area 122 which video streams have already been allocated timeslots, and thus be able to determine when there is a new video stream.
[0036] Similarly, different embodiments may detect terminations of video streams, and thus the need to deallocate timeslots (and, in some embodiments, consider rearranging the allocation to timeslots (e.g., to improve efficiency, to reduce the number of frequencies used, etc.). For example, embodiments may be triggered by: 1) the sending of de -registration requests from the video streaming applications; 2) detecting a lack of continued communications 104 for a threshold amount of time; etc.
[0037] Thus, the per video stream timeslot allocation is used to time-separate video frame arrivals from different video streams, minimizing frame arrival collisions and minimizing frame jitter for jitter sensitive streams. This approach may be referred to as a timeslot-based radio resource allocation technique. Video frames from each streamer that arrive at (or slightly before) the assigned timeslot(s) can be transmitted with minimal queueing delay.
[0038] Figure IB is a flow diagram illustrating resource allocation for reducing delays in video streaming, according to some example implementations. Block 151 shows the coordinating, by the network node, of receipt of the video frames from the video streaming applications. Regarding the examples in Figure 1A, this would be performed by video frame receptioncoordinator 123. Block 151 includes blocks 152 and 154, which are repeatedly performed by the coordination engine 124.
[0039] Block 152 shows the monitoring of the timing of receipt of communications sent by the video streaming applications according to a respective repeating video frame transmission cycle of each of the video streaming applications. Block 154 is performed responsive to block 152 and as needed. Block 154 shows initiating the sending of instructions to adjust phases of the respective repeating video frame transmission cycles of the video streaming applications to coordinate receipt of future ones of the video frames from the video streaming applications relative a mapping of the video streaming applications to timeslots within a subsequent block of time. Regarding the examples in Figure 1A, the video frame reception coordinator 123 sends instructions 105 A-N respectively to video streaming applications 120A-102N. The coordination engine 124 uses resource mapping 125 to track the allocation of different ones of the video streaming applications 102A-N to resources (e.g., timeslots (time domain), frequencies (frequency domain) that will be used to receive the video streams and transmit them via wireless communications to the appropriate ones of the UEs 131 A-N.
[0040] In some embodiments, relative the mapping means causing the future ones of the video frames from each of the video streaming applications to be received just prior to or at the start of the set of one or more of the timeslots that were assigned to that video streaming application according to the mapping. In other embodiments, relative the mapping means causing the future ones of the video frames from each of the video streaming applications to be received early enough to allow for processing during the set of one or more the timeslots that were assigned to that video streaming application according to the mapping but late enough to minimize a need to buffer.
[0041] The monitoring in block 152 may include any or all of the features of the embodiments described with reference to figure 1A, including coordination engine 124: 1) responding to one or more types of triggers to allocate (e.g., registration requests, the detection of communications (e.g., a PDU, a video frame, a video stream); 2) responding to one or more types of triggers to deallocate (e.g., de -registration requests, a lack of continued communications 104 for a threshold amount of time, etc.); and 3) responding to one or more type of triggers to send supplemental instructions 105 A-N to perform additional phase shift(s) and / or to adjust the allocation of resources (e.g., rearrangement / reallocation of timeslot(s), allocating additional timeslots, etc.) to one or more of the video streaming applications.
[0042] In some embodiments, the coordination engine 124 performs allocation of resources to the video streaming applications 102A-N based on one or more characteristics (traffic volume,frame size burstiness, frame jitter (also referred to as quality of experience (QoE) sensitivity to jitter)), and / or frame rate of the video streams sent by the video streaming applications 102A-N.
[0043] Figure 1C is a block diagram illustrating an example of resource mapping 125, according to some implementations. Resource mapping 125 represents an example way of allocating resources to the video streaming applications 102A-N. System time 127 provided by a system clock 128 is divided into blocks that each is further divided into subdivisions (referred herein as timeslots) such that each block has the same number of timeslots. For example, blocks 0 and 1 are two such blocks and each of them is further divided into N timeslots. And each of blocks 0 and 1 includes Q amount of processing time and each timeslot includes J amount of processing time.
[0044] A timeslot is the smallest unit of processing time to which one or more of the video streaming applications 102A-N may be allocated / assigned. For example, as shown in block 0, the boxes immediately above number 3, 4, N-l, and N are labeled with letter ‘B,’ and this represents that the video streaming application 102B is allocated / assigned to timeslots 3, 4, N-l, and N. However, as shown in figure 1C, timeslots 1 and 2 are not labeled with any letters and this represents that no video streaming applications are currently assigned to these timeslots.
[0045] As also shown in figure 1C, the resource mapping may optionally have a second dimension that is associated with the frequency domain. For example, FRQ1 represents an optional frequency block that is associated with timeslots 1 through N as described above. In such an example, with respect to each timeslot associated with FRQ1, FRQ1 may be the frequency block that will be used for transmitting video frames received from the video streaming application that is assigned to the timeslot to the respective UE. For example, with respect to timeslot 3, FRQ1 is the frequency block that will be used for transmitting video frames from the video streaming application 102B to UE 13 IB. Furthermore, like FRQ1, frequency blocks FRQ2-N represent additional such optional frequency blocks.
[0046] The manner of allocating frequency block(s) (in addition to timeslot(s)) to a given video streaming application is typically enabled by the network node’s 121 knowledge of the frequency blocks that are supported by the different UEs. Such a technique provides for the advantage of being able to allocate more than one video streaming application to any given timeslot.
[0047] Figure 2A is a block diagram illustrating an example embodiment of the repeating video frame transmission cycle 103A. As shown in figure 2A, each cycle of the repeating video frame transmission cycle 103A includes a frame preparation operation 204A operation and a frame transmission 205A operation. As also shown, with respect to a system time 207A based on a system clock 208A, M amount of time denotes the time duration of each cycle and is dividedinto # units of K amount of time. The M amount of time may be derived from the frame rate of the video streaming application 102A. For example, if the frame rate is 60 frames per second (fps), the M may be 16ms (i.e., 1 second divided by 60 fps). In this example, if 1ms is configured as the value of K, each cycle is divided into 16 units of 1ms. Phase 206 A denotes the marks the start of each cycle of the repeating video frame transmission cycle 103A.
[0048] The others of the repeating video frame transmission cycle 103B-N are similar. Since there is no requirement of a shared clock (or synchronization of clocks) between the different video streaming applications 102A-N, there is no requirement that the timing of the repeating video frame transmission cycles 103A-N be coordinated. However, it is possible that some of the video streaming applications 102A-N are hosted in the same electronic device and / or system / platform, and in those cases they may share a system clock.
[0049] Regardless, as previously described, there is not a shared clock between the video streaming applications 102A-N and the network node 121 / area 122. As a result, the mapping of processing time according to timeslots to the different video streams alone does not require, encourage, or attempt to cause the video frames from the different video streams to be received according to the allocated timeslots. However, the above-described coordination through the sending of instructions 105 A-N does.
[0050] Figure 2B is a block diagram illustrating the allocation to time slots to and phase shifting of the video streaming application 102 A, according to some implementations. Figure 2B shows the repeating video frame transmission cycle 103 A, including the frame preparation operation 204A and the frame transmission operation 205B, starting at phase 206A. Figure 2B also shows the resource mapping 125 for block 0-1 for frequency 1 from figure 1C, but also adds block 2. Block 0 is the same as in figure 1C but block 1 shows the timeslots 1 and 2 being assigned to video streaming application 102A. In addition, Figure 2B shows operations, relative to area 122 and coordination engine 124, to monitor the timing of receipt of a communication sent by video streaming application 102A during its repeating video frame transmission cycle 103A and to instruct the video streaming application 102A to adjust the phase of the repeating video frame transmission cycle 103A to coordinate receipt of future ones of the video frames to timeslots allocated to video streaming application 102A.
[0051] In figure 2B, video streaming application 102A sends a registration request 201 that is received in area 122 (see circled 2B) and provided to the coordination engine 124 (see circled 2B). In response, the coordination engine 124 (see circled 3B): 1) allocates timeslots 1-2 on frequency 1 to video streaming application 102 A (which allocation it stores in resource mapping 125); and 2) calculates an amount of time R. The coordination engine 124 then sends instruction105A.1 to video streaming application 102A to phase shift by the amount of time R (see circled B).
[0052] In response, video streaming application 102A performs phase shift 1 which phase shifts repeating video frame transmission cycle 103 A by R as illustrated by the diagonal arrowed lines. As a result, the frame transmission operation of future ones of the video frames (e.g., video frame 150) from video streaming application 102A are expected to be received (see circled 1A) at area 122 relative to the allocated timeslots 1-2 in block 2, and thus processed and transmitted to UE 131 A (see circled 2A and 3A). Specifically, in figure 2B, the receipt of the start of a video frame 150 (an example of the subsequent video frame above) is at the start of timeslot 1 of block 2 and the receipt of the end of the video frame 150 is before the end of the timeslot 2.
[0053] Figure 2B additionally illustrates that additional phase shifts may be instructed. As one example, the coordination engine 124 may determine that an additional phase shift will help better align receipt of future ones of the video frames with the allocated time slots. As another example, the coordination engine 124 may determine a desire to change the allocation of timeslots (e.g., responsive to addition or removal of other video streams / video streaming applications, changing network conditions, etc.), and then adjust the resource mapping 125 (e.g., move video streaming application 102 A to different time slots, allocate one or more additional time slots, take away one or more of the allocated time slots, etc.). In either case, the coordination engine 124 may send additional instructions (e.g., instruction 105A.2) to perform additional phase shifts (e.g., phase shift 2).
[0054] For example, while in figure 2B the receipt of the end of the video frame 150 is before the end of timeslot 2 of block 2, in some cases, receipt of the video frame 150 may fall outside the video streaming application’s 102A assigned timeslots (e.g., the frame size is larger than expected, one or more PDUs were delayed, etc.). This is illustrated in figure 2B with the dashed extension to the video frame 150 being received during a time (see dashed circled 1A) that ends at dashed circled 2C. In this case, it is detected that the receipt of the end of the video frame 150 falls after the end of timeslot 2 of block 2. In response, at the dashed version of 3C, the coordination engine 124 may take corrective action (e.g., send supplemental instruction 105A.2 (see circled 4C) to perform the additional phase shift 2 and / or to adjust the resource mapping (rearrange / reallocate timeslot(s), allocate additional timeslot(s), etc.)) for one or more of the video streaming applications.
[0055] While the above is described relative to video streaming application 102 A, similar operations are performed for the others of the video streaming applications.
[0056] While in some embodiments all the video streaming applications 102A-N use the same M=K*# amounts of time for this respective repeating video transmission cycles 103A-N (that is, the same frame rate), in some embodiments one or more of the video streaming applications 102A-N use different amounts of time / cycles. For example, embodiments may support shorter and / or longer video frame transmission cycles.
[0057] Figure 2C is a block diagram illustrating an example embodiment of the repeating video frame transmission cycle 103B. Like figure 2A, each cycle of the repeating video frame transmission cycle 103B includes frame preparation operation 204B and a frame transmission operation 205B. However, system clock 208B and system time 207B differ from system clock 208A and system time 207A. Also, P amount of time denotes the time duration of each cycle and is divided into #’ units of L amount of time. Similarly, the P amount of time may be derived from the frame rate of the video streaming application 102B. For example, if the frame rate is 120 frames per second (fps), P may be 8ms (i.e., 1 second divided by 120 fps). As such, when the frame rate of video streaming application 102B is a multiple of that of video streaming application 102A, the time duration of repeating video frame transmission cycle 103A is a multiple of repeating video frame transmission cycle 103B. Furthermore, in this example, if 1ms is configured as the value of L, each cycle is divided into 8 units of 1ms. In some embodiments, a shorter time duration (such as one that is evenly divisible by K) may be configured as the value of L and as a result each cycle is divided into more units of that shorter time duration. Also similarly, phase 206B denotes the start of each cycle of the repeating video frame transmission cycle 103B.
[0058] In embodiments that support different video streaming applications to have different lengths of the repeating video frame transmission cycles (different frame rates), the coordination engine 124 is implemented to take this into account when allocating timeslots (e.g., the coordination engine 124 may include this as one of the characteristics of the video streams considered when assigning timeslots). By way of example, assuming that M = 2*P and all of characteristics of video streams considered by the coordination engine 124 are then same, then the coordination engine 124 may assign twice as many timeslots to video streaming application 102B as video streaming application 102A.
[0059] Figure 3 is a flow diagram illustrating the processing, at a network node, of a request to register a first video streaming application in more detail according to some embodiments.
[0060] Block 310 shows obtaining at the network node a request to register a first video streaming application. The transmission of the request was initiated by the first video streaming application according to an occurrence of a repeating video frame transmission cycle of the first video streaming application. In addition, the request is associated with a first time of receipt.Referring again to figure 2B, an example of this is shown by registration request 201, which was sent by video streaming application 102 A according to an occurrence of the repeating video frame transmission cycle 103 A, being obtained by the network node 121. The registration request 201 is associated with a time of receipt (see circled IB). Control passes from block 310 to block 320.
[0061] Block 320 shows the integrating of the first video streaming application into a mapping of a resource's processing time, which is divided into blocks that are further divided into timeslots such that the blocks have the same number of the timeslots. The mapping reflects an assignment of video streaming applications to the timeslots. The resource is to allocate, according to the mapping, processing time to video frames sent by different ones of the video streaming applications. The integration will include assigning the first video streaming application to a set of one or more timeslots. If the suitable empty time slot(s) are not available, some embodiments will attempt to rearrange the existing allocation of timeslot(s) to other video streaming application(s) to make room. The example in figure 2B illustrates a scenario where a suitable set of timeslots is empty (timeslot 1 and 2). Control passes from block 320 to block 330.
[0062] Block 330 shows the determination of a representation of the amount of time between the first time and the directly following occurrence of a subset of the timeslots to which the first video streaming application was assigned during the integrating. The subset includes one or more consecutive ones of the timeslots. Referring again to figure 2B, the coordination engine 124 may determines a representation of the amount of time between the time when the registration request was received (see circled IB) and the directly following occurrence of the initial one of the timeslots allocated (e.g., calculating (see circled 3B) the difference between reception time of the registration request 201 and the start of timeslot 1 within block 1, which is shown to be R amount of time). Control passes from block 330 to block 340.
[0063] Block 340 shows the initiating of a transmission of a response to cause the first video streaming application to phase shift the repeating video frame transmission cycle based on the representation. This is done to cause a video frame subsequently sent by the first video streaming application to be received relative to the allocated subset of the timeslots in a subsequent one of the blocks, and this is intended to reduce delays that will be caused by overlapping receipt of video frames from the ones of the video streaming applications that are assigned to different subsets of the timeslots. Referring again to figure 2B, the coordination engine 124 initiates the transmission of the instruction 150A.1 to the video streaming application 102A to cause phase shift 1 of repeating video frame transmission cycle 103A based on the amount of time R to cause video frames subsequently sent by the video streaming application 102A to be received relative to timeslots 1 and 2 in future blocks (e.g., blocks 1 and 2) of thesystem time 127. More specifically, the entire repeating video frame transmission cycle 103A is phase shifted forward by R amount of time with respect to the system time 107A. As a result, a video frame from repeating video frame transmission cycle 103A will now start to be received near in time to the initial one of the timeslot(s) (timeslot 1) allocated to video streaming application 102A. This is done to reduce delays that will be caused by overlapping receipt of video frames from the video streaming application 102B that was already assigned timeslots 3- N. Thus, a subsequently sent video frame from each of video streaming application 102A and video streaming application 102B will start to be received close in time to timeslots 1 and time slot 3, respectively.
[0064] As described above, if the timing holds, later ones of video frames from these video streaming applications will also be received according to this schedule. In some embodiments, the resource is one of a set of resources that each is associated with a different frequency that is supported by one or more of the UEs and that will be used for transmitting video frames over the telecommunication network to the UEs. In some embodiments, relative to the subset of the timeslots means the video frame being caused to be available but with minimum buffering, during the processing time of the resource allocated to the first video streaming application.Additional Exemplary Detail
[0065] In embodiments that support Remote-Rendered Cloud Gaming, one, more, or all the video streaming applications 102A-N may be sending video streams from several game streaming servers. These video streams are sent to the UEs 131A-N (e.g., phones) via radio links (see circled 3A in figure 1A). The destination is a UE-based client- streamer app.
[0066] A common game frame rate is 60 frames per second (fps). While from this point forward it will be assumed that all the video streaming applications 102A-N are using this same frame rate, as discussed above embodiments are not so limited. 60 fps means approximately one frame arrival every 16 milliseconds (ms). This means that within 16ms, area 122 may receive one frame from each of several video streams. Each video stream may have different values for parameters such as Traffic Volume, Frame Size Burstiness, and Frame Jitter -QoE Sensitivity. In fact, these parameters can differ significantly for various kinds of games. For example, a chess game is almost insensitive to jitter, while a first-person shooter (FPS) will be sensitive to jitter. Similarly, Chess Traffic Volume, despite relatively high burstiness, is typically minimal, while an FPS game can both have high Traffic Volume and be very bursty.
[0067] When there are several video streams there is the possibility that frames from multiple streamers may simultaneously arrive at area 122, which may cause noticeable jitter to one or more of the video streams.Reducing Jitter
[0068] Figure 4 is a block diagram illustrating receipt of PDUs carrying a frame from each of two different video streaming applications that arrive simultaneously at area 122 according to some embodiments. In Figure 4, PDUs from video streams A (shown as Al, A2, and A3) and B (shown as B 1, B2, and B3) are arriving concurrently, and thus being interleaved in a packet queue in area 122. For instance, the PDUs A1-A3 in Figure 4 may be an initial video frame (or represent a registration request, which may require less PDUs) from video streaming application 102A.
[0069] Figure 5 is a block diagram illustrating receipt of PDUs carrying a frame from each of two different video streaming applications that are coordinated to arrive at area 122 at different times according to some embodiments. In Figure 5, PDU from video stream A, shown as A4, A5, and A6, arrive consecutively and at a different time than PDU from video stream B, shown as B4, B5, and B6; and thus these PDUs from different video stream are not being interleaved in the packet queue in area 122. For instance, the PDUs A4-A6 in Figure 5 may be a subsequent video frame (or an initial video frame if A1-A3 represent a registration request, which may require less PDUs) from video streaming application 102A.
[0070] The interleaving in Figure 4 means that the time from the receipt of PDU Al to the end of PDU A3 by the UE is longer (by the transmission times of PDU B2 and B3) than the time from receipt of PDU A4 to the end of PDU A6 by the UE in figure 5. While figure 4 and figure 5 illustrate benefits (e.g., reduced jitter) from avoiding the interleaving of two video streams, the benefits are more pronounced the more video streams that are interleaved.Exemplary Allocation Algorithm
[0071] From this point forward the discussion will focus on whole video frames rather than PDU packets unless the illustrated situation includes interleaving jitter. Different embodiments may perform the assignment to timeslots in different ways. According to some embodiments, given N video streams: 1) let Bi and Si denote the traffic volume and QoE-jitter sensitivity, respectively, for video stream i; 2) consider a graph with directed edges, where each vertex represents a video stream; 3) assign to each edge from vertex i to vertex j weight Wij = Bi*Sj (this weight reflects a “collision cost” of two video streams overlapping in time); 4) find a cyclic subgraph which represents a Hamiltonian path through all the vertexes (i.e., a path which visits all the vertexes just once) so that Z(Bi*Sj) along the subgraph is minimal (this is a classical Traveling Salesman Problem with asymmetrical distance matrix, which can be solved using Dynamic Programming); and 5) the optimal subgraph provides the order of the video streams’ time slots. The amount of resources for each video stream, measured in units of timeslots, iscalculated to be proportional to the corresponding edges weights so that the total sum of all the resources is equal to the frame interval.
[0072] While the above assumes the same frame rate for all participating streams, the timeslot allocation algorithm in some embodiments may support streams with different frame rates. For example, assume one of the video streams operates at 120 fps (while the rest operate at 60 fps). In this case, the 120 fps video stream may be assigned two time slots per block, and the distance between them should be equal to half of frame interval of the rest of the streams (in our example it is 8 ms). This 120 fps video stream will be represented in the graph as two vertexes (denoted as U and V. To ensure the proper distance between two time slots assigned to the same stream, a restriction is added to the Traveling Salesman Problem solution: minimize not only Z(Bi*Sj), but also the difference of such sums along the paths from U to V and from V to U (ideally they should be equal, but generally this condition is unreachable). Denoting this difference as D, the goal is redefined as the minimization of D*Z(Bi*Sj). When calculating the timeslot lengths, the paths from U to V and from V to U are normalized to 8ms each. Also, a relatively big weight is assigned to the edges between U and V to keep them from becoming neighbors. Some embodiments consider all possible Hamiltonian paths. This straightforward solution has a complexity of N!, which is acceptable when there is a relatively small number of streams (e.g., 10).
[0073] In this manner, the coordination of the video streaming applications relative to the allocated timeslots minimizes QoE reduction caused by jitter by: 1) reducing the interleaving- related jitter, which is caused by simultaneous packet arrivals from different streams; and 2) further reducing, for jitter-sensitive video streams, the jitter caused by other streams’ burstiness by maximally separating bursty and sensitive streams. Also, the time required to receive all the packets of a frame is reduced, a radio modem on a UE that uses DRX may sleep longer between frames, which provides additional energy savings on the UE. An additional advantage is that no clock synchronization between area 122 and the video streaming applications 102A-N is required.Timeslot Usage
[0074] Figure 6 is a block diagram illustrating an example allocation of timeslots to three video streaming applications with different sets of characteristics according to some embodiments. Figure 6 shows: 1) 7 timeslots are allocated for video streaming application 102A, and the current video frame 600 requires only 6 of them; 2) 4 timeslots are allocated for video streaming application 102B, and the current video frame 610 requires only 3 of them; and 3) 5 timeslots are allocated for video streaming application 102C, and the current video frame 620 requires all 5 of them.Registering and Adjusting
[0075] Figure 7 is a transactional diagram illustrating the process of a registration request being communicated, allocation, and instructions being returned according to some embodiments. In Figure 7, a video streaming application 700 records a timestamp (Tsend) and sends a registration request 710 to network node 121. A timestamp (Treceived) of when the registration request is received at area 122 is provided, along with the registration request, to video stream reception coordinator 123. The video stream reception coordinator 123allocates a set of one or more timeslots for the video stream, and then calculates the amount of time R (sometimes referred to as the offset or the timeslot offset) based on Treceived relative to the assigned timeslots 720. The network node 121 then sends an instruction with the timeslot offset 730 (sometimes referred to as a registration response) to video streaming application 700. On receiving the registration response, video streaming application 700 adjusts its repeating video frame transmission cycle 740 (e.g., adjusts the frame producing clock (encoder’s clock) by the received offset from the time when the registration request was sent). Thus, in some embodiments: 1) it is assumed that the transmission time (from the start of transmission (Tsend) by the video streaming application to receipt by area 122 (Trecevied)) will remain relatively constant for future frame transmissions; and 2) a phase shift based on R (an amount based on Treceived and the assigned timeslots) by the video streaming application will cause receipt of future video frames at more optimal times for processing. In the example of Figure 2B, the video stream application 102A is assigned timeslots 1-2, and R is calculated based on the time of the next occurrence of timeslot 1 and Trecevied. While some embodiments, in the scenario shown in Figure 2B, will calculate R as the time of the next occurrence of timeslot 1 minus Trecevied, other embodiments may adjust R by an additional amount (e.g., an amount expected to account for variations in the transmission time; an amount expected to cause receipt to occur a relatively small amount of time before the start of timeslot 1 (while this may require a relatively small amount of buffering to accommodate video frame data received ahead of some or all occurrences of timeslot 1, it is expected that video frame data will be available to transmit from area 122 at the start of timeslot 1); an amount expected to cause receipt to occur a relatively small amount of time after the start of timeslot 1 (while this may mean video frame data may not be available to transmit from area 122 at the start of some or all occurrences of timeslot 1, it is expected to reduce or eliminate the need for buffering due to receipt prior to the start of occurrences of timeslot 1); etc.).
[0076] Figure 8 is a transactional diagram illustrating the process of instructions being sent to an already registered video streaming applications according to some embodiments. As previously described, a previously registered video streaming application (thus having alreadybeen assigned timeslots) may benefit for an additional phase shift to better align with the existing timeslot allocation or align with a new timeslot allocation. In Figure 8, the video streaming application 700 sends a video frame 800 followed 16ms later by a video frame 810. In response, network node 121 sends an instruction with an amount 820. In response, video streaming application 700 performs another phase shift based on the amount 830. As a result, video streaming application 700, at 16ms + amount 840, sends the next video frame 850. In other words, video streaming application 700 shifts the entire frame production / encode / transmit cycle by the amount (e.g., the number of milliseconds indicated by the amount).Timing of Phase Adjustments
[0077] All phase adjustments are accomplished using phase shifts to a later time, including when the intent is to move a video streaming application to an earlier timeslot in the schedule. For example, if we want to move a video streaming application 5ms earlier in the schedule, network node 121 sends an instruction to start 16-5=llms later. While figure 2B illustrates a phase adjustment that is applied during the next block, some embodiments operate differently depending on the arrival of an instruction from the network node 121 at a video streaming application. More specifically, in order not to overload a video streaming application, some embodiments ensure that the time between two consecutive frame transmissions is not shorter than the video frame transmission cycle (e.g., 16ms) of the video streaming application. There are three cases for the arrival of the instruction at the video streaming application: 1) between the frame transmission end and the next frame preparation (also referred to as capture / render start); 2) during the frame preparation; and 3) during the frame transmission.
[0078] In the first case a schedule change can be made immediately (e.g., this is shown in Figure 2B). In the second and the third cases the switch to the new schedule is done in a way to resolve the situation of two video frames being issued too close one after another (with a time between transmissions less than 16ms). While different embodiments may use different algorithms to smooth out the transition is, some embodiments do the following:
[0079] If the instruction arrives during the frame preparation (case 2 above), different embodiments do one of the following: 1) drop the produced video frame and start frame preparation according to the new schedule; or 2) after the current frame preparation has completed, send the video frame on the new timeslot (this means delaying transmitting this video frame for (new timeslot - old timeslot) ms. Note that this delay affects this frame only, and that it does not affect subsequent frames).
[0080] If the instruction arrives after the frame transmission is started (case 3 above), the very first frame production according to a new schedule is skipped.
[0081] If a video streaming application consistently overruns its allocated timeslot(s), in some embodiments network node 121 try to mitigate (e.g., assigning additional more timeslots when more timeslots are available; requesting the video streaming application to lower its target bitrate; etc.).
[0082] For non-uniform timeslot distribution based on Traffic Volume, some embodiments of network node 121 (which base allocation on this characteristic) consider both average frame size (assuming the transmission time to be proportional to it) and the standard deviation (with the same assumption). To minimize the likelihood of jitter arising due to interleaving, timeslot resources can be allocated based on an estimated maximum frame size of M + k* c, where M is an average frame size, o is a standard deviation and k - some constant between 1 and 3.Exemplary Devices and Deployment Environments
[0083] Figure 9 shows an example of a communication system 900 in accordance with some embodiments.
[0084] In the example, the communication system 900 includes a telecommunication network 902 that includes an access network 904, such as a radio access network (RAN), and a core network 906, which includes one or more core network nodes 908. The access network 904 includes one or more access network nodes, such as network nodes 1010a and 1010b (one or more of which may be generally referred to as network nodes 910), or any other similar 3rdGeneration Partnership Project (3GPP) access nodes or non-3GPP access points. Moreover, as will be appreciated by those of skill in the art, a network node is not necessarily limited to an implementation in which a radio portion and a baseband portion are supplied and integrated by a single vendor. Thus, it will be understood that network nodes include disaggregated implementations or portions thereof. For example, in some embodiments, the telecommunication network 902 includes one or more Open-RAN (ORAN) network nodes. An ORAN network node is a node in the telecommunication network 902 that supports an ORAN specification (e.g., a specification published by the O-RAN Alliance, or any similar organization) and may operate alone or together with other nodes to implement one or more functionalities of any node in the telecommunication network 902, including one or more network nodes 910 and / or core network nodes 908.
[0085] Examples of an ORAN network node include an open radio unit (O-RU), an open distributed unit (O-DU), an open central unit (O-CU), including an O-CU control plane (O-CU- CP) or an O-CU user plane (O-CU-UP), a RAN intelligent controller (near-real time or non-real time) hosting software or software plug-ins, such as a near-real time control application (e.g., xApp) or a non-real time control application (e.g., rApp), or any combination thereof (the adjective “open” designating support of an ORAN specification). The network node maysupport a specification by, for example, supporting an interface defined by the ORAN specification, such as an Al, Fl, Wl, El, E2, X2, Xn interface, an open fronthaul user plane interface, or an open fronthaul management plane interface. Moreover, an ORAN access node may be a logical node in a physical node. Furthermore, an ORAN network node may be implemented in a virtualization environment (described further below) in which one or more network functions are virtualized. For example, the virtualization environment may include an O-Cloud computing platform orchestrated by a Service Management and Orchestration Framework via an 0-2 interface defined by the 0-RAN Alliance or comparable technologies. The network nodes 910 facilitate direct or indirect connection of user equipment (UE), such as by connecting UEs 1012a, 1012b, 1012c, and 1012d (one or more of which may be generally referred to as UEs 912) to the core network 906 over one or more wireless connections.
[0086] Example wireless communications over a wireless connection include transmitting and / or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and / or other types of signals suitable for conveying information without the use of wires, cables, or other material conductors. Moreover, in different embodiments, the communication system 900 may include any number of wired or wireless networks, network nodes, UEs, and / or any other components or systems that may facilitate or participate in the communication of data and / or signals whether via wired or wireless connections. The communication system 900 may include and / or interface with any type of communication, telecommunication, data, cellular, radio network, and / or other similar type of system.
[0087] The UEs 912 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and / or operable to communicate wirelessly with the network nodes 910 and other communication devices. Similarly, the network nodes 910 are arranged, capable, configured, and / or operable to communicate directly or indirectly with the UEs 912 and / or with other network nodes or equipment in the telecommunication network 902 to enable and / or provide network access, such as wireless network access, and / or to perform other functions, such as administration in the telecommunication network 902.
[0088] In the depicted example, the core network 906 connects the network nodes 910 to one or more hosts, such as host 916. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts. The core network 906 includes one more core network nodes (e.g., core network node 908) that are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, network nodes, and / or hosts, such that the descriptions thereof are generally applicable to the corresponding components of the core network node 908. Example core network nodes include functions ofone or more of a Mobile Switching Center (MSC), Mobility Management Entity (MME), Home Subscriber Server (HSS), Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Subscription Identifier De-concealing function (SIDF), Unified Data Management (UDM), Security Edge Protection Proxy (SEPP), Network Exposure Function (NEF), and / or a User Plane Function (UPF).
[0089] The host 916 may be under the ownership or control of a service provider other than an operator or provider of the access network 904 and / or the telecommunication network 902, and may be operated by the service provider or on behalf of the service provider. The host 916 may host a variety of applications to provide one or more services. Examples of such applications include video streaming applications, such remote-rendered cloud gaming and / or live and prerecorded audio / video content.
[0090] As a whole, the communication system 900 of Figure 9 enables connectivity between the UEs, network nodes, and hosts. In that sense, the communication system may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM); Universal Mobile Telecommunications System (UMTS); Fong Term Evolution (LTE), and / or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G); wireless local area network (WEAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (WiFi); and / or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, LiFi, and / or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox.
[0091] In some examples, the telecommunication network 902 is a cellular network that implements 3 GPP standardized features. Accordingly, the telecommunications network 902 may support network slicing to provide different logical networks to different devices that are connected to the telecommunication network 902. For example, the telecommunications network 902 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and / or Massive Machine Type Communication (mMTC) / Massive loT services to yet further UEs.
[0092] In some examples, the UEs 912 are configured to transmit and / or receive information without direct human interaction. For instance, a UE may be designed to transmit information to the access network 904 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network 904. Additionally, a UE may be configured for operating in single- or multi-RAT or multi- standard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio) and LTE, i.e., beingconfigured for multi-radio dual connectivity (MR-DC), such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio - Dual Connectivity (EN-DC).
[0093] In the example, the hub 914 communicates with the access network 904 to facilitate indirect communication between one or more UEs (e.g., UE 1012c and / or 1012d) and network nodes (e.g., network node 1010b). In some examples, the hub 914 may be a controller, router, content source and analytics, or any of the other communication devices described herein regarding UEs. For example, the hub 914 may be a broadband router enabling access to the core network 906 for the UEs. As another example, the hub 914 may be a controller that sends commands or instructions to one or more actuators in the UEs. Commands or instructions may be received from the UEs, network nodes 910, or by executable code, script, process, or other instructions in the hub 914. As another example, the hub 914 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data. As another example, the hub 914 may be a content source. For example, for a UE that is a VR headset, display, loudspeaker or other media delivery device, the hub 914 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub 914 then provides to the UE either directly, after performing local processing, and / or after adding additional local content. In still another example, the hub 914 acts as a proxy server or orchestrator for the UEs, in particular if one or more of the UEs are low energy loT devices.
[0094] The hub 914 may have a constant / persistent or intermittent connection to the network node 1010b. The hub 914 may also allow for a different communication scheme and / or schedule between the hub 914 and UEs (e.g., UE 1012c and / or 1012d), and between the hub 914 and the core network 906. In other examples, the hub 914 is connected to the core network 906 and / or one or more UEs via a wired connection. Moreover, the hub 914 may be configured to connect to an M2M service provider over the access network 904 and / or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with the network nodes 910 while still connected via the hub 914 via a wired or wireless connection. In some embodiments, the hub 914 may be a dedicated hub - that is, a hub whose primary function is to route communications to / from the UEs from / to the network node 1010b. In other embodiments, the hub 914 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node 1010b, but which is additionally capable of operating as a communication start and / or end point for certain data channels.
[0095] Figure 10 shows a UE 1000 in accordance with some embodiments. As used herein, a UE refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or other UEs. Examples of a UE include, but are not limited to, a smartphone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage device, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-IoT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE.
[0096] A UE may support device-to-device (D2D) communication, for example by implementing a 3 GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), or vehicle- to-everything (V2X). In other examples, a UE may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, a UE may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller).Alternatively, a UE may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).
[0097] The UE 1000 includes processing circuitry 1002 that is operatively coupled via a bus 1004 to an input / output interface 1006, a power source 1008, a memory 1010, a communication interface 1012, and / or any other component, or any combination thereof. Certain UEs may utilize all or a subset of the components shown in Figure 10. The level of integration between the components may vary from one UE to another UE. Further, certain UEs may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
[0098] The processing circuitry 1002 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 1010. The processing circuitry 1002 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry 1002 may include multiple central processing units (CPUs).
[0099] In the example, the input / output interface 1006 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the UE 1000. Examples of an input device include a touch-sensitive or presence- sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence- sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.
[0100] In some embodiments, the power source 1008 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source 1008 may further include power circuitry for delivering power from the power source 1008 itself, and / or an external power source, to the various parts of the UE 1000 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 1008. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 1008 to make the power suitable for the respective components of the UE 1000 to which power is supplied.
[0101] The memory 1010 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable readonly memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 1010 includes one or more application programs 1014, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 1016. The memory 1010 may store, for use by the UE 1000, any of a variety of various operating systems or combinations of operating systems.
[0102] The memory 1010 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital datastorage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and / or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUICC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’ The memory 1010 may allow the UE 1000 to access instructions, application programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 1010, which may be or comprise a device-readable storage medium.
[0103] The processing circuitry 1002 may be configured to communicate with an access network or other network using the communication interface 1012. The communication interface 1012 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 1022. The communication interface 1012 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another UE or a network node in an access network). Each transceiver may include a transmitter 1018 and / or a receiver 1020 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 1018 and receiver 1020 may be coupled to one or more antennas (e.g., antenna 1022) and may share circuit components, software or firmware, or alternatively be implemented separately.
[0104] In the illustrated embodiment, communication functions of the communication interface 1012 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short- range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and / or standards, such as IEEE 802.11, Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (WCDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol / internet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.
[0105] Regardless of the type of sensor, a UE may provide an output of data captured by its sensors, through its communication interface 1012, via a wireless connection to a network node.Data captured by sensors of a UE can be communicated through a wireless connection to a network node via another UE. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).
[0106] As another example, a UE comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.
[0107] A UE, when in the form of an Internet of Things (loT) device, may be a device for use in one or more application domains, these domains comprising, but not limited to, city wearable technology, extended industrial application and healthcare. Non-limiting examples of such an loT device are a device which is or which is embedded in: a connected refrigerator or freezer, a TV, a connected lighting device, an electricity meter, a robot vacuum cleaner, a voice controlled smart speaker, a home security camera, a motion detector, a thermostat, a smoke detector, a door / window sensor, a flood / moisture sensor, an electrical door lock, a connected doorbell, an air conditioning system like a heat pump, an autonomous vehicle, a surveillance system, a weather monitoring device, a vehicle parking monitoring device, an electric vehicle charging station, a smart watch, a fitness tracker, a head-mounted display for Augmented Reality (AR) or Virtual Reality (VR), a wearable for tactile augmentation or sensory enhancement, a water sprinkler, an animal- or item-tracking device, a sensor for monitoring a plant or animal, an industrial robot, an Unmanned Aerial Vehicle (UAV), and any kind of medical device, like a heart rate monitor or a remote controlled surgical robot. A UE in the form of an loT device comprises circuitry and / or software in dependence of the intended application of the loT device in addition to other components as described in relation to the UE 1000 shown in Figure 10.
[0108] As yet another specific example, in an loT scenario, a UE may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another UE and / or a network node. The UE may in this case be an M2M device, which may in a 3GPP context be referred to as an MTC device. As one particular example, the UE may implement the 3GPP NB-IoT standard. In other scenarios, a UE may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipmentthat is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.
[0109] In practice, any number of UEs may be used together with respect to a single use case. For example, a first UE might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second UE that is a remote controller operating the drone. When the user makes changes from the remote controller, the first UE may adjust the throttle on the drone (e.g., by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second UE can also include more than one of the functionalities described above. For example, a UE might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.
[0110] Figure 11 shows a network node 1100 in accordance with some embodiments. As used herein, network node refers to equipment capable, configured, arranged and / or operable to communicate directly or indirectly with a UE and / or with other network nodes or equipment, in a telecommunication network. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)), O-RAN nodes or components of an O-RAN node (e.g., O-RU, O-DU, O-CU).
[0111] Base stations may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. A base station may be a relay node or a relay donor node controlling a relay. A network node may also include one or more (or all) parts of a distributed radio base station such as centralized digital units, distributed units (e.g., in an O-RAN access node) and / or remote radio units (RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS).
[0112] Other examples of network nodes include multiple transmission point (multi-TRP) 5G access nodes, multi- standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi-cell / multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and / or Minimization of Drive Tests (MDTs).
[0113] The network node 1100 includes a processing circuitry 1102, a memory 1104, a communication interface 1106, and a power source 1108. The network node 1100 may be composed of multiple physically separate components (e.g., a NodeB component and a RNC component, or a BTS component and a BSC component, etc.), which may each have their own respective components. In certain scenarios in which the network node 1100 comprises multiple separate components (e.g., BTS and BSC components), one or more of the separate components may be shared among several network nodes. For example, a single RNC may control multiple NodeB s. In such a scenario, each unique NodeB and RNC pair, may in some instances be considered a single separate network node. In some embodiments, the network node 1100 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be duplicated (e.g., separate memory 1104 for different RATs) and some components may be reused (e.g., a same antenna 1110 may be shared by different RATs). The network node 1100 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 1100, for example GSM, WCDMA, LTE, NR, WiFi, Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node 1100.
[0114] The processing circuitry 1102 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and / or encoded logic operable to provide, either alone or in conjunction with other network node 1100 components, such as the memory 1104, to provide network node 1100 functionality.
[0115] In some embodiments, the processing circuitry 1102 includes a system on a chip (SOC). In some embodiments, the processing circuitry 1102 includes one or more of radio frequency (RF) transceiver circuitry 1112 and baseband processing circuitry 1114. In some embodiments, the radio frequency (RF) transceiver circuitry 1112 and the baseband processing circuitry 1114 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry 1112 and baseband processing circuitry 1114 may be on the same chip or set of chips, boards, or units.
[0116] The memory 1104 may comprise any form of volatile or non-volatile computer- readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and / or any othervolatile or non-volatile, non-transitory device-readable and / or computer-executable memory devices that store information, data, and / or instructions that may be used by the processing circuitry 1102. The memory 1104 may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, and / or other instructions capable of being executed by the processing circuitry 1102 and utilized by the network node 1100. The memory 1104 may be used to store any calculations made by the processing circuitry 1102 and / or any data received via the communication interface 1106. In some embodiments, the processing circuitry 1102 and memory 1104 is integrated.
[0117] The communication interface 1106 is used in wired or wireless communication of signaling and / or data between a network node, access network, and / or UE. As illustrated, the communication interface 1106 comprises port(s) / terminal(s) 1116 to send and receive data, for example to and from a network over a wired connection. The communication interface 1106 also includes radio front-end circuitry 1118 that may be coupled to, or in certain embodiments a part of, the antenna 1110. Radio front-end circuitry 1118 comprises filters 1120 and amplifiers 1122. The radio front-end circuitry 1118 may be connected to an antenna 1110 and processing circuitry 1102. The radio front-end circuitry may be configured to condition signals communicated between antenna 1110 and processing circuitry 1102. The radio front-end circuitry 1118 may receive digital data that is to be sent out to other network nodes or UEs via a wireless connection. The radio front-end circuitry 1118 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters 1120 and / or amplifiers 1122. The radio signal may then be transmitted via the antenna 1110.Similarly, when receiving data, the antenna 1110 may collect radio signals which are then converted into digital data by the radio front-end circuitry 1118. The digital data may be passed to the processing circuitry 1102. In other embodiments, the communication interface may comprise different components and / or different combinations of components.
[0118] In certain alternative embodiments, the network node 1100 does not include separate radio front-end circuitry 1118, instead, the processing circuitry 1102 includes radio front-end circuitry and is connected to the antenna 1110. Similarly, in some embodiments, all or some of the RF transceiver circuitry 1112 is part of the communication interface 1106. In still other embodiments, the communication interface 1106 includes one or more ports or terminals 1116, the radio front-end circuitry 1118, and the RF transceiver circuitry 1112, as part of a radio unit (not shown), and the communication interface 1106 communicates with the baseband processing circuitry 1114, which is part of a digital unit (not shown).
[0119] The antenna 1110 may include one or more antennas, or antenna arrays, configured to send and / or receive wireless signals. The antenna 1110 may be coupled to the radio front-endcircuitry 1118 and may be any type of antenna capable of transmitting and receiving data and / or signals wirelessly. In certain embodiments, the antenna 1110 is separate from the network node 1100 and connectable to the network node 1100 through an interface or port.
[0120] The antenna 1110, communication interface 1106, and / or the processing circuitry 1102 may be configured to perform any receiving operations and / or certain obtaining operations described herein as being performed by the network node. Any information, data and / or signals may be received from a UE, another network node and / or any other network equipment. Similarly, the antenna 1110, the communication interface 1106, and / or the processing circuitry 1102 may be configured to perform any transmitting operations described herein as being performed by the network node. Any information, data and / or signals may be transmitted to a UE, another network node and / or any other network equipment.
[0121] The power source 1108 provides power to the various components of network node 1100 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component). The power source 1108 may further comprise, or be coupled to, power management circuitry to supply the components of the network node 1100 with power for performing the functionality described herein. For example, the network node 1100 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of the power source 1108. As a further example, the power source 1108 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail.
[0122] Embodiments of the network node 1100 may include additional components beyond those shown in Figure 11 for providing certain aspects of the network node’s functionality, including any of the functionality described herein and / or any functionality necessary to support the subject matter described herein. For example, the network node 1100 may include user interface equipment to allow input of information into the network node 1100 and to allow output of information from the network node 1100. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node 1100.
[0123] Figure 12 is a block diagram of a host 1200, which may be an embodiment of the host 916 of Figure 9, in accordance with various aspects described herein. As used herein, the host 1200 may be or comprise various combinations hardware and / or software, including a standalone server, a blade server, a cloud-implemented server, a distributed server, a virtual machine, container, or processing resources in a server farm. The host 1200 may provide one or more services to one or more UEs.
[0124] The host 1200 includes processing circuitry 1202 that is operatively coupled via a bus 1204 to an input / output interface 1206, a network interface 1208, a power source 1210, and a memory 1212. Other components may be included in other embodiments. Features of these components may be substantially similar to those described with respect to the devices of previous figures, such as Figures 10 and 12, such that the descriptions thereof are generally applicable to the corresponding components of host 1200.
[0125] The memory 1212 may include one or more computer programs including one or more host application programs 1214 and data 1216, which may include user data, e.g., data generated by a UE for the host 1200 or data generated by the host 1200 for a UE. Embodiments of the host 1200 may utilize only a subset or all of the components shown. The host application programs 1214 may be implemented in a container-based architecture and may provide support for video streaming applications (such remote-rendered cloud gaming and / or live and prerecorded audio / video content), video codecs (e.g., Versatile Video Coding (VVC), High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC), MPEG, VP9) and audio codecs (e.g., FLAC, Advanced Audio Coding (AAC), MPEG, G.711), including transcoding for multiple different classes, types, or implementations of UEs (e.g., handsets, desktop computers, wearable display systems, heads-up display systems). The host application programs 1214 may also provide for user authentication and licensing checks and may periodically report health, routes, and content availability to a central node, such as a device in or on the edge of a core network. Accordingly, the host 1200 may select and / or indicate a different host for over-the-top services for a UE. The host application programs 1214 may support various protocols, such as the HTTP Live Streaming (HLS) protocol, Real-Time Messaging Protocol (RTMP), Real-Time Streaming Protocol (RTSP), Dynamic Adaptive Streaming over HTTP (MPEG-DASH), etc.
[0126] Figure 13 is a block diagram illustrating a virtualization environment 1300 in which functions implemented by some embodiments may be virtualized. In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments 1300 hosted by one or more of hardware nodes, such as a hardware computing device that operates as a network node, UE, core network node, or host. Further, in embodiments in which the virtual node does not require radio connectivity (e.g., a core network node or host), then the node may be entirely virtualized. In some embodiments, the virtualizationenvironment 1300 includes components defined by the O-RAN Alliance, such as an O-Cloud environment orchestrated by a Service Management and Orchestration Framework via an 0-2 interface.
[0127] Applications 1302 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) are run in the virtualization environment Q400 to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein.
[0128] Hardware 1304 includes processing circuitry, memory that stores software and / or instructions executable by hardware processing circuitry, and / or other hardware devices as described herein, such as a network interface, input / output interface, and so forth. Software may be executed by the processing circuitry to instantiate one or more virtualization layers 1306 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs 1308a and 1308b (one or more of which may be generally referred to as VMs 1308), and / or perform any of the functions, features and / or benefits described in relation with some embodiments described herein. The virtualization layer 1306 may present a virtual operating platform that appears like networking hardware to the VMs 1308.
[0129] The VMs 1308 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer 1306. Different embodiments of the instance of a virtual appliance 1302 may be implemented on one or more of VMs 1308, and the implementations may be made in different ways. Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV). NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment.
[0130] In the context of NFV, a VM 1308 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, non- virtualized machine. Each of the VMs 1308, and that part of hardware 1304 that executes that VM, be it hardware dedicated to that VM and / or hardware shared by that VM with others of the VMs, forms separate virtual network elements. Still in the context of NFV, a virtual network function is responsible for handling specific network functions that run in one or more VMs 1308 on top of the hardware 1304 and corresponds to the application 1302.
[0131] Hardware 1304 may be implemented in a standalone network node with generic or specific components. Hardware 1304 may implement some functions via virtualization.Alternatively, hardware 1304 may be part of a larger cluster of hardware (e.g., such as in a data center or CPE) where many hardware nodes work together and are managed via managementand orchestration 1310, which, among others, oversees lifecycle management of applications 1302. In some embodiments, hardware 1304 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radio units may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station. In some embodiments, some signaling can be provided with the use of a control system 1312 which may alternatively be used for communication between hardware nodes and radio units.
[0132] Figure 14 shows a communication diagram of a host 1402 communicating via a network node 1404 with a UE 1406 over a partially wireless connection in accordance with some embodiments. Example implementations, in accordance with various embodiments, of the UE (such as a UE 1012a of Figure 9 and / or UE 1000 of Figure 10), network node (such as network node 1010a of Figure 9 and / or network node 1100 of Figure 11), and host (such as host 916 of Figure 9 and / or host 1200 of Figure 12) discussed in the preceding paragraphs will now be described with reference to Figure 14.
[0133] Eike host 1200, embodiments of host 1402 include hardware, such as a communication interface, processing circuitry, and memory. The host 1402 also includes software, which is stored in or accessible by the host 1402 and executable by the processing circuitry. The software includes a host application that may be operable to provide a service to a remote user, such as the UE 1406 connecting via an over-the-top (OTT) connection 1450 extending between the UE 1406 and host 1402. In providing the service to the remote user, a host application may provide user data which is transmitted using the OTT connection 1450.
[0134] The network node 1404 includes hardware enabling it to communicate with the host 1402 and UE 1406. The connection 1460 may be direct or pass through a core network (like core network 906 of Figure 9) and / or one or more other intermediate networks, such as one or more public, private, or hosted networks. For example, an intermediate network may be a backbone network or the Internet.
[0135] The UE 1406 includes hardware and software, which is stored in or accessible by UE 1406 and executable by the UE’s processing circuitry. The software includes a client application, such as a web browser or operator- specific “app” that may be operable to provide a service to a human or non-human user via UE 1406 with the support of the host 1402. In the host 1402, an executing host application may communicate with the executing client application via the OTT connection 1450 terminating at the UE 1406 and host 1402. In providing the service to the user, the UE's client application may receive request data from the host's host application and provide user data in response to the request data. The OTT connection 1450 may transfer both therequest data and the user data. The UE's client application may interact with the user to generate the user data that it provides to the host application through the OTT connection 1450.
[0136] The OTT connection 1450 may extend via a connection 1460 between the host 1402 and the network node 1404 and via a wireless connection 1470 between the network node 1404 and the UE 1406 to provide the connection between the host 1402 and the UE 1406. The connection 1460 and wireless connection 1470, over which the OTT connection 1450 may be provided, have been drawn abstractly to illustrate the communication between the host 1402 and the UE 1406 via the network node 1404, without explicit reference to any intermediary devices and the precise routing of messages via these devices.
[0137] As an example of transmitting data via the OTT connection 1450, in step 1408, the host 1402 provides user data, which may be performed by executing a host application. In some embodiments, the user data is associated with a particular human user interacting with the UE 1406. In other embodiments, the user data is associated with a UE 1406 that shares data with the host 1402 without explicit human interaction. In step 1410, the host 1402 initiates a transmission carrying the user data towards the UE 1406. The host 1402 may initiate the transmission responsive to a request transmitted by the UE 1406. The request may be caused by human interaction with the UE 1406 or by operation of the client application executing on the UE 1406. The transmission may pass via the network node 1404, in accordance with the teachings of the embodiments described throughout this disclosure. Accordingly, in step 1412, the network node 1404 transmits to the UE 1406 the user data that was carried in the transmission that the host 1402 initiated, in accordance with the teachings of the embodiments described throughout this disclosure. In step 1414, the UE 1406 receives the user data carried in the transmission, which may be performed by a client application executed on the UE 1406 associated with the host application executed by the host 1402.
[0138] In some examples, the UE 1406 executes a client application which provides user data to the host 1402. The user data may be provided in reaction or response to the data received from the host 1402. Accordingly, in step 1416, the UE 1406 may provide user data, which may be performed by executing the client application. In providing the user data, the client application may further consider user input received from the user via an input / output interface of the UE 1406. Regardless of the specific manner in which the user data was provided, the UE 1406 initiates, in step 1418, transmission of the user data towards the host 1402 via the network node 1404. In step 1420, in accordance with the teachings of the embodiments described throughout this disclosure, the network node 1404 receives user data from the UE 1406 and initiates transmission of the received user data towards the host 1402. In step 1422, the host 1402 receives the user data carried in the transmission initiated by the UE 1406.
[0139] As described above, the various embodiments improve the performance of OTT services provided to the UE 1406 using the OTT connection 1450, in which the wireless connection 1470 forms the last segment.
[0140] In an example scenario, factory status information may be collected and analyzed by the host 1402. As another example, the host 1402 may process audio and video data which may have been retrieved from a UE for use in creating maps. As another example, the host 1402 may collect and analyze real-time data to assist in controlling vehicle congestion (e.g., controlling traffic lights). As another example, the host 1402 may store surveillance video uploaded by a UE. As another example, the host 1402 may store or control access to media content such as video, audio, VR or AR which it can broadcast, multicast or unicast to UEs. As other examples, the host 1402 may be used for energy pricing, remote control of non-time critical electrical load to balance power generation needs, location services, presentation services (such as compiling diagrams etc. from data collected from remote devices), or any other function of collecting, retrieving, storing, analyzing and / or transmitting data.
[0141] In some examples, a measurement procedure may be provided for the purpose of monitoring data rate, latency and other factors on which the one or more embodiments improve. There may further be an optional network functionality for reconfiguring the OTT connection 1450 between the host 1402 and UE 1406, in response to variations in the measurement results. The measurement procedure and / or the network functionality for reconfiguring the OTT connection may be implemented in software and hardware of the host 1402 and / or UE 1406. In some embodiments, sensors (not shown) may be deployed in or in association with other devices through which the OTT connection 1450 passes; the sensors may participate in the measurement procedure by supplying values of the monitored quantities exemplified above, or supplying values of other physical quantities from which software may compute or estimate the monitored quantities. The reconfiguring of the OTT connection 1450 may include message format, retransmission settings, preferred routing etc.; the reconfiguring need not directly alter the operation of the network node 1404. Such procedures and functionalities may be known and practiced in the art. In certain embodiments, measurements may involve proprietary UE signaling that facilitates measurements of throughput, propagation times, latency and the like, by the host 1402. The measurements may be implemented in that software causes messages to be transmitted, in particular empty or ‘dummy’ messages, using the OTT connection 1450 while monitoring propagation times, errors, etc.
[0142] Although the computing devices described herein (e.g., UEs, network nodes, hosts) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understoodthat these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions, and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.
[0143] In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored on in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer- readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device-readable storage medium, such as in a hard-wired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer- readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device, but are enjoyed by the computing device as a whole, and / or by end users and a wireless network generally.Alternative Embodiments
[0144] While this description assumes lossless communication and no security problems, common techniques (e.g., message IDs, ACKs, public / private keys, etc.) may be used to address message loss and security.
[0145] While the flow diagrams in the figures show a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary (e.g., alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, etc.).
[0146] While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.
Claims
CLAIMSWhat is claimed is:
1. A method, performed by a network node (121), for reducing delays when different video streams being sent by different video streaming applications (102) are transmitted over a telecommunication network (120) to respective user equipment (UE) (131), wherein the video streams each comprise a series of video frames, the method comprising: coordinating (151), by the network node (121), receipt of the video frames from the video streaming applications (102), the coordinating including: monitoring (152) timing of receipt of communications sent by the video streaming applications (102) according to a respective repeating video frame transmission cycle (103) of each of the video streaming applications (102); and initiating sending (154) of instructions to adjust phases of the respective repeating video frame transmission cycles (103) of the video streaming applications (102) to coordinate receipt of future ones of the video frames from the video streaming applications (102) relative a mapping (125) of the video streaming applications (102) to timeslots within a subsequent block of time.
2. The method of claim 1, wherein the initiating the sending includes causing the future ones of the video frames from each of the video streaming applications (102) to be received just prior to or at the start of a set of one or more of the timeslots that were assigned to that video streaming application (102) according to the mapping (125).
3. The method of claim 1, wherein the initiating the sending includes causing the future ones of the video frames from each of the video streaming applications (102) to be received early enough to allow for processing during a set of one or more the timeslots that were assigned to that video streaming application (102) according to the mapping (125) but late enough to minimize a need to buffer.
4. The method of any of claims 1-3, wherein the network node (121) is a radio base station, a baseband portion of a radio base station, an open-RAN (0-RAN) network node, or a component of an 0-RAN network node.
5. The method any of claims 1-4, wherein the mapping (125) reflects an assignment of the video streaming applications (102) to the timeslots.
6. The method any of claims 1-5, wherein the coordinating comprises adjusting the mapping (125) of the video streaming applications (102) to the assigned timeslots.
7. The method any of claims 1-5, wherein the coordinating comprises: obtaining a request to register (201) another video streaming application (102), wherein the request is associated with a first time of receipt; and integrating the another video streaming application (102) into the mapping (125).
8. The method of claim 1, wherein: the monitoring includes: obtaining (310) at the network node (121) a request to register a first video streaming application, wherein the transmission of the request was initiated by the first video streaming application according to an occurrence of a repeating video frame transmission cycle of the first video streaming application, wherein the request is associated with a first time of receipt; integrating (320) the first video streaming application into the mapping, wherein a resource’s processing time is divided into blocks that are further divided into the timeslots such that the blocks have a same number of the timeslots, wherein the resource is to allocate, according to the mapping, processing time to video frames sent by different ones of the video streaming applications; and determining (330) a representation of the amount of time between the first time and the directly following occurrence of a subset of the timeslots to which the first video streaming application was assigned during the integrating, wherein the subset includes one or more consecutive ones of the timeslots; and the initiating sending includes initiating (340) a transmission of a response to cause the first video streaming application to phase shift the repeating video frame transmission cycle of the first video streaming application based on the representation to cause a video frame subsequently sent by the first video streaming application to be received relative to the subset of the timeslots in a subsequent one of the blocks to reduce delays that will be caused by overlapping receipt of video frames from the ones of the video streaming applications that are assigned to different subsets of the timeslots.
9. The method of claim 8, wherein the video frame being caused to be received relative to the subset of the timeslots comprises the video frame being caused to be available but with minimum buffering, during the processing time of the resource allocated to the first video streaming application.
10. The method of claim 8, wherein the resource is one of a set of resources that each is associated with a different frequency that is supported by one or more of the UEs (131) and that will be used for transmitting video frames over the telecommunication network (120) to the UEs (131).
11. A machine-readable medium comprising computer program code which when executed by a computer carries out the method steps of any of claims 1-10.
12. An apparatus to operate as network node (121) for reducing delays when different video streams being sent by different video streaming applications (102) are transmitted over a telecommunication network (120) to respective user equipment (UE) (131), wherein the video streams each comprise a series of video frames, the apparatus comprising a processor (1102) and a memory (1104), the memory (1104) containing instructions executable by the processor whereby the network node (121) is operative to: coordinate receipt of the video frames from the video streaming applications (102), the coordination including: monitor timing of receipt of communications sent by the video streaming applications (102) according to a respective repeating video frame transmission cycle (103) of each of the video streaming applications (102); and initiate sending of instructions to adjust phases of the respective repeating video frame transmission cycles (103) of the video streaming applications (102) to coordinate receipt of future ones of the video frames from the video streaming applications (102) relative a mapping (25) of the video streaming applications (102) to timeslots within a subsequent block of time.
13. The apparatus of claim 12, wherein the initiate sending includes causing the future ones of the video frames from each of the video streaming applications (102) to be received just prior to or at the start of a set of one or more of the timeslots that were assigned to that video streaming application (102) according to the mapping (125).
14. The apparatus of claim 12, wherein the initiate sending includes causing the future ones of the video frames from each of the video streaming applications (102) to be received early enough to allow for processing during a set of one or more the timeslots that were assigned to that video streaming application (102) according to the mapping (125) but late enough to minimize a need to buffer.
15. The apparatus of any of claims 12-14, wherein the apparatus is a radio base station, a baseband portion of a radio base station, an open-RAN (0-RAN) network node, or a component of an 0-RAN network node.
16. The apparatus of any of claims 12-15, wherein the mapping (124) reflects an assignment of the video streaming applications (102) to the timeslots.
17. The apparatus of any of claims 12-16, wherein the coordination by the network node (121) including the network node (121) being operative to make adjustments to the mapping (125) of the video streaming applications (102) to the assigned timeslots.
18. The apparatus of any of claims 12-16, wherein the coordination by the network node (121) including the network node (121) being operative to: receive of a request (201) to register another video streaming application (102), wherein the request is associated with a first time of receipt; and integrate of the another video streaming application (102) into the mapping (12).
19. The apparatus of claim 12, wherein: the monitoring includes the network node (121) being operative to: obtain a request to register a first video streaming application, wherein the transmission of the request was initiated by the first video streaming application according to an occurrence of a repeating video frame transmission cycle of the first video streaming application, wherein the request is associated with a first time of receipt; integrate the first video streaming application into the mapping, wherein a resource’s processing time is divided into blocks that are further divided into the timeslots such that the blocks have a same number of the timeslots, wherein the resource is to allocate, according to the mapping, processing time to video frames sent by different ones of the video streaming applications; anddetermine a representation of the amount of time between the first time and the directly following occurrence of a subset of the timeslots to which the first video streaming application was assigned during the integrating, wherein the subset includes one or more consecutive ones of the timeslots; and the initiating sending includes the network node being operative to initiate a transmission of a response to cause the first video streaming application to phase shift the repeating video frame transmission cycle of the first video streaming application based on the representation to cause a video frame subsequently sent by the first video streaming application to be received relative to the subset of the timeslots in a subsequent one of the blocks to reduce delays that will be caused by overlapping receipt of video frames from the ones of the video streaming applications that are assigned to different subsets of the timeslots.
20. The apparatus of claim 19, wherein the video frame being caused to be received relative to the subset of the timeslots comprises the video frame being caused to be available but with minimum buffering, during the processing time of the resource allocated to the first video streaming application.
21. The apparatus of claim 19, wherein the resource is one of a set of resources that each is associated with a different frequency that is supported by one or more of the UEs (131) and that will be used for transmitting video frames over the telecommunication network (120) to the UEs (131).
Citation Information
Patent Citations
Apparatus and method for establishing frame synchronization in distributed digital data communication systems
US5768269A
Video streaming quality of experience recovery using a video quality metric
WO2014209495A1