Perceptually congested media streaming
Patent Information
- Application Number
- CN202580023569.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-28
- Filing Date
- 2025-03-13
- Publication Date
- 2026-10-27
Smart Images

Figure CN122996640A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates generally to telecommunications, and more specifically to media streaming transmission over telecommunications systems. Background Technology
[0002] A telecommunications system can be viewed as a facility that enables a communication session between two or more entities (such as user terminals, base stations, and / or other nodes) by providing carrier waves between various entities involved in the communication path. For example, a telecommunications system can be provided by means of a communication network and one or more compatible communication devices. The communication session can include communications for carrying data, such as voice, video, email, text messages, multimedia, and / or content data. Non-limiting examples of the services provided include two-way or multi-way calling, data communication or multimedia services, and access to data network systems such as the Internet.
[0003] In a wireless telecommunications system, at least a portion of a communication session between at least two stations occurs via a wireless link. Examples of wireless systems include Public Land Mobile Networks (PLMNs), satellite-based communication systems, and various wireless local area networks (WLANs). Some wireless systems can be divided into cells and are therefore often referred to as cellular systems.
[0004] Users can access the telecommunications system through appropriate communication equipment or terminals. A user's communication equipment may be referred to as User Equipment (UE) or simply user equipment. The communication equipment is equipped with appropriate signal receiving and transmitting means to enable communication, such as enabling access to a communication network or direct communication with other users. The communication equipment can access a carrier provided by a station (e.g., a base station in a cell) and transmit and / or receive communication on that carrier.
[0005] Telecommunications systems and associated equipment typically operate according to a given standard or specification that defines what the various entities associated with the system are allowed to do and how they should do it. Communication protocols and / or parameters used for connectivity are also usually defined. An example of a telecommunications system is the Universal Mobile Telecommunications System (UMTS). Other examples of telecommunications systems are Long Term Evolution (LTE), LTE-Advanced, and so-called 5G or New Radio (NR) networks. NR is being standardized by the 3rd Generation Partnership Project (3GPP). Summary of the Invention
[0006] The example implementations of this disclosure relate to telecommunications, and more specifically to media streaming transmission over telecommunications systems. Even more specifically, the example implementations of this disclosure provide congestion-aware media streaming transmission, wherein indications of network congestion, signaled or otherwise provided by one or more networks without dropping packets, can be used to perform one or more congestion control operations. This disclosure includes, but is not limited to, the following example implementations.
[0007] Some example implementations provide an apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory and execute the instructions such that the apparatus at least: delivers media content to at least one client via at least one network during at least one media streaming session; receives network congestion information reported by at least one client, the network congestion information being based on an indication of network congestion received by at least one network from at least one client without at least one network dropping packets of media content; determines a network congestion level based on the network congestion information from at least one client; and performs at least one congestion control operation for at least one media streaming session or at least one new media streaming session according to the network congestion level.
[0008] Some example implementations provide an apparatus comprising: components for delivering media content to at least one client via at least one network during at least one media streaming session; components for receiving network congestion information reported by at least one client, the network congestion information being based on an indication of network congestion received by at least one network from at least one client without the at least one network dropping packets of media content; components for determining a network congestion level based on the network congestion information from at least one client; and components for performing at least one congestion control operation on at least one media streaming session or at least one new media streaming session according to the network congestion level.
[0009] Some example implementations provide a method comprising: delivering media content to at least one client via at least one network during at least one media streaming session; receiving network congestion information reported by at least one client, the network congestion information being based on an indication of network congestion received by at least one network from at least one client without at least one network dropping packets of media content; determining a network congestion level based on the network congestion information from at least one client; and performing at least one congestion control operation for at least one media streaming session or at least one new media streaming session based on the network congestion level.
[0010] Some example implementations provide a computer-readable storage medium that is non-transitory and has instructions stored therein that, in response to execution by at least one processing circuitry system, cause the means to at least: deliver media content to at least one client via at least one network during at least one media streaming session; receive network congestion information reported by at least one client, the network congestion information being based on an indication of network congestion received by at least one network from at least one client without the at least one network dropping packets of media content; determine a network congestion level based on the network congestion information from at least one client; and perform at least one congestion control operation for at least one media streaming session or at least one new media streaming session, according to the network congestion level.
[0011] Some example implementations provide an apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory and execute the instructions such that the apparatus at least: during a media streaming session, receives media content delivered by an application server via at least one network; receives an indication of network congestion from the at least one network if the at least one network does not drop packets of the media content; determines network congestion information based on the indication of network congestion received from the at least one network; and reports the network congestion information to the application server for execution of at least one congestion control operation for the media streaming session based on a network congestion level based on the network congestion information.
[0012] Some example implementations provide an apparatus comprising: components for receiving media content delivered by an application server over at least one network during a media streaming session; components for receiving an indication of network congestion from at least one network without the at least one network dropping packets of the media content; components for determining network congestion information based on the indication of network congestion received from at least one network; and components for reporting the network congestion information to the application server for execution of at least one congestion control operation for the media streaming session based on a network congestion level based on the network congestion information.
[0013] Some example implementations provide a method comprising: receiving media content delivered by an application server over at least one network during a media streaming session; receiving an indication of network congestion from at least one network if the at least one network does not drop packets of the media content; determining network congestion information based on the indication of network congestion received from at least one network; and reporting the network congestion information to the application server for execution of at least one congestion control operation for the media streaming session based on a network congestion level based on the network congestion information.
[0014] Some example implementations provide a computer-readable storage medium that is non-transitory and has instructions stored therein that, in response to execution by at least one processing circuitry system, cause the means to at least: receive media content delivered by an application server via at least one network during a media streaming session; receive an indication of network congestion from at least one network if at least one network does not drop packets of the media content; determine network congestion information based on the indication of network congestion received from at least one network; and report the network congestion information to the application server for execution of at least one congestion control operation for the media streaming session based on a network congestion level based on the network congestion information.
[0015] Some example implementations provide an apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory and execute the instructions such that the apparatus at least: initiates a media streaming session for receiving media content delivered by an application server via at least one network; accesses network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from at least one network without dropping packets transmitted through at least one network; and performs at least one congestion control operation for the media streaming session based on the network congestion information.
[0016] Some example implementations provide an apparatus comprising: components for initiating a media streaming session for receiving media content delivered by an application server over at least one network; components for accessing network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from at least one network without dropping packets transmitted through at least one network; and components for performing at least one congestion control operation for the media streaming session based on the network congestion information.
[0017] Some example implementations provide a method comprising: initiating a media streaming session for receiving media content delivered by an application server over at least one network; accessing network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from at least one network without dropping packets transmitted over at least one network; and performing at least one congestion control operation for the media streaming session based on the network congestion information.
[0018] Some example implementations provide a computer-readable storage medium that is non-transitory and has instructions stored therein, which, in response to execution by at least one processing circuitry system, cause the means to at least: initiate a media streaming session for receiving media content delivered by an application server via at least one network; access network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from at least one network without dropping packets transmitted through at least one network; and perform at least one congestion control operation for the media streaming session based on the network congestion information.
[0019] These and other features, aspects, and advantages of this disclosure will be apparent from the following detailed description and accompanying drawings, which are briefly described below. This disclosure includes any combination of two, three, four, or more features or elements set forth in this disclosure, whether such features or elements are explicitly combined or otherwise described in the specific example implementations described herein. This disclosure is intended to be read holistically so that any separable feature or element of this disclosure should be considered composable in any aspect and example implementation, unless the context of this disclosure expressly provides otherwise.
[0020] Therefore, it should be understood that the content of this invention is provided merely to summarize some exemplary implementations in order to provide a basic understanding of some aspects of this disclosure. Consequently, it should be understood that the above-described exemplary implementations are merely examples and should not be construed as limiting the scope or spirit of this disclosure in any way. Other exemplary implementations, aspects, and advantages will become apparent from the following detailed description taken in conjunction with the accompanying drawings, which illustrate by way of example the principles of some of the described exemplary implementations. Attached Figure Description
[0021] An example implementation of this disclosure has been described in general terms. Reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and in the drawings:
[0022] Figure 1 The illustration shows a telecommunications system implemented according to some examples of the present disclosure, which includes one or more public land mobile networks (PLMNs) coupled to one or more external data networks.
[0023] Figure 2 The illustration shows the deployment of a PLMN based on some examples;
[0024] Figure 3 A more detailed description is given based on some examples. Figure 2 All aspects of the deployment;
[0025] Figure 4The illustration shows a 5G Media Streaming (5GMS) architecture for unicast downlink media streaming, implemented according to some examples.
[0026] Figure 5 The illustration shows a 5GMS deployment for downlink media streaming sessions implemented according to some examples;
[0027] Figure 6 It is a signaling diagram of the 5GMS downlink (5GMSd) session initialization and streaming session process implemented based on some examples;
[0028] Figure 7A , Figure 7B , Figure 7C , Figure 7D , Figure 7E , Figure 7F , Figure 7G and Figure 7H It is a flowchart illustrating the various steps in the methods implemented according to various examples;
[0029] Figure 8A , Figure 8B , Figure 8C , Figure 8D , Figure 8E and Figure 8F It is a flowchart illustrating the various steps in the methods implemented according to various examples;
[0030] Figure 9A , Figure 9B , Figure 9C , Figure 9D , Figure 9E , Figure 9F , Figure 9G , Figure 9H and Figure 9I It is a flowchart illustrating the various steps in the methods implemented according to various examples; and
[0031] Figure 10 The diagram illustrates a device implemented based on some examples. Detailed Implementation
[0032] Some implementations of this disclosure will now be described more fully below with reference to the accompanying drawings, which illustrate some, but not all, of the implementations of this disclosure. In fact, various implementations of this disclosure may be embodied in many different forms and should not be construed as limited to the implementations set forth herein; rather, these exemplary implementations are provided so that this disclosure will be thorough and complete, and will fully convey the scope of this disclosure to those skilled in the art. The same reference numerals throughout refer to the same elements.
[0033] Unless otherwise stated or clearly understood from the context, references to "first," "second," etc., should not be construed as implying a particular order. A feature described as being above another feature (unless otherwise stated or clearly understood from the context) may be changed to being below another feature, and vice versa; and similarly, a feature described as being to the left of another feature may be changed to being to the right of another feature, and vice versa. Furthermore, although references may be made herein to quantitative measurements, values, geometric relationships, etc., any one or more of these (if not all) may be absolute or approximate unless otherwise stated, to account for possible acceptable variations, such as those due to engineering tolerances, etc.
[0034] As used herein, unless otherwise stated or clearly indicated from the context, "or" in a set of operands is an "inclusive or" and is therefore true if and only if one or more operands are true, as opposed to an "exclusive or" (where false is true if all operands are true). Thus, for example, "[A] or [B]" is true if [A] is true, or if [B] is true, or if both [A] and [B] are true. Furthermore, unless otherwise specified or clearly indicated from the context to refer to the singular form, the articles "a" and "an" mean "one or more". Additionally, it should be understood that, unless otherwise stated, the terms "data," "content," "digital content," and "information," and similar terms, are sometimes used interchangeably. The term "network" can refer to a group of interconnected computers, including clients and servers; and within a network, these computers can be interconnected directly or indirectly in various ways, including via one or more switches, routers, gateways, access points, etc.
[0035] This document may refer to specific system, architecture, and other terminology; however, it should be understood that the exemplary implementations of this disclosure are equivalent to any of a number of systems, architectures, and other technologies. For example, reference may be made to 3GPP technologies such as Global System for Mobile Communications (GSM), UMTS, LTE, Advanced LTE, 5G NR, Advanced 5G, and 6G; however, it should be understood that the exemplary implementations of this disclosure are equally applicable to non-3GPP technologies such as IEEE 802, Bluetooth, and Bluetooth Low Energy.
[0036] Furthermore, as used in this application, the term "circuit system" may refer to one or more or all of the following: (a) a purely hardware circuit implementation (such as an implementation in an analog and / or digital circuit system only); (b) a combination of hardware circuitry and software, such as (if applicable): (i) a combination of (multiple) analog and / or digital hardware circuitry with software / firmware, and (ii) any portion of (multiple) hardware processors (including (multiple) digital signal processors), software, and (multiple) memories having software, which work together to enable a device such as a mobile phone or server to perform various functions; or (c) (multiple) hardware circuitry and / or (multiple) processors, such as (multiple) microprocessors or portions thereof, which require software (e.g., firmware) to operate, but may be absent when operation does not require software.
[0037] The above definition of circuit system applies to all uses of the term in this application, including in any claim. As another example, as used in this application, the term circuit system also covers only hardware circuitry or a processor (or processors) or a portion thereof and its accompanying software and / or firmware implementation. For example, if applicable to a particular claim element, the term circuit system also includes baseband integrated circuits or processor integrated circuits for mobile devices, or similar integrated circuits in servers, cellular network devices, or other computing or network devices.
[0038] Figure 1 The illustration depicts a telecommunications system 100 implemented according to various examples of this disclosure. A telecommunications system typically includes one or more telecommunications networks. As shown, for example, the system includes one or more public land mobile networks 102 coupled to one or more other external data networks 104, particularly including wide area networks (WANs), such as the Internet. Each PLMN includes a core network (CN) 106 backbone network, such as an evolved packet core (EPC) for LTE, a 5G core network (5GC), etc.; and each of the core network and the Internet is coupled to one or more radio access networks (RANs) 108, an air interface, or the like implementing one or more radio access technologies (RATs). As used herein, "network device" refers to any suitable device at the network side of the telecommunications network. Examples of suitable network devices are described in more detail below.
[0039] Furthermore, the system includes one or more radio units, which may be referred to differently as User Equipment (UE) 110, terminal device, terminal equipment, mobile station, etc. The UE is typically a device configured to communicate with network equipment or other UEs within a telecommunications network. The UE can be a portable computer (e.g., laptop, notebook, tablet), a mobile phone (e.g., cell phone, smartphone), a wearable computer (e.g., smartwatch), etc. In other examples, the UE can be an Internet of Things (IoT) device, an Industrial IoT (IIoT) device, a vehicle equipped with Vehicle-to-Everything (V2X) communication technology, etc. In some examples, as mentioned by 3GPP, the UE can be a Narrowband IoT (NB-IoT) device, an enhanced machine-type communication (eMTC) device, a RedCap device, an environmental IoT device, etc.
[0040] In operation, these UEs can be configured to connect to one or more RANs 108 based on their specific radio access technology, thereby accessing a specific CN 106 of the PLMN 102, or accessing one or more external data networks 104 (e.g., the Internet). External data networks can be configured to provide Internet access, operator services, third-party services, etc. For example, the International Telecommunication Union (ITU) classifies 5G mobile network services into three categories: enhanced mobile broadband (eMBB), ultra-reliable low-latency communications (URLLC), and massive machine-type communications (mMTC) or massive Internet of Things (MIoT).
[0041] Examples of radio access technologies include 3GPP radio access technologies such as GSM, UMTS, LTE, Advanced LTE, 5G NR, Advanced 5G, and 6G. Other examples of radio access technologies include IEEE 802 technologies such as IEEE 802.11 (Wi-Fi), IEEE 802.15 (including 802.15.1 (WPAN / Bluetooth), 802.15.4 (Zigbee), and 802.15.6 (WBAN)), Bluetooth, Bluetooth Low Energy (BLE), Ultra Wideband (UWB), etc. Generally, radio access technology can refer to any 2G, 3G, 4G, 5G, 6G, or higher generation mobile communication technology and its different versions, as well as any other radio access technology that can be arranged to interact with such mobile communication technologies to provide access to a mobile network operator (MNO) under CN 106.
[0042] In various examples, RAN 108 can be configured as one or more macro cells, micro cells, pico cells, femtocells, etc. RAN typically includes one or more radio access nodes configured to interact with UE 110. In various examples, radio access nodes can be referred to as base stations (BS), access points (APs), base transceiver stations (BTS), node Bs (NBs), evolved NBs (eNBs), macro BSs, NBs (MNBs) or eNBs (MeNBs), home BSs, NBs (HNBs) or eNBs (HeNBs), next-generation NBs (gNBs), enhanced gNBs (en-gNBs), next-generation eNBs (ng-eNBs), etc. RAN can include some type of network control / management entity responsible for controlling the radio access nodes. The network control / management entity and the radio access nodes can be separate or integrated into a single device. The network control / management entity can include processing circuitry configured to perform various management functions, etc. The processing circuitry can be associated with memory, computer-readable storage media, or a database for maintaining information required for management functions.
[0043] RAN 108 can be centralized or distributed. In various examples, RAN components can be interconnected via Ethernet, Gigabit Ethernet, Asynchronous Transfer Mode (ATM), fiber optic, dark fiber, passive wavelength division multiplexing (WDM), WDM passive optical network (WDM-PON), optical transport network (OTN), time-sensitive network (TSN), and / or any other data link layer network (which may include radio links). RAN can be connected to CN 106 via one or more gateways, network functions, etc.
[0044] It is understandable that PLMN 102 can be deployed in a variety of different ways. In 4G LTE deployment, EPC is CN 106, and the evolved UMTS Terrestrial Radio Access Network (E-UTRAN) is RAN 108; and E-UTRAN includes one or more eNBs (radio access nodes) configured to connect UE 110 to E-UTRAN, thereby accessing EPC. Figure 2 The diagram illustrates deployment 200, such as a 5G or 6G deployment. As shown, 5GC 202 is the CN, and Next Generation (NG) Radio Access Network (NG-RAN) 204 is the RAN; and the NG-RAN includes one or more gNBs 206 (radio access nodes), which are configured to connect the UE 208 to the NG-RAN for access to the 5GC. The term "gNB" in 5G can correspond to the eNB in 4G LTE.
[0045] Some 4G LTE and 5G deployments are considered standalone (SA) deployments. Other deployments combine 4G LTE and 5G technologies and are called non-standalone (NSA) deployments. In some deployments, the E-UTRAN includes one or more ng-eNBs configured to communicate with the 5GC and may also be configured to communicate with one or more gNBs. Similarly, in another deployment, the NG-RAN may include one or more en-gNBs configured to communicate with the EPC and may also be configured to communicate with one or more eNBs. In various instances, a single UE 110, dual-mode or multi-mode UE can support multiple (two or more) RANs, thus being configured to connect to multiple RANs, such as 4G LTE and 5G.
[0046] Figure 3 More specifically, aspects of a deployment 200 for an MNO, implemented according to several examples, are depicted. As shown, this deployment includes a 5GC 202 and an NG-RAN 204, where one or more gNBs 206 are configured to connect a UE 208 to the NG-RAN, thereby accessing the 5GC. The 5GC may include multiple network functions (NFs) partitioned between the control plane and the user plane. Specifically, the 5GC may include, for example, an Access and Mobility Management Function (AMF) 302, a Session Management Function (SMF) 304, a User Plane Function (UPF) 306, a Policy and Charging Function (PCF) 308, a Network Exposure Function (NEF) 310, and / or an Application Function (AF) 312. Other examples of suitable NFs include a Network Repository Function (NRF), a Network Slice Selection Function (NSSF), a Unified Data Management (UDM), etc. A server hosting the applications, referred to as an Application Server (AS) 314, is also shown.
[0047] In the control plane, the AMF 302 is configured to provide UE-based authentication, authorization, mobility management, etc. The PCF308 can be responsible for policy enforcement and management, controlling Quality of Service (QoS), charging, and resource allocation for subscribers. The PCF facilitates efficient resource utilization, optimizes network performance, and delivers a high-quality user experience.
[0048] SMF 304 is configured to provide various functions, including Session Management (SM), UE Internet Protocol (IP) address allocation and management, selection and control of (multiple) UPF 306, policy application and QoS control sections, lawful interception, termination of the SM section of NAS messages, Downlink Data Notification (DNN), roaming functions, handling local implementation to apply QoS to Service Level Agreements (SLAs), charging data collection, and charging interfaces, etc. If UE 208 has multiple sessions, different SMFs can be assigned to each session to manage them individually and may provide different functions per session.
[0049] UPF 306 supports various user plane operations and functions, such as packet routing and forwarding, service processing (e.g., applying QoS policies), anchor points for intra / inter-RAT mobility (where applicable), packet inspection and policy rule application, lawful interception (UP collection), service accounting and reporting, etc. UPF is the interconnection point between the 5GC and at least one external data network (DN) 316 (i.e., the ingress or egress point for the DN), and routes packets to and from the DN. The DN can be configured to provide Internet access, carrier services, third-party services, etc.
[0050] The AF 312 can interact with the 5GC 202 to deploy specific services and applications. The AF communicates with other NFs to request and manage network resources, ensuring the network adapts to the requirements of different applications and services. The NEF 310 allows authorized third-party applications and services to access specific network functions and services in a controlled manner. The NEF enables the exposure of network capabilities to external entities to facilitate innovation and the development of new services.
[0051] In some deployments (such as deployment 200), the operation of the gNB 206 or other radio access nodes may be performed, at least in part, in a central / centralized unit (CU) (such as a server, host, or node) operatively coupled to a distributed unit (DU) (such as a radio head / node). Node operations may also be distributed across multiple servers, hosts, or nodes. It should also be understood that the workload distribution between 5GC 202 (or other CN) operations and gNB (or other radio access node) operations may vary depending on the implementation.
[0052] 5G network architecture can be based on a so-called CU-DU split. A gNB-CU (central node) can control one or more gNB-DUs. A gNB-CU can control multiple spatially separated gNB-DUs to at least act as transmit / receive (Tx / Rx) nodes. However, in some example implementations, a gNB-DU (also called a DU) can include, for example, the Radio Link Control (RLC), Media Access Control (MAC) layer, and Physical (PHY) layer, while a gNB-CU (also called a CU) can include layers above the RLC layer, such as the Packet Data Convergence Protocol (PDCP) layer, Radio Resource Control (RRC), and IP layer. Other functional splits are also possible. It can be assumed that those skilled in the art are familiar with the Open Systems Interconnection (OSI) model and the functions within each layer.
[0053] In some example implementations, the server or CU can generate a virtual network through which the server communicates with the radio nodes. Typically, virtual networking can involve the process of combining hardware and software network resources and network functions into a single software-based management entity (virtual network). Such a virtual network can provide flexible operational distribution between the server and the radio head end / node. In practice, any digital signal processing task can be performed in the CU or DU, and the boundary for transferring responsibility between the CU and DU can be chosen depending on the implementation.
[0054] Within 3GPP, the 5G Media Streaming (5GMS) architecture supports enhanced media streaming in 5G systems, such as Dynamic and Adaptive Streaming over HTTP (DASH) and HTTP Live Streaming (HLS). In this context, streaming refers to the delivery of time-continuous media as the primary medium. Media is primarily transmitted in a single direction, such as the downlink to the UE110, where it is consumed when received. Media content can be generated before streaming (on-demand streaming) or streamed while it is being generated (live streaming). Streaming content can also be delivered non-real-time and stored for later, on-demand consumption. In various deployments, for example, the 5GMS architecture supports MNOs and third-party downlink media streaming services, as well as associated network and UE functions and application programming interfaces (APIs).
[0055] Figure 4The diagram illustrates a 5GMS architecture 400 for unicast downlink media streaming, implemented according to several examples. As shown, the 5GMS architecture for unicast downlink media streaming includes three main functions: a 5GMS downlink (5GMSd) AF 402 (e.g., AF 312), a 5GMSd AS 404 (e.g., AS 314), and a 5GMSd client 406. The 5GMSd client may include a media session handler 408 and a media player 410. A 5GMSd application provider 412 configured to use 5GMS for streaming services is also shown. The 5GMSd application provider can provide a 5GMS-aware application 414 on the UE to leverage the 5GMS client and NF using the interfaces and APIs defined in 5GMS.
[0056] 5GMSd AF 402 is an AF 312 dedicated to downlink 5G media streaming. The 5GMSd AF interfaces with the 5GMSd application provider 412 via reference point M1d (5GMSd provisioning API) and with the media session handler 408 via reference point M5d (media session processing API). The 5GMS AF can also interface with the 5GMS AS 404 via reference point M3d. The 5GMSd AF provides various control functions to the 5GMSd application provider and / or the media session handler. The 5GMSd AM can also relay or initiate requests for different processing from PCF 308 using the 5G system's reference point N33, or interact with other NFs via NEF 310 using the 5G system's reference point N5.
[0057] 5GMSd AS 404 is AS 314 dedicated to downlink 5G media streaming. The 5GMSd AS interfaces with the 5GMSd application provider 412 via reference point M2d (5GMSd Ingestion API) and with the media player 410 via reference point M4d (Media Streaming API). The 5GMSd AS hosts 5G media functions, such as enabling the media player to stream media content in real-time or download media content non-real-time. The 5GMSd AS supports several features, including content hosting features such as ingesting media content from the 5GMSd application provider, caching media content, content preparation, and geographic restrictions (“geofencing”) on content access for the media player. 5GMSd can be implemented in various ways, including distributing 5GMSd AS functions across different physical hosts or servers, such as in a Content Delivery Network (CDN).
[0058] The 5GMSd client 406 is an internal function of UE 208 dedicated to downlink 5G media streaming. The 5GMSd client is the receiver for the 5GMS downlink media streaming service. The media session handler 408 is a subfunction of the 5GMSd client that communicates with 5GMSd AF 402 to establish, control, and support the delivery of media sessions, and can perform additional functions such as consumption and quality of experience (QoE) metric collection and reporting. The media session handler can interface with the media player 410 and the 5GMSd-aware application 414 via reference point M6d (UE Media Session Processing API). The media player is a subfunction of the 5GMSd client that communicates with 5GMSd AS 404 to stream media content in real-time or download media content non-real-time. The media player can interface with the media session handler and the 5GMSd-aware application via reference point M7d (UE Media Player API). Alternatively, the UE can be implemented in a self-contained manner, so that interfaces M6d and M7d are not exposed.
[0059] The 5GMSd-aware application 414 is an external media application (e.g., an app) that controls the 5GMSd client 406. The 5GMSd-aware application implements external application or content service provider-specific logic and enables the establishment of media sessions. The 5GMSd-aware application is outside the 5GMS architecture but uses the 5GMSd interface and API to leverage the 5GMSd client and NF. As also shown in the figure, the 5GMSd-aware application can interface with the 5GMSd application provider 412 via the M8d reference point (application API), which extends beyond the scope of 5GMS.
[0060] In today's adaptive streaming, overall delivery is client-driven. The client downloads a manifest (e.g., a Media Presentation Description (MPD) for DASH, a playlist for HLS) from the server. This manifest contains information describing the representation of the media content used for a given media streaming service. These representations offer different levels of bitrate in various resolutions, formats, and codecs. In some more specific examples, the representation might reflect standard definition (SD), high definition (HD), 2K, 4K, and / or 8K representations of the media content. When the media content is encoded in segments, the information provided by the manifest tells the client where to download the segments. Based on the representations available in the manifest, the client then initiates its Adaptive Bitrate (ABR) logic and progressively downloads and decodes the segments, playing back the media content. When bandwidth fluctuates, the ABR logic on the client can switch to downloading segments at a higher or lower bitrate to avoid rebuffering and maintain live playback of the media content.
[0061] Many congestion-oriented protocols have been developed. One example is Low Latency, Low Loss, Scalable Throughput (L4S), which enables real-time applications to experience low latency regardless of network congestion. L4S uses the Explicit Congestion Notification (ECN) bit in the IP header of a packet to mark packets with an indication of a congested link. The application adjusts its encoding rate based on the number or percentage of marked packets.
[0062] While congestion-oriented protocols such as L4S exist, these are source-driven. In this approach, packets are tagged as they travel through the network, indicating to the receiving client the early signs of congestion. Upon detecting congestion, the client is expected to notify the server so that the source can react accordingly (e.g., by reducing the bit rate).
[0063] Using congestion-oriented protocols (such as L4S) for client-driven delivery (such as Video on Demand (VOD) / Subscription VOD (SVOD)) is counterintuitive because it expects all bitrate changes to be referenced in the inventory. Therefore, clients typically don't need congestion information signaled by the network, as they can reduce the bitrate if progressive downloading deviates from real-time. However, servers lack the ability to optimize their behavior based on network congestion. Application specifications such as 5GMS or Digital Video Broadcasting (DVB)-DASH currently do not support the use of congestion-oriented protocols (such as L4S) in client-driven scenarios.
[0064] In light of the foregoing, the example implementations of this disclosure enable client-driven media streaming delivery solutions to leverage congestion-aware protocols to optimize servers and maximize overall user experience quality. According to the example implementations, at least one network (e.g., a CDN) on which media content is streamed can provide an indication of network congestion without dropping packets transmitted over the network(s). In some examples, a CDN comprising multiple media caches and / or servers can utilize congestion markers (such as ECN bits) to mark IP packets transmitted over the CDN. The indication of network congestion can be used to determine network congestion information, such as network congestion rate, network congestion trends, and / or the location of network congestion, which can be used to optimize the delivery of media content during a media streaming session when early signs of network congestion are detected.
[0065] When applied to a 5GMS architecture, the example implementation of this disclosure enables the 5GMSd AS 404 and (multiple) networks (e.g., CDNs) to utilize L4S for client-driven (e.g., DASH) downlink media streaming sessions, and enables the 5GMSd client 406 to feed back network congestion information to the 4GMSd AS. The 5GMSd can then be configured to determine the network congestion level and perform at least one congestion control operation based on the network congestion level.
[0066] In some examples where media content is encoded as segments requested to be delivered to multiple 5GMSd clients during multiple media sessions, the 5GMSd AS 404 may replace a segment requested at a first bitrate with a corresponding segment associated with a lower second bitrate ("spoofing" the client). In another example, the 5GMSd AS may anticipate multiple upcoming requests for segments and run a transcoding task to reduce the bitrate of those segments. This transcoding task may be a simple transcoding task. Additionally or alternatively, the transcoding task may include resolution downscaling, frame rate adaptation, denoising, switching to a more efficient codec or profile, etc.
[0067] Additionally or alternatively, 5GMSd AS 404 may send a notification to (multiple) 5GMSd clients 406. The notification may be sent in a variety of different ways, and in some examples, 5GMSd AS may utilize existing messaging formats, such as the Common Media Server Data (CMSD) dynamic response header, or use alternative mechanisms, such as by utilizing the 5GMS control plane. In the notification, 5GMSd AS may, for example, inform (multiple) 5GMSd clients of the network congestion level, such as when the network congestion level increases from Level 1 to a larger Level 2. 5GMSd AS may request (multiple) 5GMSd clients that have requested media content associated with a first bit rate to temporarily request at least (multiple) segments at a lower second bit rate. Similarly, 5GMSd AS may notify (multiple) 5GMSd clients when the network congestion level decreases back to Level 1. In yet another example, 5GMSd AS may notify (multiple) 5GMSd clients of an update to the list of information describing the representations of media content associated with different bit rates, such as adding a new representation at another bit rate.
[0068] In some examples, for multiple 5GMSd clients 406 of multiple new media streaming sessions, the 5GMSdAS 404 may update the list that will be provided during the initialization of the multiple new media streaming sessions to remove at least one representation from the list that has a higher bit rate among different bit rates. Additionally or alternatively, for example, the 5GMSd AS may send a notification to the multiple 5GMSd clients during the initialization of the multiple new media streaming sessions to indicate a network congestion level. In some examples, the notification may include a recommended resolution, such as an indication of one of the representations recommended based on different bit rates and network congestion levels.
[0069] Therefore, an example implementation of this disclosure provides an application server, such as a 5GMSd AS 404, configured to deliver media content to at least one client, such as at least one 5GMSd client 406, via at least one network (e.g., a CDN) during at least one media streaming session. Multiple 5GMSd clients can be configured to receive media content. In some examples, the media content is encoded in segments. In some of these examples, multiple 5GMSd clients can be configured to request segments of media content from the 5GMSd AS and receive segments from the 5GMSd AS.
[0070] The (multiple) 5GMSd clients 406 can also be configured to receive network congestion indications from the (multiple) networks without discarding media content packets. Specifically, for example, the media content can be received in IP packets including IP headers marked with ECN bits by the (multiple) networks. The (multiple) 5GMSd clients can be configured to determine network congestion information based on network congestion indications received from the (multiple) networks and report the network congestion information to the 5GMSd AS. The network congestion information can include, for example, a network congestion rate, indicating the percentage of received packets marked with ECN bits. Additionally or alternatively, the network congestion information can include network congestion trends (e.g., increasing, stabilizing, decreasing), which can be determined based on trends in ECN marking. Even further, for example, the network congestion information can include location information about the (multiple) 5GMSd clients, which can then locate network congestion.
[0071] The 5GMSd AS 404 can be configured to receive network congestion information reported by (multiple) 5GMSd clients 406. The 5GMSd AS can receive network congestion information in a variety of different ways. In this regard, the 5GMS architecture 400 provides event exposure of UE data (such as downlink media stream transmission UE data) through a data collection AF that can be instantiated in the 5GMSd AF 402. Event types that can be exposed include, for example, QoE metrics for downlink media stream transmission, downlink media stream transmission consumption, invocation of downlink dynamic policies, invocation of AF-based downlink network assistance, downlink media stream transmission access activity, and invocation of downlink network assistance based on Access Network Bit Rate Recommendation (ANBR). According to some example implementations, event exposure can be extended to incorporate network congestion information, such as through new types of events or extensions of existing types of events (e.g., downlink media stream transmission consumption).
[0072] Regardless of how 5GMS AS 404 is configured to receive network congestion information, 5GMSd AS can be configured to determine the network congestion level based on network congestion information from (multiple) 5GMSd clients 406. Furthermore, 5GMSd AS can be configured to perform at least one congestion control operation on (multiple) media streaming sessions or at least one new media streaming session based on the network congestion level. 5GMSd AS can be configured to perform any of a number of different congestion control operations on (multiple) media streaming sessions.
[0073] In some examples, 5GMSd AS 404 can be configured to replace at least one segment of media content requested at a first bit rate with at least one corresponding segment associated with a second bit rate lower than the first bit rate, the at least one corresponding segment being delivered to at least one 5GMSd client 406 during the media streaming session(s).
[0074] In some examples, 5GMSd AS 404 can be configured to predict at least one upcoming request for at least one segment of media content, and transcode the segment(s) upon request during the media streaming session(s) to reduce the bit rate of the segment(s) delivered to the 5GMSd client(s) 406(s).
[0075] In some examples, 5GMSd AS 404 can be configured to send a notification about network congestion levels to(s) of 5GMSd clients 406. The notification may include, for example, a request for(s) of(s) of the 5GMSd clients to switch from requesting a first representation of media content associated with a first bit rate to requesting a second representation of media content associated with a second bit rate lower than the first bit rate. The notification may also include an indication of the duration for which(s) of the 5GMSd clients are requested to switch from requesting the first representation of the media content to requesting the second representation of the media content. The(s) of the 5GMSd clients can then be configured to switch to requesting(s) fragments at the lower second bit rate, at least for the indicable duration, based on the notification.
[0076] In some examples, the media content is one of multiple media contents (e.g., presentations), and representations of each media content with different bit rates may be available for delivery. In some of these examples, the 5GMSd AS 404 can be configured to create one or more additional representations of one or more media contents among multiple media contents associated with bit rates other than different bit rates. These can be intermediate bit rates, higher bit rates, or lower bit rates among the provided bit rates, depending on the network congestion level. In some of these examples, the 5GMSd AS can also be configured to send a notification to (multiple) 5GMSd clients 406 including indications of (multiple) additional representations of the media content.
[0077] In some examples, a list including information describing representations of media content associated with different bit rates is provided during the initialization of the media streaming session(s). The 5GMSd AS 404 can be configured to update the list provided during the initialization of the new media streaming session(s) to remove at least one representation from the list that has a higher bit rate among the different bit rates. The 5GMSd AD AS can send a notification about the network congestion level to the 5GMSd client(s) ...
[0078] In addition to or as an alternative to 5GMSd AS 404, 5GMS clients (e.g., 5GMSd client 406, 5GMS uplink (5GMSu) clients) can be configured to access network congestion information and perform one or more congestion control operations based on that information. This can be beneficial when the location updates of a 5GMS client are processed on the server side based on image or video data from the 5GMS client. The 5GMS client can use the congestion information to reduce the bit rate of image or video data, or, in cases of severe congestion, to process attitude estimation on the client side.
[0079] In another scenario, the client-side use of congestion information can be beneficial for 5GMS clients using video or holographic communication, where the 5GMS client sends video data to the server. Based on the congestion information, the 5GMS client can adjust the bit rate, or even switch from video call to avatar call. Additionally or alternatively, the 5GMS client can use congestion information to request a specific (e.g., lower) bit rate during the establishment, modification, or release of a Packet Data Unit (PDU) session on which a media streaming session can be carried.
[0080] In examples where a 5GMS client accesses network congestion information to perform multiple congestion control operations, as described above, the network congestion information can be determined at the 5GMSd client based on indications of network congestion (e.g., ECN tags) received from multiple networks during a media streaming session. In these examples, also as described above, the 5GMSd client can also report the network congestion information to 5GMSd AS 404. In other examples, network congestion information can be accessed by the 5GMSd client 406 in a network auxiliary session from application functions (such as 5GMS AFs, e.g., 5GMSd AF 402 or 5GMSu AF)), in which the network congestion information is requested and received from the 5GMS AF.
[0081] In some examples of accessing congestion information from a 5GMS AF, congestion information can be exposed to 5GMS clients via network assistance, such as through extensions of downlink network assistance otherwise provided by the 5GMS architecture 400. In this regard, a 5GMS client can initiate a network assistance session with the 5GMS AF, during which the network can provide downlink streaming delivery assistance to the 5GMS client. During the network assistance session, the 5GMS client can request a congestion estimate for the media streaming session from the 5GMS AF, and the 5GMS AF can transmit congestion status (e.g., network congestion rate) and / or network congestion trends observed in the client's region to the 5GMS client.
[0082] Regardless of how the 5GMS client is configured to access network congestion information, it can be configured to perform any of a number of different congestion control operations for a media streaming session based on network congestion information. In some examples where the 5GMSd client 406 is requesting a segment of media content associated with a first bit rate, the 5GMSd client can be configured to switch to requesting at least one segment at a second bit rate lower than the first bit rate based on network congestion information. In this respect, the 5GMSd client can incorporate network congestion information into its ABR logic.
[0083] Based on these examples, network congestion information based on indications from (multiple) networks (such as ECN tags) can provide earlier indications of network congestion than those additionally identified by the ABR logic of the 5GMSd client 406. In some examples, the ABR logic can limit the highest downloadable representation of media content if the network congestion rate is above a threshold or within a given interval, which can be set by a threshold policy configured for the 5GMSd client. Specifically, for example, the ABR logic can limit media content to no larger than HD when the congestion rate is above 80%, or limit media content to no larger than 2K when the congestion rate is in the 40-80% range. The threshold policy can be set equally among the 5GMSd clients or can depend on the user's service subscription. In this respect, premium users can have different threshold policies than free ad-supported users.
[0084] In some examples where media streaming sessions are carried over PDU sessions with 5GC 202 or other core networks, 5GMS clients (e.g., 5GMSd client 406, 5GMSu client) can be configured to use congestion information to optimize PDU session establishment, thereby achieving better connectivity. In this regard, 5GMS clients can be configured to request PDU session establishment to carry media streaming sessions based on network congestion information. More specifically, for example, 5GMS clients can be configured to send a PDU session establishment request message including network congestion information (e.g., network congestion rate, network congestion trend) to a session management function (such as SMF 304). If the connection is accepted by the network, the SMF can create a PDU session establishment acceptance message based on QoS rules according to the network congestion information and send the PDU session establishment acceptance message back to the 5GMS client. The network can also reject PDU session establishment requests based on the current network conditions, network congestion rate, and / or network congestion trend.
[0085] Additionally or alternatively, the 5GMS client can be configured to use congestion information to optimize the media streaming session carried on the established PDU session for better connectivity. In some of these examples, the 5GMS client can be configured to request modifications to the PDU session based on network congestion information. The 5GMS client can be configured to send a PDU session modification request message including network congestion information to the SMF 304 or other session management functions. The SMF can then initiate a PDU session modification process based on the network congestion information. Alternatively, the SMF can reject the PDU session modification request, such as based on current capacity.
[0086] Furthermore, in some examples, the 5GMS client can be configured to request the release of an established PDU session, such as when application-related parameters are not implemented. In this regard, the 5GMS client can be configured to request the release of the PDU session based on network congestion information. The 5GMS client can then request the establishment of a new PDU session to carry a media streaming session, and in some examples, as described above, it can be requested based on new QoS rules taking network congestion information into account.
[0087] Figure 5 The diagram illustrates a 5GMS deployment 500 for a downlink media streaming session, implemented according to some examples. As shown, the 5GMS deployment includes a caching server 502 configured to implement 5GMSd AS 404. The 5GMS deployment also includes multiple 5GMSd clients 406, specifically client A 406A, client B 406B, client C 406C, client D 406D, client E 406E, and client F 406F. The caching server is conducting ongoing media streaming sessions with clients A, B, and C via a first network 504 and a second network 506, and with clients E and F via the first network. Clients A, B, C, E, and F in the ongoing media sessions have corresponding copies of the MPD 508 (manifestation) for the media content and are reporting congestion information to the caching server. Another client (i.e., client D) is a new client for a new streaming media session.
[0088] Congestion information from clients A 406A, B 406B, and C 406C indicates that a second network 506 in the region of client D 406D is experiencing network congestion at least at a threshold level. In response, cache server 502 (5GMSd AS 404) can remove higher bitrate (HD and 4K) representations of media content from the MPD 510 provided to the new client D 406D. Additionally or alternatively, as described above, the cache server can perform multiple other congestion control operations on the media content delivered to clients A, B, and C. In some examples, as described above, the cache server can coordinate with 5GMSdAF 402 to examine network congestion information at the instantiated data collection AF to determine if the reported congestion rate in the geographic region of the client(s) exceeds a predefined threshold, and perform multiple congestion control operations.
[0089] To further illustrate some example implementations of this disclosure, Figure 6 This is signaling diagram 600 for the 5GMSd session initialization and streaming session process. As shown in step 601, the 5GMSd session initialization process includes the 5GMSd aware application 414 starting media playback. At step 602, the media player 410 of the 5GMSd client 406 requests a media player entry from the 5GMSd AS 404. At step 603, the 5GMSd AS notifies the 5GMSd AF 402 of the new request, and at step 604, the 5GMSd AF obtains congestion information from the instantiated data collection AF 620.
[0090] At step 605, 5GMSd AF 620 determines how 5GMSd AS 404 should handle the request and whether any additional processing is required. If the congestion rate at the current location of media player 410 is higher than a predefined threshold, a processing decision can be triggered.
[0091] At step 606, 5GMSd AF 402 sends a decision to 5GMSd AS 404 regarding how to process the request. If processing has been decided, 5GMSd runs one or more processing tasks at step 607. These processing tasks may include, for example, editing a manifest to remove the highest bitrate (resolution), running a transcoding task to create an intermediate bitrate, performing transcoding operations on the requested service to provide a lower bitrate, adapting a format or encoding profile, or discarding unnecessary frames (resulting in a lower bitrate but still providing a decorable bitstream).
[0092] At step 608, 5GMSd AS 404 sends the media player entry back to media player 410. Then, the media player processes the media player entry at step 609 and identifies that content is available from different data networks (local media server and 5GMSd AS). Under the control of the 5GMSd-aware application 414, the media player selects content and different content options at step 610 to complete the 5GMSd session initialization. Then, the 5GMSd streaming session procedure is executed, during which the media player runs a 5GMSd streaming loop, progressively requesting and downloading media segments from the 5GMSd AS, as shown in steps 611 and 612.
[0093] Figures 7A to 7H This is a flowchart illustrating the various steps in method 700, implemented according to various examples. For example... Figure 7A As shown in box 702, the method includes delivering media content to at least one client via at least one network during at least one media streaming session. As shown in box 704, the method includes receiving network congestion information reported by at least one client, the network congestion information being based on an indication of network congestion received by at least one network from at least one client without the at least one network dropping packets containing media content. As shown in box 706, the method includes determining a network congestion level based on the network congestion information from at least one client. And as shown in box 708, the method includes performing at least one congestion control operation for at least one media streaming session or at least one new media streaming session, based on the network congestion level.
[0094] In some examples, media content is encoded in a fragment that is requested by at least one client and delivered to at least one client. In some of these examples, performing at least one congestion control operation at box 708 includes: Figure 7B As shown in box 710, at least one segment of media content requested at a first bit rate is replaced with at least one corresponding segment associated with a second bit rate lower than the first bit rate, the at least one corresponding segment being delivered to at least one client during at least one media streaming session.
[0095] In some examples where media content is encoded in a fragment, which is requested by at least one client and delivered to at least one client, performing at least one congestion control operation at box 708 includes: Figure 7CAs shown in box 712, at least one upcoming request for at least one segment of media content is predicted. In some of these examples, performing at least one congestion control operation further includes, as shown in box 714, transcoding at least one segment to reduce the bit rate of at least one segment of media content delivered to at least one client when requested during at least one media streaming session.
[0096] In some examples, performing at least one congestion control operation at box 708 includes: Figure 7D As shown in box 716, a notification regarding the network congestion level is sent to at least one client. In some of these examples, the notification includes a request from at least one client to switch from a first representation of media content associated with a first bit rate to a second representation of media content associated with a second bit rate lower than the first bit rate.
[0097] In some examples, the notification also includes an indication of duration, with at least one client being requested to switch from a first representation of the requested media content to a second representation of the requested media content for the duration.
[0098] In some examples, the media content is one of a plurality of media contents available for delivery, and each of the media contents is associated with a representation encoded for a different bit rate available for delivery. In some of these examples, performing at least one congestion control operation at box 708 includes: Figure 7E As shown in box 718, one or more additional representations of one or more media contents among multiple media contents associated with different bit rates are created.
[0099] In some examples, one or more media contents within the media content include media content delivered during at least one media streaming session. In some of these examples, performing at least one congestion control operation at box 708 also includes: Figure 7F As shown in box 720, a notification is sent to at least one client, the notification including one or more additional indications.
[0100] In some examples, a list of information, including representations of media content associated with different bit rates, is provided during the initialization of at least one media streaming session. In some of these examples, performing at least one congestion control operation at box 708 includes: Figure 7G As shown in box 722, the update will be provided during the initialization of at least one new media streaming session to remove at least one representation from the representation that has a higher bit rate among different bit rates.
[0101] In some examples, representations of media content associated with different bit rates can be used for delivery. In some of these examples, performing at least one congestion control operation at box 708 includes: Figure 7H As shown in box 724, a notification about the network congestion level is sent during the initialization of at least one new media streaming session. Also in some of these examples, the notification includes an indication of a representation that is recommended based on different bit rates and network congestion levels.
[0102] Figures 8A to 8F This is a flowchart illustrating various steps in method 800, implemented according to various examples. The method includes: such as... Figure 8A As shown in box 802, during a media streaming session, media content delivered by an application server via at least one network is received. The method includes, as shown in box 804, receiving an indication of network congestion from at least one network without the at least one network dropping packets of media content. The method further includes, as shown in box 806, determining network congestion information based on the indication of network congestion received from at least one network. And the method further includes, as shown in box 808, reporting the network congestion information to the application server for execution of at least one congestion control operation for the media streaming session based on a network congestion level based on the network congestion information.
[0103] In some examples, media content is encoded in fragments, and method 800 also includes: Figure 8B As shown in box 810, a segment of media content is requested. In some of these examples, receiving media content at box 802 includes receiving a segment as shown in box 812.
[0104] In some examples, the fragment requesting media content at box 810 includes: such as Figure 8C As shown in box 814, a segment associated with a first bit rate is requested from the application server. In some of these examples, receiving a segment at box 812 includes, as shown in box 816, receiving at least one corresponding segment in place of at least one segment associated with the first bit rate, the at least one corresponding segment being associated with a second bit rate lower than the first bit rate.
[0105] In some examples, such as Figure 8D As shown, at box 810, before at least one segment is requested, a segment of media content is requested from the application server, where at least one congestion control operation is performed. The at least one congestion control operation is performed to transcode the at least one segment to reduce the bit rate of the at least one segment. And at box 812, receiving the segment includes, as shown in box 818, receiving the at least one transcoded segment.
[0106] In some examples, the fragment is requested at a first bit rate at box 810, and method 800 also includes: Figure 8E As shown in box 820, a notification about the network congestion level is received from the application server. In some of these examples, the method further includes, as shown in box 822, switching to requesting at least one segment at a second bit rate lower than the first bit rate based on the notification.
[0107] In some examples, a list of information, including representations of media content associated with different bit rates, is received during the initialization of the media session. In some of these examples, method 800 also includes: Figure 8F As shown in box 824, a notification about the network congestion level is received from the application server. The notification includes an updated list in which at least one representation with a higher bit rate among different bit rates is removed from the list.
[0108] Figures 9A to 9I This is a flowchart illustrating various steps in method 900 implemented according to various examples. The method includes: such as... Figure 9A As shown in box 902, a media streaming session is initiated for receiving media content delivered by an application server via at least one network. The method includes, as shown in box 904, accessing network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from at least one network without dropping packets transmitted through at least one network. Furthermore, the method includes, as shown in box 906, performing at least one congestion control operation for the media streaming session based on the network congestion information.
[0109] In some examples, accessing network congestion information at box 904 includes: such as Figure 9B As shown in box 908, the application function performs a network auxiliary session, in which network congestion information is requested and received from the application function.
[0110] In some examples, accessing network congestion information at box 904 includes: such as Figure 9C As shown in box 910, during a media streaming session, an indication of network congestion is received from at least one network. In some of these examples, accessing network congestion information further includes, as shown in box 912, determining network congestion information based on the indication of network congestion.
[0111] In some examples, media content is encoded in fragments, and method 900 also includes: Figure 9DAs shown in boxes 914 and 916, a segment of media content associated with a first bit rate is requested, and a segment of media content is received. In some of these examples, performing at least one congestion control operation at box 906 includes, as shown in box 918, switching to requesting at least one segment of the segments at a second bit rate lower than the first bit rate based on network congestion information.
[0112] In some examples, performing at least one congestion control operation at box 906 includes: Figure 9E As shown in box 920, a request is made to establish a Packet Data Unit (PDU) session based on network congestion information to carry a media stream transmission session.
[0113] In some examples, requesting the establishment of a PDU session at box 920 includes: Figure 9F As shown in box 922, a PDU session establishment request including network congestion information is sent, wherein the PDU session establishment request is sent to the session management function for the creation of a PDU session establishment accept message based on quality of service rules according to the network congestion information. In some of these examples, the request for PDU session establishment also includes, as shown in box 924, receiving a PDU session establishment accept message from the session management function.
[0114] In some examples, the media streaming session is carried on a Packet Data Unit (PDU) session, and at least one congestion control operation is performed at box 906, including: Figure 9G As shown in box 926, modifications to the PDU session are requested based on network congestion information.
[0115] In some examples, requesting modifications to the PDU session at box 926 includes: such as Figure 9H As shown in box 928, a PDU session modification request including network congestion information is sent. In some of these examples, the PDU session modification request is sent to the session management function for initiating a PDU session modification process based on network congestion information or for rejecting the PDU session modification request.
[0116] In some examples where the media streaming session is carried on the PDU session, performing at least one congestion control operation at box 906 includes: such as Figure 9I As shown in box 930, the release of the PDU session is requested based on network congestion information.
[0117] According to the example implementations of this disclosure, the telecommunications system 100 or PLMN 102 and its components (such as UE 110, CN 106, RAN 108, 5GC 202, NG-RAN 204, gNB 206, UE 208, AMF 302, SMF 304, UPF 306, PCF 308, NEF 310, AF 312, AS 314, 5GMSd AF 402, 5GMSd AS 404, 5GMSd client 406, media session handler 408, media player 410, 5GMSd application provider 412, 5GMS aware application 414, and / or data collection AF 620) can be implemented by various means. Components used to implement the system and its components may include hardware, firmware, software, or combinations thereof. In some examples, one or more devices may be configured to function as or otherwise implement the system and its components shown and described herein. In examples involving more than one device, the devices may be connected to or communicate with each other in a variety of different ways, such as directly or indirectly via wired or wireless networks.
[0118] Based on some example implementations, regarding Figures 7A to 7H At least some of the methods in the described method 700 can be performed by a device including components for performing functions corresponding to the steps of the method. Similarly, regarding Figures 8A to 8F At least some of the methods in the described method 800 can be performed by a device including components for performing functions corresponding to the steps of the method. And regarding... Figures 9A to 9I At least some of the methods in the described method 900 can be performed by means including components for performing functions corresponding to the steps of the method. Examples of suitable means may include a gNB (e.g., gNB-DU, gNB-CU), an ng-eNB, or any suitable means such as a server, host, or node. Other examples of suitable means may include user equipment, user device, user terminal, etc.
[0119] Figure 10The illustration shows an apparatus 1000 implemented according to some examples of the present disclosure, wherein components for performing various functions include hardware, either alone or under the guidance of one or more computer programs from a computer-readable storage medium or other memory, such as computer memory. Generally, the apparatus of the example implementations of the present disclosure may include, comprise, or embody one or more fixed or portable electronic devices. Examples of suitable electronic devices include wearable computers, mobile phones, portable computers, desktop computers, workstation computers, servers (server computers), etc. The apparatus may include one or more of each of a plurality of components, such as a processing circuitry system 1002 connected to a computer-readable storage medium or other memory 1004.
[0120] The processing circuit system 1002 may consist of one or more processors individually, or in combination with one or more computer-readable storage media. The processing circuit system is typically any computer hardware capable of processing information (e.g., data, computer programs, and / or other suitable electronic information). The processing circuit system consists of a set of electronic circuits, some of which may be packaged as integrated circuits or multiple interconnected integrated circuits (integrated circuits are sometimes more commonly referred to as "chips"). The processing circuit system may be configured to execute computer programs, which may be stored on the processing circuit system board or otherwise stored in memory 1004 (on the same or another device).
[0121] Depending on the specific implementation, the processing circuit system 1002 may be multiple processors, a multi-core processor, or some other type of processor. Furthermore, the processing circuit system may be implemented using multiple heterogeneous processor systems, where a main processor and one or more auxiliary processors reside on a single chip. As another illustrative example, the processing circuit system may be a symmetric multiprocessor system comprising multiple processors of the same type. In yet another example, the processing circuit system may be embodied as or otherwise include one or more ASICs, FPGAs, etc. Therefore, while the processing circuit system may be able to execute computer programs to perform one or more functions, the various examples of processing circuit systems may be able to perform one or more functions without the assistance of a computer program. In either case, the processing circuit system may be appropriately programmed to perform functions or operations implemented according to the examples of this disclosure.
[0122] Memory 1004 is typically any type of computer hardware capable of temporarily and / or permanently storing information (e.g., data, computer programs, instructions 1006 (e.g., computer-readable program code), and / or other suitable information). Memory may include volatile and / or non-volatile memory and may be fixed or removable. Examples of suitable memory include recording media, random access memory (RAM), read-only memory (ROM), hard disk drives, flash memory, thumb drives, removable computer disks, optical disks, or some combination thereof.
[0123] Memory 1004 is a non-transitory device capable of storing information. An example of a suitable memory is a computer-readable storage medium, as opposed to a computer-readable transport medium capable of carrying information from one location to another. Examples of suitable computer-readable transport media include electronic carrier signals, telecommunication signals, software distribution packages, or some combination thereof. As used herein, the term "non-transitory" is a limitation on the medium itself (i.e., tangible, not signaling), not a limitation on the persistence of data storage (e.g., RAM vs. ROM). Computer-readable media as described herein generally refers to either computer-readable storage media or computer-readable transport media. A computer-readable medium is any entity or device capable of storing and carrying information, such as one or more computer programs or portions thereof.
[0124] In addition to memory 1004 (e.g., a computer-readable storage medium), processing circuitry 1002 may also be connected to one or more interfaces for displaying, sending, and / or receiving information. These interfaces may include communication interface 1008 and / or one or more user interfaces. The communication interface may be configured to send and / or receive information to and from other devices, networks, etc. The communication interface may be configured to send and / or receive information via physical (wired) and / or wireless communication links. Examples of suitable communication interfaces include network interface controllers (NICs), wireless NICs (WNICs), etc.
[0125] The user interface may include a display 1010 and / or one or more user input interfaces 1012. The display may be configured to present or otherwise display information to a user; suitable examples include liquid crystal displays (LCDs), light-emitting diode (LED) displays, organic LED (OLED) displays, active-matrix OLEDs (AMOLEDs), etc. The user input interface may be wired or wireless and may be configured to receive information from the user into the device, such as for processing, storage, and / or display. Suitable examples of the user input interface include microphones, image or video acquisition devices, keyboards or keypads, joysticks, touch-sensitive surfaces (separate from or integrated into the touchscreen), biometric sensors, etc. The user interface may also include one or more interfaces for communicating with peripheral devices, such as printers, scanners, etc.
[0126] The processing circuitry 1002 supports the execution of instruction 1006, or the storage of instructions in memory 1004, for combinations of operations used to implement exemplary implementations of this disclosure. In this way, apparatus 1000 may include at least one processing circuitry and at least one memory coupled to the at least one processing circuitry, wherein the at least one processing circuitry is configured to execute instructions stored in the at least one memory. It will also be understood that one or more functions and combinations of functions may be implemented by a dedicated hardware-based computer system and / or processing circuitry that performs the specified function, or by a combination of dedicated hardware and program code instructions.
[0127] Some example implementations of this disclosure can also be executed as a computer process defined by one or more computer programs or portions thereof. Example implementations of this disclosure can be executed by executing at least a portion of a computer program including instructions. The computer program can be in source code form, object code form, or some intermediate form. The computer program can be stored in a computer-readable medium readable by a computer, processing circuitry system, or other suitable means. As mentioned above, for example, the computer program can be stored in memory, such as a computer-readable storage medium. Additionally or alternatively, for example, the computer program can be stored in a computer-readable transmission medium. The coding of software used to perform example implementations of this disclosure is entirely within the scope of those skilled in the art.
[0128] It will be understood that any suitable instructions can be loaded from memory or a computer-readable medium (e.g., a computer-readable storage medium, a computer-readable transmission medium) onto a computer, processing circuitry system, or other programmable means to produce a particular machine, such that the particular machine becomes a component for implementing the functions described herein. The instructions can also be stored in a computer-readable medium that can instruct a computer, processing circuitry system, or other programmable means to operate in a particular manner to produce a particular machine or a particular article of manufacture. In some examples, the instructions stored in a computer-readable medium can produce an article of manufacture, wherein the article of manufacture becomes a component for implementing the functions described herein. The instructions can be retrieved from a computer-readable medium and loaded onto a computer, processing circuitry system, or other programmable means to configure the computer, processing circuitry system, or other programmable means to perform operations to be performed on or by the computer, processing circuitry system, or other programmable means.
[0129] The retrieval, loading, and execution of instructions (including program code instructions) can be performed sequentially, allowing one instruction to be retrieved, loaded, and executed at a time. In some example implementations, retrieval, loading, and / or execution can be performed in parallel, allowing multiple instructions to be retrieved, loaded, and / or executed together. The execution of program code instructions can produce computer-implemented processes that provide operations for implementing the functions described herein, executed by a computer, processing circuitry system, or other programmable device.
[0130] As explained above and reiterated below, this disclosure includes, but is not limited to, the following example implementations.
[0131] Clause 1. An apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory and execute the instructions such that the apparatus at least: delivers media content to at least one client via at least one network during at least one media streaming session; receives network congestion information reported by the at least one client, the network congestion information being based on an indication of network congestion received by the at least one network from the at least one client without the at least one network dropping packets of the media content; determines a network congestion level based on the network congestion information from the at least one client; and performs at least one congestion control operation on the at least one media streaming session or at least one new media streaming session according to the network congestion level.
[0132] Clause 2. The apparatus according to Clause 1, wherein the media content is encoded in segments, the segments are requested by and delivered to the at least one client, and wherein the apparatus is configured to perform the at least one congestion control operation comprising the apparatus being configured to replace at least one segment of the media content requested at a first bit rate with at least one corresponding segment associated with a second bit rate lower than the first bit rate, the at least one corresponding segment being delivered to the at least one client during the at least one media streaming session.
[0133] Clause 3. The apparatus according to Clause 1 or Clause 2, wherein the media content is encoded in segments, the segments are requested by and delivered to the at least one client, and wherein the apparatus is configured to perform the at least one congestion control operation comprising: predicting at least one upcoming request for at least one segment of the media content; and transcoding the at least one segment to reduce the bit rate of the at least one segment of the media content delivered to the at least one client when requested during the at least one media streaming session.
[0134] Clause 4. An apparatus according to any one of Clauses 1 to 3, wherein the apparatus being caused to perform the at least one congestion control operation includes the apparatus being caused to send a notification to the at least one client regarding the network congestion level, the notification including a request from the at least one client to switch from requesting a first representation of the media content associated with a first bit rate to requesting a second representation of the media content associated with a second bit rate lower than the first bit rate.
[0135] Clause 5. The apparatus according to Clause 4, wherein the notification further includes an indication of duration, wherein the at least one client is requested to switch from the first representation of requesting the media content to the second representation of requesting the media content for the duration.
[0136] Clause 6. An apparatus according to any one of Clauses 1 to 5, wherein the media content is one of a plurality of media contents available for delivery, and wherein each of the media contents of the plurality of media contents is associated with a representation encoded for a different bit rate available for delivery, and wherein the apparatus is made to perform the at least one congestion control operation comprising the apparatus being made to create one or more additional representations of one or more of the media contents of the plurality of media contents associated with a bit rate other than the different bit rate.
[0137] Clause 7. The apparatus according to Clause 6, wherein the one or more media contents in the media content include the media content delivered during the at least one media streaming session, and wherein being caused by the apparatus to perform the at least one congestion control operation further includes being caused by the apparatus to send a notification to the at least one client, the notification including an indication of the one or more additional representations.
[0138] Clause 8. An apparatus according to any one of Clauses 1 to 7, comprising a list of information describing representations of the media content associated with different bit rates being provided during the initialization of the at least one media streaming session, wherein the apparatus is caused to perform the at least one congestion control operation comprising the apparatus being caused to update the list to be provided during the initialization of the at least one new media streaming session to remove from the list at least one representation having a higher bit rate among the different bit rates.
[0139] Clause 9. An apparatus according to any one of Clauses 1 to 8, wherein representations of the media content associated with different bit rates are available for delivery, and wherein the apparatus is made to perform the at least one congestion control operation comprising the apparatus being made to: send a notification about the network congestion level during the initialization of the at least one new media streaming session, the notification including an indication of one of the representations, the representation being recommended based on the different bit rates and the network congestion level.
[0140] Clause 10. An apparatus comprising: components for delivering media content to at least one client via at least one network during at least one media streaming session; components for receiving network congestion information reported by the at least one client, the network congestion information being based on an indication of network congestion received by the at least one network from the at least one client without the at least one network dropping packets of the media content; components for determining a network congestion level based on the network congestion information from the at least one client; and components for performing at least one congestion control operation on the at least one media streaming session or at least one new media streaming session according to the network congestion level.
[0141] Clause 11. The apparatus according to Clause 10, wherein the media content is encoded in segments, the segments are requested by and delivered to the at least one client, and wherein the component for performing the at least one congestion control operation includes a component for replacing at least one segment of the media content requested at a first bit rate with at least one corresponding segment associated with a second bit rate lower than the first bit rate, the at least one corresponding segment being delivered to the at least one client during the at least one media streaming session.
[0142] Clause 12. The apparatus according to Clause 10 or Clause 11, wherein the media content is encoded in segments, the segments being requested by and delivered to the at least one client, and wherein the components for performing the at least one congestion control operation include: components for predicting at least one upcoming request for at least one segment of the media content; and components for transcoding the at least one segment to reduce the bit rate of the at least one segment of the media content delivered to the at least one client when requested during the at least one media streaming session.
[0143] Clause 13. The apparatus according to any one of Clauses 10 to 12, wherein the component for performing the at least one congestion control operation includes a component for sending a notification to the at least one client regarding the network congestion level, the notification including a request from the at least one client to switch from a first representation of the media content associated with a first bit rate to a second representation of the media content associated with a second bit rate lower than the first bit rate.
[0144] Clause 14. The apparatus according to Clause 13, wherein the notification further includes an indication of duration, wherein the at least one client is requested to switch from the first representation of requesting the media content to the second representation of requesting the media content for the duration.
[0145] Clause 15. An apparatus according to any one of Clauses 10 to 14, wherein the media content is one of a plurality of media contents available for delivery, and wherein each of the media contents of the plurality of media contents is associated with a representation encoded for a different bit rate available for delivery, and wherein the component for performing the at least one congestion control operation includes a component for creating one or more additional representations of one or more of the media contents of the plurality of media contents associated with a bit rate other than the different bit rate.
[0146] Clause 16. The apparatus according to Clause 15, wherein the one or more media contents in the media content include the media content delivered during the at least one media streaming session, and wherein the component for performing the at least one congestion control operation further includes a component for sending a notification to the at least one client, the notification including an indication of the one or more additional representations.
[0147] Clause 17. An apparatus according to any one of Clauses 10 to 16, comprising a list of information describing representations of the media content associated with different bit rates being provided during the initialization of the at least one media streaming session, and wherein the component for performing the at least one congestion control operation includes a component for updating the list, which will be provided during the initialization of the at least one new media streaming session, to remove from the list at least one representation of the representation having a higher bit rate among the different bit rates.
[0148] Clause 18. An apparatus according to any one of Clauses 10 to 17, wherein representations of the media content associated with different bit rates are available for delivery, and wherein the component for performing the at least one congestion control operation comprises: a component for sending a notification about the network congestion level during the initialization of the at least one new media streaming session, the notification including an indication of one of the representations, the representation being recommended based on the different bit rates and the network congestion level.
[0149] Clause 19. A method comprising: delivering media content to at least one client via at least one network during at least one media streaming session; receiving network congestion information reported by the at least one client, the network congestion information being based on an indication of network congestion received by the at least one network from the at least one client without the at least one network dropping packets of the media content; determining a network congestion level based on the network congestion information from the at least one client; and performing at least one congestion control operation on the at least one media streaming session or at least one new media streaming session according to the network congestion level.
[0150] Clause 20. The method according to Clause 19, wherein the media content is encoded in a segment, the segment is requested by the at least one client and delivered to the at least one client, and wherein performing the at least one congestion control operation includes replacing at least one segment of the media content requested at a first bit rate with at least one corresponding segment associated with a second bit rate lower than the first bit rate, the at least one corresponding segment being delivered to the at least one client during the at least one media streaming session.
[0151] Clause 21. The method according to Clause 19 or Clause 20, wherein the media content is encoded in segments, the segments are requested by and delivered to the at least one client, and wherein performing the at least one congestion control operation comprises: predicting at least one upcoming request for at least one segment of the media content; and transcoding the at least one segment to reduce the bit rate of the at least one segment of the media content delivered to the at least one client when requested during the at least one media streaming session.
[0152] Clause 22. The method according to any one of Clauses 19 to 21, wherein performing the at least one congestion control operation includes sending a notification to the at least one client regarding the network congestion level, the notification including a request from the at least one client to switch from requesting a first representation of the media content associated with a first bit rate to requesting a second representation of the media content associated with a second bit rate lower than the first bit rate.
[0153] Clause 23. The method according to Clause 22, wherein the notification further includes an indication of duration, wherein the at least one client is requested to switch from the first representation of requesting the media content to the second representation of requesting the media content for the duration.
[0154] Clause 24. The method according to any one of Clauses 19 to 23, wherein the media content is one of a plurality of media contents available for delivery, and wherein each of the media contents in the plurality of media contents is associated with a representation encoded for a different bit rate available for delivery, and wherein performing the at least one congestion control operation includes creating one or more additional representations of one or more of the plurality of media contents associated with a bit rate other than the different bit rate.
[0155] Clause 25. The method according to Clause 24, wherein the one or more media contents in the media content include the media content delivered during the at least one media streaming session, and wherein performing the at least one congestion control operation further includes sending a notification to the at least one client, the notification including an indication of the one or more additional representations.
[0156] Clause 26. The method according to any one of Clauses 19 to 25, comprising providing a list of information describing representations of the media content associated with different bit rates during the initialization of the at least one media streaming session, and wherein performing the at least one congestion control operation comprises updating the list to be provided during the initialization of the at least one new media streaming session to remove from the list at least one representation having a higher bit rate among the different bit rates.
[0157] Clause 27. The method according to any one of Clauses 19 to 26, wherein representations of the media content associated with different bit rates are available for delivery, and wherein performing the at least one congestion control operation comprises: sending a notification about the network congestion level during the initialization of the at least one new media streaming session, the notification including an indication of one of the representations, the representation being recommended based on the different bit rates and the network congestion level.
[0158] Clause 28. A computer-readable storage medium, the computer-readable storage medium being non-transitory and having instructions stored therein, the instructions being responsive to execution by at least one processing circuitry system to cause means to at least: deliver media content to at least one client via at least one network during at least one media streaming session; receive network congestion information reported by the at least one client, the network congestion information being based on an indication of network congestion received by the at least one network from the at least one client without the at least one network dropping packets of the media content; determine a network congestion level based on the network congestion information from the at least one client; and perform at least one congestion control operation on the at least one media streaming session or at least one new media streaming session according to the network congestion level.
[0159] Clause 29. A computer-readable storage medium according to Clause 28, wherein the media content is encoded in segments, the segments are requested by and delivered to the at least one client, and wherein the means being caused to perform the at least one congestion control operation includes the means being caused to replace at least one segment of the media content requested at a first bit rate with at least one corresponding segment associated with a second bit rate lower than the first bit rate, the at least one corresponding segment being delivered to the at least one client during the at least one media streaming session.
[0160] Clause 30. A computer-readable storage medium pursuant to Clause 28 or Clause 29, wherein the media content is encoded in segments, the segments being requested by and delivered to the at least one client, and wherein the means being configured to perform the at least one congestion control operation comprises the means being configured to: predict at least one upcoming request for at least one segment of the media content; and transcode the at least one segment to reduce the bit rate of the at least one segment of the media content delivered to the at least one client when requested during the at least one media streaming session.
[0161] Clause 31. A computer-readable storage medium according to any one of Clauses 28 to 30, wherein the means being caused to perform the at least one congestion control operation includes the means being caused to send a notification to the at least one client regarding the network congestion level, the notification including a request from the at least one client to switch from requesting a first representation of the media content associated with a first bit rate to requesting a second representation of the media content associated with a second bit rate lower than the first bit rate.
[0162] Clause 32. The computer-readable storage medium pursuant to Clause 31, wherein the notification further includes an indication of duration, wherein the at least one client is requested to switch from the first representation of requesting the media content to the second representation of requesting the media content for the duration.
[0163] Clause 33. A computer-readable storage medium according to any one of Clauses 28 to 32, wherein the media content is one of a plurality of media contents available for delivery, and wherein each of the media contents of the plurality of media contents is associated with a representation encoded for a different bit rate available for delivery, and wherein the means being caused to perform the at least one congestion control operation includes the means being caused to create one or more additional representations of one or more of the media contents of the plurality of media contents associated with a bit rate other than the different bit rate.
[0164] Clause 34. The computer-readable storage medium according to Clause 33, wherein the one or more media contents in the media content include the media content delivered during the at least one media streaming session, and wherein the means being caused to perform the at least one congestion control operation further includes the means being caused to send a notification to the at least one client, the notification including an indication of the one or more additional representations.
[0165] Clause 35. A computer-readable storage medium according to any one of Clauses 28 to 34, comprising a list of information describing representations of said media content associated with different bit rates, provided during the initialization of said at least one media streaming session, wherein said means is caused to perform said at least one congestion control operation comprising said means being caused to update said list to be provided during the initialization of said at least one new media streaming session to remove from said list at least one representation having a higher bit rate of said different bit rates.
[0166] Clause 36. A computer-readable storage medium according to any one of Clauses 28 to 35, wherein representations of the media content associated with different bit rates are available for delivery, and wherein the means being made to perform the at least one congestion control operation comprises the means being made to: send a notification about the network congestion level during the initialization of the at least one new media streaming session, the notification including an indication of one of the representations, the representation being recommended based on the different bit rates and the network congestion level.
[0167] Clause 37. An apparatus comprising components for performing the method according to any one of Clauses 19 to 27.
[0168] Clause 38. A computer-readable medium comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of Clauses 19 to 27.
[0169] Clause 39. A computer-readable storage medium comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of Clauses 19 to 27.
[0170] Clause 40. A computer program comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of Clauses 19 to 27.
[0171] Clause 41. An apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory and execute the instructions such that the apparatus at least: during a media streaming session, receives media content delivered by an application server via at least one network; receives an indication of network congestion from the at least one network without the at least one network dropping packets of the media content; determines network congestion information based on the indication of network congestion received from the at least one network; and reports the network congestion information to the application server for execution of at least one congestion control operation for the media streaming session based on a network congestion level based on the network congestion information.
[0172] Clause 42. The apparatus according to Clause 41, wherein the media content is encoded in segments, wherein the at least one processing circuitry is configured to execute the instructions such that the apparatus further requests segments of the media content, and wherein the apparatus is configured to receive the media content including the apparatus being configured to receive the segments.
[0173] Clause 43. The apparatus according to Clause 42, wherein requesting the segment of the media content by the apparatus includes requesting from the application server a segment associated with a first bit rate, and wherein receiving the segment by the apparatus includes receiving at least one corresponding segment in place of at least one segment of the segments associated with the first bit rate, the at least one corresponding segment being associated with a second bit rate lower than the first bit rate.
[0174] Clause 44. The apparatus according to Clause 42 or Clause 43, wherein the segment of the media content is requested from the application server before at least one segment is requested, and the at least one congestion control operation is performed to transcode the at least one segment to reduce the bit rate of the at least one segment, and wherein the apparatus is configured to receive the segment including the apparatus is configured to receive the transcoded at least one segment.
[0175] Clause 45. An apparatus according to any one of Clauses 42 to 44, wherein the segment is requested at a first bit rate, and wherein the at least one processing circuitry is configured to execute the instructions such that the apparatus further: receives, at least from the application server, a notification regarding the network congestion level; and, based on the notification, switches to requesting at least one segment of the segments at a second bit rate lower than the first bit rate.
[0176] Clause 46. An apparatus according to any one of Clauses 41 to 45, comprising a list of information describing representations of the media content associated with different bit rates being received during the initialization of the media session, and wherein the at least one processing circuitry is configured to execute the instructions such that the apparatus also receives a notification from the application server regarding the network congestion level, the notification including an updated list in which at least one representation of the representations having a higher bit rate among the different bit rates is removed from the list.
[0177] Clause 47. An apparatus comprising: components for receiving media content delivered by an application server via at least one network during a media streaming session; components for receiving an indication of network congestion from the at least one network without the at least one network dropping packets of the media content; components for determining network congestion information based on the network congestion indication received from the at least one network; and components for reporting the network congestion information to the application server for execution of at least one congestion control operation for the media streaming session based on a network congestion level based on the network congestion information.
[0178] Clause 48. The apparatus of Clause 47, wherein the media content is encoded in segments, wherein the apparatus further includes a component for requesting segments of the media content, and wherein the component for receiving the media content includes a component for receiving the segments.
[0179] Clause 49. The apparatus according to Clause 48, wherein the component for requesting the segment of the media content includes a component for requesting the segment associated with the first bit rate from the application server associated with a lower second bit rate, and wherein the component for receiving the segment includes a component for receiving at least one corresponding segment in place of at least one segment of the segments associated with the first bit rate, the at least one corresponding segment being associated with a second bit rate lower than the first bit rate.
[0180] Clause 50. The apparatus according to Clause 48 or Clause 49, wherein the segment of the media content is requested from the application server before at least one segment is requested, and the at least one congestion control operation is performed to transcode the at least one segment to reduce the bit rate of the at least one segment, and wherein the component for receiving the segment includes a component for receiving the transcoded at least one segment.
[0181] Clause 51. An apparatus according to any one of Clauses 48 to 50, wherein the segment is requested at a first bit rate, and wherein the apparatus further comprises: components for receiving a notification from the application server regarding the network congestion level; and components for switching to requesting at least one segment of the segments at a second bit rate lower than the first bit rate based on the notification.
[0182] Clause 52. An apparatus according to any one of Clauses 47 to 51, comprising a list of information describing representations of the media content associated with different bit rates being received during the initialization of the media session, and wherein the apparatus further comprises a component for receiving a notification from the application server regarding the network congestion level, the notification comprising an updated list in which at least one of the representations having a higher bit rate among the different bit rates is removed from the list.
[0183] Clause 53. A method comprising: receiving media content delivered by an application server over at least one network during a media streaming session; receiving an indication of network congestion from the at least one network if the at least one network does not drop packets of the media content; determining network congestion information based on the network congestion indication received from the at least one network; and reporting the network congestion information to the application server for execution of at least one congestion control operation for the media streaming session based on a network congestion level based on the network congestion information.
[0184] Clause 54. The method according to Clause 53, wherein the media content is encoded in a segment, wherein the method further includes requesting a segment of the media content, and wherein receiving the media content includes receiving the segment.
[0185] Clause 55. The method according to Clause 54, wherein requesting the segment of the media content includes requesting a segment associated with a first bitrate from the application server, and wherein receiving the segment includes receiving at least one corresponding segment in place of at least one of the segments associated with the first bitrate, the at least one corresponding segment being associated with a second bitrate lower than the first bitrate.
[0186] Clause 56. The method according to Clause 54 or Clause 55, wherein the segment of the media content is requested from the application server before at least one segment is requested, and the at least one congestion control operation is performed to transcode the at least one segment to reduce the bit rate of the at least one segment, and wherein receiving the segment includes receiving the transcoded at least one segment.
[0187] Clause 57. The method according to any one of Clauses 54 to 56, wherein the segment is requested at a first bit rate, and wherein the method further comprises: receiving a notification from the application server regarding the network congestion level; and, based on the notification, switching to requesting at least one segment of the segments at a second bit rate lower than the first bit rate.
[0188] Clause 58. The method according to any one of Clauses 53 to 57, comprising receiving a list of information describing representations of the media content associated with different bit rates during the initialization of the media session, and wherein the method further comprises receiving a notification from the application server regarding the network congestion level, the notification including an updated list in which at least one of the representations having a higher bit rate among the different bit rates is removed from the list.
[0189] Clause 59. A computer-readable storage medium, the computer-readable storage medium being non-transitory and having instructions stored therein, the instructions being responsive to execution by at least one processing circuitry system to cause means to at least: during a media streaming session, receive media content delivered by an application server via at least one network; receive an indication of network congestion from the at least one network without the at least one network discarding packets of the media content; determine network congestion information based on the indication of network congestion received from the at least one network; and report the network congestion information to the application server for execution of at least one congestion control operation for the media streaming session based on a network congestion level based on the network congestion information.
[0190] Clause 60. A computer-readable storage medium according to Clause 59, wherein the media content is encoded in segments, wherein the computer-readable storage medium has additional instructions stored therein, the additional instructions being executed by the at least one processing circuitry system to cause the device to further request segments of the media content, and wherein being caused by the device to receive the media content includes being caused by the device to receive the segments.
[0191] Clause 61. A computer-readable storage medium according to Clause 60, wherein the means of requesting a segment of the media content includes the means of requesting a segment associated with a first bit rate from the application server, and wherein the means of receiving the segment includes the means of receiving at least one corresponding segment in place of at least one of the segments associated with the first bit rate, the at least one corresponding segment being associated with a second bit rate lower than the first bit rate.
[0192] Clause 62. A computer-readable storage medium according to Clause 60 or Clause 61, wherein the segment of the media content is requested from the application server before at least one segment is requested, and the at least one congestion control operation is performed to transcode the at least one segment to reduce the bit rate of the at least one segment, and wherein the means being made to receive the segment includes the means being made to receive the transcoded at least one segment.
[0193] Clause 63. A computer-readable storage medium according to any one of Clauses 60 to 62, wherein the segment is requested at a first bit rate, and wherein the computer-readable storage medium has additional instructions stored therein, the additional instructions being executed by the at least one processing circuitry system such that the apparatus further: receives a notification from the application server regarding the network congestion level; and, based on the notification, switches to requesting at least one segment of the segments at a second bit rate lower than the first bit rate.
[0194] Clause 64. A computer-readable storage medium according to any one of Clauses 59 to 63, comprising a list of information describing representations of the media content associated with different bit rates received during the initialization of the media session, and wherein the computer-readable storage medium has additional instructions stored therein, the additional instructions being executed by the at least one processing circuitry system to cause the apparatus to also receive a notification from the application server regarding the network congestion level, the notification comprising an updated list in which at least one representation having a higher bit rate among the different bit rates is removed from the list.
[0195] Clause 65. An apparatus comprising components for performing the method according to any one of Clauses 53 to 58.
[0196] Clause 66. A computer-readable medium comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of Clauses 53 to 58.
[0197] Clause 67. A computer-readable storage medium comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of Clauses 53 to 58.
[0198] Clause 68. A computer program comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of Clauses 53 to 58.
[0199] Clause 69. An apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory and execute the instructions such that the apparatus at least: initiates a media streaming session for receiving media content delivered by an application server via at least one network; accesses network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from the at least one network without dropping packets transmitted through the at least one network; and performs at least one congestion control operation for the media streaming session based on the network congestion information.
[0200] Clause 70. The apparatus according to Clause 69, wherein the apparatus is configured to access the network congestion information includes the apparatus being configured to perform a network-assisted session with an application function, in which the network congestion information is requested and received from the application function.
[0201] Clause 71. The apparatus according to Clause 69 or Clause 70, wherein the apparatus is configured to access the network congestion information, the apparatus is configured to: receive an indication of network congestion from the at least one network during the media streaming session; and determine the network congestion information based on the indication of network congestion.
[0202] Clause 72. An apparatus according to any one of Clauses 69 to 71, wherein the media content is encoded in segments, wherein the at least one processing circuitry is configured to execute the instructions such that the apparatus further at least: requests a segment of the media content associated with a first bit rate; and receives the segment of the media content, and wherein performing the at least one congestion control operation includes switching to requesting at least one segment of the segments at a second bit rate lower than the first bit rate based on the network congestion information.
[0203] Clause 73. The apparatus according to any one of Clauses 69 to 72, wherein the apparatus is configured to perform the at least one congestion control operation comprising: the apparatus being configured to request the establishment of a Packet Data Unit (PDU) session to carry the media streaming session based on the network congestion information.
[0204] Clause 74. The apparatus according to Clause 73, wherein requesting the establishment of the PDU session comprises the apparatus being made to: send a PDU session establishment request including the network congestion information, the PDU session establishment request being sent to a session management function for the creation of a PDU session establishment acceptance message based on quality of service rules according to the network congestion information; and receive the PDU session establishment acceptance message from the session management function.
[0205] Clause 75. An apparatus according to any one of Clauses 69 to 74, wherein the media streaming session is carried on a packet data unit (PDU) session, and the apparatus is configured to perform the at least one congestion control operation including the apparatus being configured to request a modification to the PDU session based on the network congestion information.
[0206] Clause 76. The apparatus according to Clause 75, wherein requesting modification of the PDU session includes the apparatus being made to send a PDU session modification request including network congestion information, the PDU session modification request being sent to a session management function for initiating a PDU session modification process based on the network congestion information or for rejecting the PDU session modification request.
[0207] Clause 77. An apparatus according to any one of Clauses 69 to 76, wherein the media streaming session is carried on a Packet Data Unit (PDU) session, and the apparatus is caused to perform the at least one congestion control operation including the apparatus being caused to request the release of the PDU session based on the network congestion information.
[0208] Clause 78. An apparatus comprising: components for initiating a media streaming session for receiving media content delivered by an application server via at least one network; components for accessing network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from the at least one network without dropping packets transmitted through the at least one network; and components for performing at least one congestion control operation for the media streaming session based on the network congestion information.
[0209] Clause 79. The apparatus according to Clause 78, wherein the component for accessing the network congestion information includes a component for performing a network-assisted session with an application function, in which the network congestion information is requested and received from the application function.
[0210] Clause 80. The apparatus according to Clause 78 or Clause 79, wherein the component for accessing the network congestion information includes: a component for receiving an indication of network congestion from the at least one network during the media streaming session; and a component for determining the network congestion information based on the indication of network congestion.
[0211] Clause 81. An apparatus according to any one of Clauses 78 to 80, wherein the media content is encoded in segments, wherein the apparatus further comprises: means for requesting segments of the media content associated with a first bit rate; and means for receiving the segments of the media content, and wherein the means for performing the at least one congestion control operation includes means for switching to requesting at least one segment of the segments at a second bit rate lower than the first bit rate based on the network congestion information.
[0212] Clause 82. The apparatus according to any one of Clauses 78 to 81, wherein the component for performing the at least one congestion control operation includes a component for requesting the establishment of a Packet Data Unit (PDU) session to carry the media streaming session based on the network congestion information.
[0213] Clause 83. The apparatus according to Clause 82, wherein the component for requesting the establishment of the PDU session comprises: a component for sending a PDU session establishment request including the network congestion information, the PDU session establishment request being sent to a session management function for the creation of a PDU session establishment acceptance message based on quality of service rules according to the network congestion information; and a component for receiving the PDU session establishment acceptance message from the session management function.
[0214] Clause 84. The apparatus according to any one of Clauses 78 to 83, wherein the media streaming session is carried on a packet data unit (PDU) session, and the component for performing the at least one congestion control operation includes a component for requesting a modification of the PDU session based on the network congestion information.
[0215] Clause 85. The apparatus according to Clause 84, wherein the component for requesting modification of the PDU session includes a component for sending a PDU session modification request including network congestion information, the PDU session modification request being sent to a session management function for initiating a PDU session modification process based on the network congestion information or for rejecting the PDU session modification request.
[0216] Clause 86. The apparatus according to any one of Clauses 78 to 85, wherein the media streaming session is carried on a packet data unit (PDU) session, and the component for performing the at least one congestion control operation includes a component for requesting the release of the PDU session based on the network congestion information.
[0217] Clause 87. A method comprising: initiating a media streaming session for receiving media content delivered by an application server over at least one network; accessing network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from the at least one network without dropping packets transmitted through the at least one network; and performing at least one congestion control operation for the media streaming session based on the network congestion information.
[0218] Clause 88. The method according to Clause 87, wherein accessing the network congestion information includes performing a network auxiliary session with an application function, in which the network congestion information is requested and received from the application function.
[0219] Clause 89. The method according to Clause 87 or Clause 88, wherein accessing the network congestion information comprises: receiving an indication of network congestion from the at least one network during the media streaming session; and determining the network congestion information based on the indication of network congestion.
[0220] Clause 90. The method of any one of Clauses 87 to 89, wherein the media content is encoded in segments, wherein the method further comprises: requesting a segment of the media content associated with a first bit rate; and receiving the segment of the media content, and wherein performing the at least one congestion control operation comprises switching to requesting at least one segment of the segments at a second bit rate lower than the first bit rate based on the network congestion information.
[0221] Clause 91. The method according to any one of Clauses 87 to 90, wherein performing the at least one congestion control operation comprises: requesting the establishment of a Packet Data Unit (PDU) session to carry the media streaming session based on the network congestion information.
[0222] Clause 92. The method according to Clause 91, wherein requesting the establishment of the PDU session comprises: sending a PDU session establishment request including the network congestion information, the PDU session establishment request being sent to a session management function for the creation of a PDU session establishment acceptance message based on quality of service rules according to the network congestion information; and receiving the PDU session establishment acceptance message from the session management function.
[0223] Clause 93. The method according to any one of Clauses 87 to 92, wherein the media streaming session is carried on a packet data unit (PDU) session, and performing the at least one congestion control operation includes requesting a modification to the PDU session based on the network congestion information.
[0224] Clause 94. The method according to Clause 93, wherein requesting modification of the PDU session includes sending a PDU session modification request including network congestion information, the PDU session modification request being sent to a session management function for initiating a PDU session modification process based on the network congestion information or for rejecting the PDU session modification request.
[0225] Clause 95. The method according to any one of Clauses 87 to 94, wherein the media streaming session is carried on a Packet Data Unit (PDU) session, and performing the at least one congestion control operation includes requesting the release of the PDU session based on the network congestion information.
[0226] Clause 96. A computer-readable storage medium, the computer-readable storage medium being non-transitory and having instructions stored therein, the instructions being responsive to execution by at least one processing circuitry system to cause means to at least: initiate a media streaming session for receiving media content delivered by an application server via at least one network; access network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from the at least one network without dropping packets transmitted through the at least one network; and perform at least one congestion control operation for the media streaming session based on the network congestion information.
[0227] Clause 97. The computer-readable storage medium according to Clause 96, wherein the means being caused to access the network congestion information includes the means being caused to perform a network-assisted session with an application function, in which the network congestion information is requested and received from the application function.
[0228] Clause 98. A computer-readable storage medium pursuant to Clause 96 or Clause 97, wherein the means being configured to access the network congestion information includes the means being configured to: receive an indication of network congestion from the at least one network during the media streaming session; and determine the network congestion information based on the indication of network congestion.
[0229] Clause 99. A computer-readable storage medium according to any one of Clauses 96 to 98, wherein the media content is encoded in segments, wherein the computer-readable storage medium has additional instructions stored therein, the additional instructions being responsive to execution by the at least one processing circuitry system to cause the means to further: request a segment of the media content associated with a first bit rate; and receive the segment of the media content, wherein performing the at least one congestion control operation includes switching to requesting at least one segment of the segments at a second bit rate lower than the first bit rate based on the network congestion information.
[0230] Clause 100. A computer-readable storage medium according to any one of Clauses 96 to 99, wherein the means is configured to perform the at least one congestion control operation comprising: the means being configured to request the establishment of a Packet Data Unit (PDU) session to carry the media streaming session based on the network congestion information.
[0231] Clause 101. The computer-readable storage medium according to Clause 100, wherein the means is configured to request the establishment of the PDU session comprises the means being configured to: send a PDU session establishment request including the network congestion information, the PDU session establishment request being sent to a session management function for the creation of a PDU session establishment acceptance message based on quality of service rules according to the network congestion information; and receive the PDU session establishment acceptance message from the session management function.
[0232] Clause 102. A computer-readable storage medium according to any one of Clauses 96 to 101, wherein the media streaming session is carried on a packet data unit (PDU) session, and the means being caused to perform the at least one congestion control operation includes the means being caused to request a modification to the PDU session based on the network congestion information.
[0233] Clause 103. The computer-readable storage medium according to Clause 102, wherein the means being configured to request modification of the PDU session includes the means being configured to send a PDU session modification request including network congestion information, the PDU session modification request being sent to a session management function for initiating a PDU session modification process based on the network congestion information or for rejecting the PDU session modification request.
[0234] Clause 104. A computer-readable storage medium according to any one of Clauses 96 to 103, wherein the media streaming session is carried on a packet data unit (PDU) session, and the means being caused to perform the at least one congestion control operation includes the means being caused to request the release of the PDU session based on the network congestion information.
[0235] Clause 105. An apparatus comprising components for performing the method according to any one of Clauses 87 to 95.
[0236] Clause 106. A computer-readable medium comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of Clauses 87 to 95.
[0237] Clause 107. A computer-readable storage medium comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of Clauses 87 to 95.
[0238] Clause 108. A computer program comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of Clauses 87 to 95.
[0239] Benefiting from the teachings presented in the foregoing description and related drawings, those skilled in the art to which this disclosure pertains will conceive of many modifications and other implementations of the disclosure set forth herein. Therefore, it should be understood that this disclosure is not limited to the specific implementations disclosed, and that modifications and other implementations are intended to be included within the scope of the appended claims. Furthermore, although the foregoing description and related drawings describe exemplary implementations in the context of certain example combinations of elements and / or functions, it should be understood that different combinations of elements and / or functions can be provided by alternative implementations without departing from the scope of the appended claims. In this regard, for example, as set forth in some of the appended claims, combinations of elements and / or functions different from those explicitly described above can also be contemplated. Although specific terms are used herein, they are used only in a general and descriptive sense and not for limiting purposes.
Claims
1. An apparatus comprising: A component used to initiate a media streaming session for receiving media content delivered by an application server over at least one network; A component for accessing network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from at least one network without dropping packets transmitted through at least one network; as well as A component for performing at least one congestion control operation for the media streaming session based on the network congestion information.
2. The apparatus of claim 1, wherein the component for accessing the network congestion information includes a component for performing a network-assisted session with an application function, in which the network congestion information is requested and received from the application function.
3. The apparatus of claim 1 or claim 2, wherein the component for accessing the network congestion information comprises: A component for receiving an indication of network congestion from the at least one network during the media streaming session; as well as Components for determining network congestion information based on the indication of network congestion.
4. The apparatus according to any one of claims 1 to 3, wherein the media content is encoded in segments, wherein the apparatus further comprises: A component for requesting a segment of the media content associated with a first bit rate; as well as A component for receiving the segment of the media content, and The component for performing the at least one congestion control operation includes a component for switching to requesting at least one segment of the segments at a second bit rate lower than the first bit rate based on the network congestion information.
5. The apparatus according to any one of claims 1 to 4, wherein the component for performing the at least one congestion control operation includes a component for requesting the establishment of a packet data unit (PDU) session to carry the media streaming session based on the network congestion information.
6. The apparatus of claim 5, wherein the component for requesting the establishment of the PDU session comprises: A component for sending a PDU session establishment request including the network congestion information, the PDU session establishment request being sent to a session management function for the creation of a PDU session establishment acceptance message based on quality of service rules according to the network congestion information; as well as A component for receiving the PDU session establishment acceptance message from the session management function.
7. The apparatus according to any one of claims 1 to 6, wherein the media streaming session is carried on a packet data unit (PDU) session, and the component for performing the at least one congestion control operation includes a component for requesting a modification of the PDU session based on the network congestion information.
8. The apparatus of claim 7, wherein the component for requesting modification of the PDU session includes a component for sending a PDU session modification request including the network congestion information, the PDU session modification request being sent to a session management function for initiating a PDU session modification process based on the network congestion information or for rejecting the PDU session modification request.
9. The apparatus according to any one of claims 1 to 8, wherein the media streaming session is carried on a packet data unit (PDU) session, and the component for performing the at least one congestion control operation includes a component for requesting the release of the PDU session based on the network congestion information.
10. A method comprising: Initiate a media streaming session to receive media content delivered by the application server over at least one network; Access network congestion information for the media streaming session, the network congestion information being determined based on an indication of network congestion received from at least one network without dropping packets transmitted through at least one network; as well as At least one congestion control operation is performed on the media streaming session based on the network congestion information.
11. The method of claim 10, wherein accessing the network congestion information includes performing a network assistance session with an application function, in which the network congestion information is requested and received from the application function.
12. The method of claim 10 or claim 11, wherein accessing the network congestion information comprises: During the media streaming session, receive an indication of network congestion from the at least one network; as well as The network congestion information is determined based on the indication of network congestion.
13. The method according to any one of claims 10 to 12, wherein the media content is encoded in segments, wherein the method further comprises: Request a segment of the media content associated with the first bitrate; as well as Receive the segment of the media content, and Performing the at least one congestion control operation includes switching to requesting at least one of the segments at a second bit rate lower than the first bit rate based on the network congestion information.
14. The method according to any one of claims 10 to 13, wherein performing the at least one congestion control operation comprises: The network congestion information is used to request the establishment of a Packet Data Unit (PDU) session to carry the media stream transmission session.
15. The method of claim 14, wherein requesting the establishment of the PDU session comprises: A PDU session establishment request including the network congestion information is sent to the session management function for the creation of a PDU session establishment acceptance message based on the quality of service rules according to the network congestion information. as well as Receive the PDU session establishment acceptance message from the session management function.
16. The method according to any one of claims 10 to 15, wherein the media streaming session is carried on a packet data unit (PDU) session, and performing the at least one congestion control operation comprises: The network congestion information is used to request modifications to the PDU session.
17. The method of claim 16, wherein requesting modification of the PDU session comprises: A PDU session modification request including the network congestion information is sent to the session management function for initiating a PDU session modification process based on the network congestion information or for rejecting the PDU session modification request.
18. The method of any one of claims 10 to 17, wherein the media streaming session is carried on a packet data unit (PDU) session, and performing the at least one congestion control operation includes requesting the release of the PDU session based on the network congestion information.
19. A computer program comprising instructions that, in response to execution by at least one processing circuitry system, cause a device to perform the method according to any one of claims 10 to 18.