System and method for assessing quality of experience of linear media channels - Patents.com
Patent Information
- Application Number
- JP2023505867
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-08-19
- Publication Date
- 2025-04-25
- Estimated Expiration
- 2040-08-19
AI Technical Summary
Existing systems struggle to accurately evaluate the quality of experience for linear media channels on mobile platforms, particularly due to variability in user media clients' hardware and software, privacy restrictions, and inconsistent performance data collection.
Implementing a virtual media client onboard the mobile platform to emulate various user devices, collect performance data, and a scoring subsystem to generate quality of experience scores, ensuring comprehensive and reliable evaluation.
Provides accurate and unified quality of experience assessment by overcoming hardware and software inconsistencies, enabling effective performance monitoring and improvement of communication services.
Smart Images

Figure 00000029_0000 
Figure 00000030_0000 
Figure 00000031_0000
Abstract
Description
[Background technology]
[0001] FIELD OF THE DISCLOSURE This disclosure relates to quality of experience assessment of linear media channels, and more particularly to systems and methods for quality of experience assessment of linear media channels for mobile platforms, including aircraft. Summary of the Invention
[0002] Described herein are systems, devices and methods for monitoring and / or managing the transmission of data on moving platforms, including vehicles.
[0003] In one embodiment, a communication system is described that includes an on-board server located onboard a mobile platform and a remote server located outside the mobile platform. The remote server is configured to generate one or more linear media channels for use by the on-board server. The communication system further includes a virtual media client located on-board the mobile platform. The virtual media client is configured to receive the linear media channels from the on-board server and to transmit performance data to the on-board server. The on-board server is configured to receive one or more media requests from a plurality of user media clients on-board the mobile platform. The one or more media requests specify one or more linear media channels. The on-board server is further configured to receive the one or more linear media channels from the remote server, provide the one or more linear media channels to the plurality of user media clients in accordance with the received one or more media requests, provide at least a first linear media channel of the one or more media channels to the virtual media client, and receive a first set of performance data associated with the first linear media channel from the virtual media client.
[0004] For purposes of summarizing the disclosure, certain aspects, advantages, and novel features have been described herein. It is to be understood that not all such advantages may necessarily be achieved in accordance with any particular embodiment. Thus, the disclosed embodiments may be practiced in a manner that achieves or optimizes an advantage or group of advantages as taught herein, without necessarily achieving other advantages that may be taught or suggested herein. [Brief description of the drawings]
[0005] Various embodiments are illustrated in the accompanying drawings for purposes of illustration and should not be construed as limiting the scope of the present disclosure in any way. In addition, various features of different disclosed embodiments can be combined to form additional embodiments that are part of this disclosure. [Figure 1] 1 illustrates a system for managing the transmission of data between a moving platform, such as a vehicle, and / or a server onboard the moving platform and a ground server, according to one or more embodiments. [Diagram 2] 1 illustrates a terrestrial server according to one or more embodiments. [Diagram 3] 1 illustrates an in-flight monitoring system according to one or more embodiments. [Figure 4] 1 illustrates a process for on-board and / or ground performance evaluation of communication services provided on-board a mobile platform according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0006] The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the claimed invention. In certain implementations, the present disclosure relates to systems, devices and methods for managing and / or transferring system log data relating to passenger services (e.g., provided on board a mobile platform) to and / or from an on-board monitoring system of a mobile platform.
[0007] overview The present disclosure provides devices, systems, and processes for evaluation of quality of experience data for a communication system configured to provide linear media channels and / or other media data to media clients onboard a moving platform (e.g., a vehicle). "Quality of experience" data may refer to any data representative of a measurement of communication service performance with respect to the quality of user experience of one or more linear media channels, and may include, for example, start-up data and / or rebuffer data. Start-up data may include any data indicative of an amount of time required to start streaming media data at a media client. Rebuffer data may include any data indicative of a number of rebuffer events (rebuffer count) at a media client during streaming of media data, and / or indicative of a total time of rebuffer events (rebuffer duration). A rebuffer event may include an interruption in streaming of media data for the performance of a buffering operation, and may occur at any time during streaming of media data as needed. In some cases, a rebuffer event may be caused by a failed and / or slow transmission of media data between devices.
[0008] A "linear media channel" may refer to any real-time broadcast of video and / or audio content, and may include, for example, live television content. A linear media channel may include scheduled streams of content. In response to a user selecting a linear media channel, the user (i.e., the user's media client) may be caused to join the linear media channel and view the stream of content currently being provided by the linear media channel. For example, the stream of content may be simultaneously streamed to the user's media client and any other media clients that have joined the linear media channel. Thus, joining a linear media channel may not cause the user's media client to start streaming the media content from a default starting point (e.g., the beginning of a movie), but instead, to start streaming at a point that is currently being streamed to other devices.
[0009] In some embodiments, the linear media channel may be broadcast from a remote (e.g., terrestrial) computing device (e.g., a server) to a computing device (e.g., a server) onboard the mobile platform. The onboard computing system of the mobile platform may be further configured to receive various data transmissions from the remote server, and the remote server may be configured to receive various data transmissions from the onboard computing system of the mobile platform. The received data may be collected, aggregated, filtered, analyzed, and / or otherwise processed at the onboard and / or terrestrial computing system of the mobile platform.
[0010] Linear media channels and / or other media content may be configured for streaming on various media clients. As used herein, a "media client" may refer to any device configured to transmit and / or receive media data, access and / or play various media content, and / or transmit performance metrics (including quality of experience performance data), and may include, for example, personal electronic devices (PEDs) such as smart phones, laptop computers, and tablets, flight attendant devices, entertainment systems (e.g., seatback entertainment systems in the case of aircraft), and / or virtual media clients. As used herein, the term "virtual media client" may refer to a dedicated media client specifically configured for use in streaming media content and / or transmitting quality of experience data onboard a mobile platform. A virtual media client may be configured to connect to a computing system (e.g., an onboard server) onboard a mobile platform via wired and / or wireless connections. As used herein, the term "user media client" may refer to any media client (e.g., a PED) that is not a virtual media client. In some embodiments, a virtual media client may be configured to run and / or emulate multiple operating systems, software applications, and / or media systems.
[0011] In some embodiments, the virtual media client may be located on-board the vehicle while the vehicle is moving. In this manner, the virtual media client may provide an accurate and / or representative example of the streaming quality experienced by a user media client also located on-board the vehicle. For example, the virtual media client and the user media client on-board the vehicle may be located on the same side of a satellite communication link. Thus, any transmission-related problems experienced by the user media client may also be experienced by the virtual media client.
[0012] The virtual media client can advantageously enable access to performance data onboard the vehicle even when the user media client onboard the vehicle is unable to provide performance data for any of a variety of reasons. For example, the user media client may have privacy restrictions that prevent performance data from being collected from the user media client. In such cases, the virtual media client can act as a proxy for the user media client, since performance data collected from the virtual media client may be an accurate representation of the quality of experience at the user media client.
[0013] Various performance data associated with communication services onboard a mobile platform may be collected and / or analyzed for various purposes, such as to improve and / or maintain performance of the communication services. In some embodiments, the collected performance data may be analyzed to generate one or more quality of experience scores. The performance data may include various raw data collected from media clients onboard the vehicle (e.g., startup delay and / or rebuffer data). The performance data may be transmitted from one or more virtual media clients and / or user media clients onboard the vehicle and may be collected by one or more scoring subsystems located onboard the vehicle (e.g., as part of an onboard server) and / or remotely located from the vehicle (e.g., as part of a ground server). The scoring subsystems may be configured to analyze the performance data to generate one or more quality of experience scores associated with the performance data. For example, the scoring subsystems may be configured to apply one or more thresholds to the performance data to determine whether a value indicated in the performance data meets, exceeds, or falls below the one or more thresholds. In some embodiments, the scoring subsystem may be configured to analyze values represented in the performance data with an associated time component, which may involve using a timestamp and / or other time value associated with the performance data value. For example, the scoring subsystem may be configured to determine a number of buffer / rebuffer events over a period of time (e.g., 1 minute, 30 minutes) and / or compare the determined number to a threshold number of buffer / rebuffer events over a period of time. As another example, the scoring subsystem may be configured to determine a total rebuffering duration of a rebuffer event and compare it to a threshold duration.
[0014] In some cases, performance data may be collected from PEDs and / or other media clients used by passengers and / or crew on board the mobile platform, for example, during the movement (e.g., flight) of the mobile platform. However, the performance of the communication service in some media clients may be at least partially affected by the software and / or hardware of the media client. For example, a low-end media client and / or a media client running an older operating system may provide results indicative of relatively poor performance compared to a high-end media client and / or a media client running a newer operating system. The relatively poor performance may be caused by various factors (e.g., memory, processing power, etc.) in the media client and may not be indicative of the performance of the communication service in general (e.g., provided by a ground server and / or an in-flight server). Furthermore, some software and / or hardware may be more suitable for a particular communication system than others. For example, a communication system may be designed for use with iOS devices and may experience more performance issues than Android devices. Thus, it would be advantageous for the collection of performance metrics for communication services provided on board the mobile platform to have a unified baseline measurement process via one or more virtual media clients.
[0015] Further, in some cases, a user media client may prevent the transmission of performance data. For example, a user media client may utilize privacy software that may not allow performance data to be shared with one or more servers and / or the scoring subsystem. In such cases, a virtual media client may provide performance data on behalf of a user media client that is unable to provide performance data. In some embodiments, only performance data from one or more virtual media clients may be collected by the scoring subsystem for generation of quality of experience data. For example, performance data transmitted by one or more user media clients may be ignored and / or actively excluded from analysis by the scoring subsystem. In this manner, the generated quality of experience data may not reflect performance data from user media clients that may be adversely affected by operating system type, operating system conditions, privacy restrictions, and / or various other factors.
[0016] The communication services provided onboard the mobile platform may be provided by various communication system devices located onboard the mobile platform and / or external to the mobile platform. Various linear media channels may be transmitted through the use of the Internet and / or other networks. The Internet and / or other network services may be provided through the use of modems and / or other devices onboard the mobile platform that may communicate with satellites and / or other devices external to the mobile platform. The linear media channels for presentation on the vehicle or other mobile platform may originate from heterogeneous remote sources, such as remote (e.g., terrestrial) servers. In the case of the inboard content presentation platform of the vehicle and / or other mobile platform, a server may be installed locally, and such server may receive content for presentation as one or more data transfer packages from one or more remote media servers. For example, the inboard server may be configured to pull in various content services and solutions together to provide a desired end user experience for passengers onboard the vehicle or other mobile platform. The linear media channels may be received from one or more terrestrial servers, which may receive different types of content items from different content sources.
[0017] The one or more servers can be configured to provide data, including linear media channels and / or interface data, to the media clients. The one or more servers can be located inside the vehicle (e.g., on an airplane) and / or outside the vehicle (e.g., on the ground). In some embodiments, a server on the ground and / or otherwise outside the vehicle can be configured to establish network communications with one or more servers onboard the vehicle. Although some embodiments described herein may distinguish between servers onboard the vehicle and servers not onboard the vehicle, some functions performed by such servers may be interchangeable and / or executable in both and / or either servers.
[0018] Network Overview In some implementations, the present disclosure provides systems, processes, and devices that provide an evaluation of a quality of experience associated with a communication service provided onboard a mobile platform (e.g., a vehicle). FIG. 1 illustrates a system 100 for managing the transmission of data between a mobile platform 105, such as a vehicle, and / or a server 120 onboard the mobile platform 105 and a ground server 130, according to one or more embodiments. Various data may be stored in a ground data store 140 and / or an onboard data store 170 onboard the mobile platform 105. The types of data stored in the ground server 130 and / or the mobile platform 105 are described in further detail in FIG. 2 and FIG. 3. The ground data store 140 and / or the onboard data store 170 may comprise non-volatile data storage.
[0019] System 100 includes on-board control circuitry 121 and / or virtual media client 125 that are installed on and / or disposed on or within a moving platform 105, such as an aircraft, cruise ship, automobile, or other vehicle. Although virtual media client 125 is shown as part of on-board server 120, virtual media client 125 may instead be implemented in another on-board component outside of on-board server 120. In some embodiments, virtual media client 125 may be configured to communicate with on-board server 120 via a wired and / or wireless connection.
[0020] Although certain embodiments are disclosed herein in the context of an aircraft or other vehicle, it should be understood that the principles disclosed herein may be applicable to any suitable or desired mobile platform or vehicle. The onboard server 120 may be configured to transmit, receive, and / or otherwise manage data onboard the mobile platform 105. For example, the onboard server 120 may be configured to transmit media data to various onboard communication service devices. A "communication service device" may include any device configured to facilitate the provision of passenger services on the mobile platform and may include one or more modems, transceivers, antennas, WAPs, and / or other onboard service devices. In some embodiments, the onboard server 120 may be configured to receive and / or filter performance data transmitted from media service devices and / or media clients, including virtual media client 125, onboard the mobile platform 105.
[0021] The performance data received from various communication service devices and / or media clients onboard the mobile platform 105 is related to the communication services provided on the mobile platform 105. In some embodiments, the performance data may include performance data values related to any of a variety of performance data (e.g., quality of experience data), which may include start-up data and / or rebuffer data, among others.
[0022] The ground server 130 and / or the on-board server 120 may comprise a scoring subsystem configured to analyze performance data received from one or more communication service devices and / or media clients. In some embodiments, the scoring subsystem may be configured to receive the performance data, adjust the data (e.g., associate the performance data with the time period during which the performance data was generated), and / or calculate one or more quality of experience scores (e.g., by comparing the performance data and / or the adjusted performance data to various thresholds). The scoring subsystem may be located on-board the vehicle 105 and / or may be located external to the vehicle 105 (e.g., on the ground). In some embodiments, a first scoring subsystem may be located on-board the vehicle 105 (e.g., as part of the on-board server 120) and a second scoring subsystem may be located external to the vehicle 105 (e.g., as part of the ground server 130). In some embodiments, the ground-based scoring subsystem may be configured to aggregate performance data from multiple vehicles and / or compare performance data from multiple vehicles to identify vehicles experiencing problems. For example, if performance data from a first vehicle 105 in the beam of the satellite 110 indicates good performance while performance data from a second vehicle in the beam of the satellite 110 indicates poor performance, the scoring subsystem may be configured to determine that the problem exists with the second vehicle and not the satellite 110. In some cases, the system 100 may include at least a scoring subsystem on the terrestrial server 130 to utilize terrestrial computing resources.
[0023] In some embodiments, acquisition of various data (e.g., performance data, requirements data, etc.) is performed at least in part through a network connection external to the vehicle 105, such as through a satellite network 112 connection and / or another type of network connection 123 (e.g., Wi-Fi or other network connection) to the Internet or other network 122. The network 112 connection may include a communication path between the satellite 110 and a gateway 115. The gateway 115 may be in data communication with the satellite 110 as well as the network 122 and thereby with the terrestrial server 130. The mobile platform 105 may be configured to receive forward downlink signals from the satellite access network 112, including the satellite 110 and the gateway 115, and to transmit reverse uplink signals to the satellite-based access network 112 using the satellite 110 and the gateway 115.
[0024] Network 122 can be any type of network, including, for example, one or more of the Internet, an IP network, an intranet, a wide area network (WAN), a local area network (LAN), a virtual private network (VPN), a virtual LAN (VLAN), a fiber optic network, a cable network, a public switched telephone network (PSTN), a public switched data network (PSDN), a public land mobile network, a cellular network, and / or any other type of network supporting communications as described herein. Additionally, network 122 can include wired (e.g., copper and optical) and / or wireless (e.g., radio and microwave) connections.
[0025] 1 as an airplane, and certain embodiments are disclosed herein in the context of an airplane, a fleet of airplanes, and / or an airline, however, it should be understood that embodiments of the present disclosure are applicable to other types and / or groupings of mobile platforms and / or related entities.
[0026] As explained above, with respect to the mobile platform 105, the ground server 130 may represent a remote server. Although referred to herein as a ground server, the server 130 may be physically located and / or located at any physical location. The use of the term "ground" herein is for simplicity and convenience to indicate that the ground server 130 is not located on or at the mobile platform 105, but rather is located somewhere outside it. The ground server 130 may be understood in relation to the ground server 230 of FIG. 2, which may constitute an exemplary embodiment of the ground server 130 of FIG. 1. With respect to FIG. 1, various data (e.g., media content items) may be obtained by the mobile platform 105 from the ground server 130, such as via the network 122 or other ground stations, gateways, or other network nodes.
[0027] One or more users 114 (e.g., passengers, crew members) may be onboard the mobile platform 105 and may use one or more media clients 116 (e.g., PEDs, seatback entertainment systems, crew devices, etc.) to access communication services provided onboard the mobile platform 105. Through the communication services, the media clients 116 may be configured to transmit and / or receive performance data, media data, and / or request data.
[0028] Ground Server 2, the ground server 230 may comprise control circuitry 231 that may comprise any of a variety of components configured to perform any of a variety of functions. The ground server 230 may be configured to generate and / or transmit various linear media channels 203 (e.g., linear media channels) over the network 222 for use by a server onboard the mobile platform. In some embodiments, the ground server 230 may be configured to receive various data, including performance data 201 and / or request data 204, from the mobile platform over the network 222. The performance data 201 and / or request data 204 may relate to passenger services provided on a particular mobile platform (e.g., the mobile platform 105 of the system 100 described with respect to FIG. 1). The ground server 230 may comprise data storage 240 that may be combined with the ground server 230 into a single device or may be a different device external to the ground server 230.
[0029] The network 222 may comprise a wide area network, such as the Internet, accessed by the mobile platforms via a satellite communications network. Thus, the communications link between the ground server 230 and the remote mobile platforms is achieved via the Internet or other wide area network. The transmission and / or reception of data between the network 222 and the ground server 230 may be facilitated via a network interface 235 configured to establish a network connection between the network 222 and the ground server 230.
[0030] In some embodiments, the ground server 230 may comprise a data request manager 234 configured to manage incoming request data 204 from the mobile platform. Some request data 204 may include requests for linear media channels 203, including one or more linear media channels. In some embodiments, the request data 204 may be generated and / or transmitted from a server onboard the mobile platform in response to a received media request from a media client and / or an attempt to access a particular linear media channel 203 at a media client onboard the mobile platform. In other embodiments where the ground server 230 automatically transmits all linear media channels (broadcasts) regardless of the request data, the request data 204 may not be transmitted from a server onboard the mobile platform. The data request manager 234 may be configured to determine the content of the request data 204, including which linear media channels 203 may be identified and / or specified in the request data 204. In some embodiments, a server onboard the mobile platform (e.g., the onboard server 120 of FIG. 1) may be configured to aggregate received media requests to generate the request data 204. For example, aggregation may involve collecting media requests and / or removing duplicate media requests (eg, media requests that identify / specify the same linear media channel).
[0031] In some embodiments, the ground server 230 can be configured to transmit the linear media channels 203 via transmission beams. Each beam may be configured to cover a wide geographic area, with various mobile platforms entering and exiting the beams as they move (e.g., in the case of an aircraft, flight). In some embodiments, the beams generated by the ground server 230 can be configured to provide a specific set of linear media channels 203 to the mobile platforms in the beam, and / or specifically to the mobile platforms that are part of a given "beam group." In some cases, only the mobile platforms included in a particular beam group can be configured to receive the linear media channels 203 transmitted via a given beam. A server onboard the mobile platform can be configured to transmit request data 204 to request to be added to the beam group associated with the ground server 230.
[0032] The media data transmitted via the beam is available to any mobile platform within the beam and / or part of the beam group of the beam. For example, the ground server 230 may transmit a particular linear media channel (among other media data) in the beam. Any mobile platform within the geographic area of the beam and / or selectively included in the beam group associated with the beam may receive the particular linear media channel. In some embodiments, a mobile platform is required to request the particular linear media channel (or other linear media channels 203) before receiving the particular linear media channel. For example, the ground server 230 may be configured to transmit a first linear media channel (e.g., a live television channel) as part of a first beam. A mobile platform traveling within the ground server's beam may transmit request data 204 indicating a request to receive the first linear media channel from the ground server 230. In response to receiving the request, the data request manager 234 may be configured to add the mobile platform to a list of mobile platforms selected to receive the first linear media channel. Thus, the mobile platform may be configured to receive the first linear media channel in response to being selected at the ground server 230.
[0033] In some embodiments, the ground server 230 may comprise a media data manager 236 component configured to manage the transmission of the linear media channels 203 to the mobile platform. The linear media channels 203, including the linear media channels, are transmitted from the ground server 230 in response to request data 204 transmitted from the mobile platform. For example, if a media client onboard the mobile platform transmits a request to the onboard server for a linear media channel that is not currently provided by the onboard server, the onboard server may transmit the request data 204 to the ground server 230 to obtain access to the requested linear media channel. The media data manager 236 may be configured to transmit the requested linear media channel (e.g., as part of a beam) and / or may select the mobile platform that transmitted the request as one capable of receiving the requested linear media channel.
[0034] The media data manager 236 can be configured to transmit the linear media channels 203 as a multicast, which may include multiple linear media channels and / or other sets of linear media channels 203. In some embodiments, only requested linear media channels are included in the beam transmitted by the terrestrial server 230 and / or media data manager 236. If a linear media channel not included in the beam is requested in the request data 204, the linear media channel is added to the beam by the media data manager 236. In some embodiments, the terrestrial server 230 and / or media data manager 236 can be configured to include all linear media channels in the beam without requiring request data.
[0035] In some embodiments, the ground server 230 may be configured to obtain performance data 201 from the mobile platform (e.g., from a server onboard the mobile platform). The performance data 201 may include startup delay data, which may represent a time difference between a click event at the media client and the display of a first frame of the linear media channel 203 at the media client. The startup delay may be based at least in part on the processing capabilities of the media client, as various processing systems may require different amounts of decoding time. In some cases, the performance data 201 may be processed (e.g., compared to a threshold performance value) to generate one or more quality of experience scores associated with the performance data 201. For example, performance data 201 indicating a startup delay of more than five seconds may be annotated and / or stored in the data storage 240. The performance data 201 may also or alternatively include rebuffer data, which may represent a number of rebuffer events and / or a rebuffering duration experienced during streaming of the linear media channel 203 while the mobile platform is moving. In some embodiments, rebuffer count data indicating more than three rebuffer events per hour may be considered as poor performance.
[0036] In some embodiments, the performance data 201 may include user-provided feedback. For example, a user of a media client may be prompted to provide feedback indicating the quality of the user's and / or media client's experience while traveling on the mobile platform. At the ground server 230, the performance data 201 may be received related to all linear media channels 203 transmitted to the mobile platform and / or a subset of the linear media channels 203 transmitted to the mobile platform. For example, the mobile platform may only transmit performance data 201 related to a particular linear media channel or may transmit performance data 201 for all linear media channels.
[0037] The ground server 230 and / or the vehicle's on-board server may include a scoring subsystem 238 configured to receive the performance data 201 and / or generate one or more quality of experience (QOE) scores based on the received performance data 201. For example, the performance data 201 may include raw startup delay data and / or rebuffer data that may be compared to thresholds to determine an impact on the user experience. Generating a QOE score may involve combining, aggregating, adjusting, and / or comparing the performance data 201 as necessary to assess the quality of experience of a user on one or more vehicles.
[0038] The scoring subsystem 238 may be configured to aggregate performance data 201 generated by one or more user media clients (e.g., PEDs) onboard the vehicle and / or compare the aggregated performance data 201 received from the one or more user media clients to performance data 201 generated by one or more virtual media clients onboard the vehicle. In some embodiments, the comparison between the performance data 201 from the user media clients and the performance data 201 from the virtual media clients may be used to determine a reliability level of the one or more virtual media clients and / or to modify the one or more virtual media clients to increase the reliability level. For example, the scoring subsystem 238 may aggregate performance data 201 from multiple user media clients onboard the vehicle having a first operating software (e.g., iOS operating system) to generate a first QOE score of 95%. The scoring subsystem 238 may further receive performance data 201 from virtual media clients onboard the vehicle configured to run the first operating software to generate a second QOE score of 98%. The scoring subsystem 238 may be further configured to generate a reliability score for the virtual media client by subtracting the absolute difference between the first QOE score and the second QOE score from 100%, resulting in a reliability score of 100%-abs(95%-98%)=97%. The reliability score may indicate a level of accuracy of the performance data 201 generated by the virtual media client relative to the quality of the actual experience of the user media client on board the vehicle. The reliability score may indicate how representative the performance data from the virtual media client is of the performance data from the user media client. The performance score is used by the scoring subsystem 238 to determine when to perform training operations (discussed below) and when the training operations are successful.The scoring subsystem 238 may be configured to generate reliability scores for multiple operating systems (e.g., iOS and Android) across multiple flights, and the various reliability scores may be aggregated to generate an overall reliability score for the virtual media client. Various modifications may be made to the scoring subsystem 238 based on the reliability scores to improve the accuracy of calculating the QOE score when using only performance data from the virtual media client. In some embodiments, two or more instances of a particular operating system may be running sequentially and / or simultaneously on the virtual media client, and the scoring subsystem 238 may be configured to generate a reliability score for each instance of the operating system. The various generated reliability scores may be compared to determine the operating system and / or instance of the operating system that most closely reflects the quality of experience of the user media client on board the mobile platform.
[0039] The scoring subsystem 238 may be configured to generate QOE scores on a per passenger (e.g., per PED), per trip (e.g., per flight), per vehicle, per satellite beam, and / or per fleet (e.g., fleet of aircraft) basis. In some embodiments, the scoring subsystem 238 may be configured to generate QOE scores on a per passenger and per trip basis and / or may aggregate QOE scores across an entire vehicle and / or fleet of vehicles. For example, the scoring subsystem 238 may be configured to generate individual QOE scores from the performance data 201 received from each user media client and / or virtual media client on board one or more vehicles. Once each individual QOE score is generated, the scoring subsystem 238 may be configured to aggregate the individual QOE scores to generate an overall QOE score for all media clients on board a vehicle and / or all media clients on board multiple vehicles.
[0040] In some embodiments, the scoring subsystem 238 can be configured to calculate one or more QOE scores during and / or after a vehicle trip. For example, performance data 201 may be received from the vehicle once per trip, multiple times per trip (e.g., every two minutes), once per day, etc. Whenever performance data 201 is received, the scoring subsystem 238 can be configured to generate one or more QOE scores based on the received performance data 201.
[0041] The user media client and / or virtual media client onboard the vehicle may similarly be configured to generate and / or transmit performance data 201 in response to particular events and / or periodically. For example, a user media client may be configured to generate performance data 201 in response to initiation of streaming of one or more linear media channels 203 at the user media client. A virtual media client may be configured to generate performance data 201 in response to initiation of streaming and / or periodically (e.g., every two minutes).
[0042] In some embodiments, the scoring subsystem 238 can be configured to collect and / or aggregate the generated performance data 201 over any suitable time period in generating one or more QOE scores. The time period over which the performance data 201 is collected can be long enough that a sample of the performance data 201 can include one or more instances of a relatively infrequent event (e.g., a rebuffer event) to calculate a QOE score. For example, performance data 201 indicative of a rebuffer event occurring once every 30 minutes may result in a much better QOE score than performance data 201 indicative of a rebuffer event occurring once every 5 minutes. Thus, it may be advantageous to collect the performance data 201 over a sufficient time period (e.g., 30 minutes) to accurately determine the QOE. In some embodiments, the scoring subsystem 238 can be configured to determine a success level of some performance data 201 metrics (e.g., startup delay data, rebuffer count data, rebuffer duration data) over a given time period. For example, the scoring subsystem 238 can be configured to determine that a media client and / or group of media clients experienced less than a given number of rebuffering events per two hour period for a streamed linear media channel 99% of the time.
[0043] The scoring subsystem 238 can be configured to associate a set of performance data 201 with the device type of the media client reporting the set of performance data 201. For example, performance data 201 indicating a start-up delay of more than five seconds can be associated with the type of media client that reported and / or experienced the start-up delay. In this manner, the scoring subsystem 238 can be configured to determine whether poor performance can be attributed to a particular type of media client rather than a general communication service.
[0044] In some embodiments, the QOE score may be generated on-board the mobile platform based on performance data 201 collected at the mobile platform. The scoring subsystem 238 and / or similar devices on-board the mobile platform may be configured to generate a QOE score for all received performance data 201 and / or a subset of the received performance data 201 (e.g., performance data 201 exhibiting values above and / or below a given threshold and / or performance data 201 stored in data storage 240).
[0045] The QOE scores generated by the scoring subsystem 238 may be indicative of a user experience with the transmitted linear media channel 203 at the mobile platform. In some embodiments, the scoring subsystem 238 and / or other components of the ground server 230 may be configured to perform one or more alert functions in response to generating a relatively low QOE score and / or a QOE score below or above a threshold score value. The one or more alert functions may be configured for use in determining the root cause of the low score.
[0046] The manner in which the QOE score may be modeled may vary from embodiment to embodiment. In some embodiments, a database may be built in the data storage 240 of individual media clients that provide feedback of the QOE at the media client. The scoring subsystem 238 may be configured to collate the feedback against the QOE evaluation performed at the mobile platform. When a sufficient amount of data samples are obtained from the on-board media clients of the mobile platform (including, for example, the on-board virtual media client of the mobile platform), the performance data 201 in the database may be used as a basis for determining a QOE score based at least in part on the calculations performed at the ground server 230 and / or the on-board server and / or virtual media client of the mobile platform.
[0047] In some embodiments, the scoring subsystem 238 can be configured to be trained, for example, via a training operation using machine learning. For example, performance data 201 collected from a given media client can be compared to aggregate performance data 201 of a collection of media clients (e.g., all media clients on board a given mobile platform). Machine learning can be utilized to determine discrepancies between data for a particular media client and aggregate data for a group of media clients. For example, a first media client can report a startup delay of 3.2 seconds, while a group of media clients can report an aggregate startup delay of 3.4 seconds. The performance data 201 for the first media client can be measured against high-end media clients with modern and / or relatively powerful operating systems to determine how the first media client compares to the high-end media clients. In some embodiments, an algorithm can be utilized to determine the device type (e.g., “high-end” or “low-end”) of the first media client. Thus, the QOE score generated by the scoring subsystem 238 for the first media client may be adjusted, weighted, etc. based at least in part on the determined device type of the first media client. In some embodiments, the generated QOE scores for a group of media clients (e.g., all media clients on board a mobile platform) may be weighted, etc. based at least in part on the device type of the media client.
[0048] In some embodiments, the scoring subsystem 238 can be configured to compare performance data 201 associated with a first media client to performance data 201 associated with a second media client. Such inter-device comparisons can be used to detect malfunctions of the first media client, the second media client, and / or other media clients. In some embodiments, a median value of the performance data 201 can be used to filter out outlier performance data 201 for a particular media client. For example, the scoring subsystem 238 can be configured to filter out abnormally high and / or low performance data 201 values when aggregating the performance data 201 and / or generating one or more QOE scores based on the performance data 201.
[0049] Some sets of linear media channels 203 may be coded at different bit rates than others. For example, a first linear media channel 203 (e.g., a news channel) may have a relatively low bit rate and a second linear media channel 203 (e.g., a sports channel) may have a relatively high bit rate. In an optional embodiment, a user may be able to select the bit rate for a given set of linear media channels 203 and / or the ground server 230 and / or the in-flight server may be configured to select the bit rates for the linear media channels 203 in response to a performance evaluation. For example, in poor transmission conditions, a lower bit rate may be utilized.
[0050] Flight View 3 illustrates an on-board data monitoring system associated with a vehicle / mobile platform 305 in accordance with one or more embodiments. The on-board monitoring system includes an on-board server 320 and an associated on-board data store 340, which may include a non-volatile data storage medium and / or may be configured to store certain data including performance data 301, request data 303, and / or linear media channels 304. Although the on-board server 320 and the on-board data storage 340 are shown as separate components in FIG. 3, the on-board server 320 and the on-board data storage 340 may be combined into a single device or may be different devices.
[0051] The mobile platform 305 may comprise a network access terminal 381 (i.e., a network interface) for establishing a connection with an external access network, such as a satellite network, a cellular network, or other network. The network access terminal 381 comprises one or more of an antenna 382, a transceiver 384, and a modem 386 to facilitate network communication. The antenna 382 may communicate with the transceiver 384, which may communicate with the modem 386. A wireless access point (WAP) 365 may communicate with an onboard server 320 and / or other network access components (not shown). One or more user media clients onboard the mobile platform 305, including the PED 316 and / or the seatback entertainment system 318, may comprise control circuitry configured to execute one or more applications for acquiring and / or consuming the linear media channels 304 stored in the data store 340 and / or acquired from a remote server via the network 322. In some embodiments, a user may have the option to select / request one or more media content items using the user media client.
[0052] In some embodiments, the in-flight server 320 may be configured to service multiple media clients (e.g., PED 316 and / or seatback entertainment systems) onboard the mobile platform. For example, the in-flight server 320 may be configured to receive and / or aggregate media requests from multiple media clients. Additionally, the in-flight server 320 may be configured to transmit media channels (e.g., linear media channels 304) received from a remote server to the multiple media clients. In some embodiments, the in-flight server 320 may be configured to transmit a common media channel to multiple media clients and / or may be configured to transmit different media channels to different media clients.
[0053] The network access terminal 381 may provide connectivity between the onboard server 320 and one or more ground servers, for example, via satellites and gateways (see FIG. 1). In some embodiments, the onboard server 320 may be configured to transmit and / or obtain data from various media clients and / or service access devices (e.g., WAP 365) onboard the vehicle 305 via the network access terminal 381 or other network interfaces for transmission and / or reception of performance data 301, requested data 303, and / or linear media channels 304. In some embodiments, the network access terminal 381 may be configured to establish one or more wired and / or wireless connections with the media clients and / or service access devices onboard the mobile platform 305. The media clients may be configured to transmit media requests to the onboard server 320 and / or remote servers (e.g., via one or more connections established by the network access terminal 381). The onboard server 320 may be configured to aggregate received media requests to generate requested data 303 and / or transmit the requested data 303 to a remote server. In some embodiments, aggregating media requests may involve removing duplicate media requests. The network access terminal 381 may be configured to establish multiple connections between various devices, including media clients, service access devices, and the on-board server 320.
[0054] For convenience, the following description refers to the moving platform 305 as a vehicle, such as an airplane. The user media clients 316, 318 located within the vehicle 305 may include any type of PED (e.g., smartphone, laptop, tablet, netbook, etc.) brought on board the vehicle 305 by the passengers, as well as the passenger seat back system 318 and / or other devices on the vehicle 305. The user media clients 316, 318 may be configured to communicate with an onboard server 320 via a communication link, which may be wired and / or wireless. The communication link may be part of a local area network, such as, for example, a wireless local area network (WLAN) supported by one or more WAPs 365 onboard the vehicle 305. The one or more WAPs 365 may be distributed around the vehicle 305 and may cooperate with the server 320 to provide traffic switching and routing functions, such as, for example, as part of a WLAN extended service set (ESS).
[0055] Passengers on the vehicle may interface with the in-flight server 320 in any suitable or desired manner. For example, the linear media channel 304 may be presented to the passenger using an electronic display of a PED 316 associated with the passenger, such as through a web browser application, a native application, or using an interface associated with a vehicle integrated media system, such as a seatback media system 318. The in-flight server 320 may be configured to act as a media distribution system and / or content server to provide the linear media channel 304 for presentation using the PED 316 and / or a presentation system associated with the vehicle 305 (e.g., a seatback media presentation device or system 318).
[0056] In some embodiments, a user may provide input (e.g., a selection of a linear media channel 304) to the PED 316 and / or media system 318 to request streaming of the linear media channel 304 on the PED 316 and / or media system 318. In response to the user input, the PED 316 and / or media system 318 may be configured to send one or more requests to the on-board server 320 indicating the requested linear media channel 304. In response to such requests, the on-board server 320 may request the linear media channel 304 by sending request data 303 indicating the requested linear media channel 304 to a remote server. Once the linear media channel 304 is received at the on-board server 320, the on-board server 320 may provide the linear media channel 304 to the PED 316 and / or media system 318. If the requested linear media channel 304 is already available at the on-board server 320 (e.g., the linear media channel 304 has already been received from a remote server in response to a request from a different user), the on-board server 320 can be configured to deliver the linear media channel 304 directly to the PED 316 and / or media system 318 in response to a request from the PED 316 and / or media system 318 without sending a request to a remote server.
[0057] The on-board server 320 may include control circuitry for implementing functionality according to embodiments of the present disclosure. In some embodiments, the on-board server 320 may be configured to act as an aggregation and / or distribution point for the linear media channels 304, the performance data 301, and / or the request data 303.
[0058] As shown in FIG. 3, the in-flight server 320 may comprise a connectivity unit (e.g., an in-flight connectivity (IFC) unit of the aircraft), a media unit 325 (e.g., an in-flight entertainment (IFE) unit of the aircraft), a web proxy 327, and a content delivery unit 329. The connectivity unit 323 may be configured to provide connectivity between the network 322 and the media clients and / or service access devices onboard the mobile platform 305. The media unit 325 may be configured to provide various linear media channels 304 including movies and other on-demand content to the media clients onboard the mobile platform 305. The web proxy 327 may be configured to manage specific media requests for linear media channels from the media clients onboard the mobile platform 305. For example, when a user and / or media client sends a media request specifying a linear media channel (e.g., a live television channel) that is available (e.g., provided to the mobile platform 305 via a beam from a remote server), the web proxy 327 may be configured to provide the requested linear media channel to the media client. If a media client sends a media request that identifies / specifies a linear media channel that is not currently available, the delivery unit 329 can be configured to generate and / or send request data 303 to a remote server and / or provide the requested linear media channel when provided by the remote server.
[0059] In some embodiments, the on-board server 320 may be configured to receive performance data 301 from one or more media clients (e.g., including virtual media client 350 and / or user media clients) on-board the mobile platform 305. The on-board server 320 may be further configured to transmit the performance data 301 obtained from the media clients on-board the mobile platform to one or more remote servers.
[0060] One or more virtual media clients 350 may be located onboard the mobile platform 305. Although the virtual media client 350 is shown in FIG. 3 as a separate device from the onboard server 320, the virtual media client 350 may be a component of the onboard server 320 and / or may be connected to the onboard server 320 via a wired and / or wireless connection. The onboard server 320 may be configured to transmit at least a single linear media channel and / or multiple linear media channels to the virtual media client 350. In some embodiments, the linear media channels provided by the onboard server 320 to the virtual media client 350 may also be transmitted by the onboard server 320 to one or more user media clients (e.g., the PED 316 and / or the seatback system 318) onboard the mobile platform 305.
[0061] In some cases, the performance data 301 obtained from user media clients (e.g., including PEDs 316 and entertainment systems 318) at the on-board server 320 may provide non-uniform and / or unreliable data. For example, a low-end PED 316 may experience a very different quality of experience compared to a high-end PED 316. The difference in performance between a low-end PED 316 and a high-end PED 316 may be due to any of a variety of factors including memory and processing power, among others. Thus, the various PEDs 316 on-board the mobile platform 305 may not be able to provide a uniform and / or reliable sample indicative of the performance of the communication services provided on-board the mobile platform 305.
[0062] In some embodiments, one or more virtual media clients 350 may be configured to provide a central and / or integrated process for generating performance data 301 for evaluation at the on-board server 320 and / or one or more remote servers. In some embodiments, the virtual media client 350 may be configured to mimic and / or emulate the performance of different types of devices. For example, the virtual media client 350 may be configured to store operating system data 352 to enable the virtual media client 350 to stream the linear media channels 304 using various operating systems. For example, the virtual media client 350 may be configured to stream the linear media channels 304 using an Android operating system and / or an iOS operating system. In some embodiments, the virtual media client 350 may be configured to run multiple operating systems simultaneously or sequentially and / or to play different sets of the linear media channels 304 simultaneously or sequentially using different or the same operating systems. The virtual media client 350 may further be configured to store emulation data 354 to enable the virtual media client 350 to emulate various media software including web / network browsers, applications, and / or media players. For example, the virtual media client 350 can be configured using the emulation data 354 to stream one or more linear media channels 304 using a set of commands and / or actions that may be similar and / or identical to the commands and / or actions associated with one or more operating systems, network browsers, media players, etc.
[0063] The use of different operating system data 352 and / or emulation data 354 in the virtual media client 350 may enable detection of discrepancies that may be due to different operating systems. For example, the virtual media client 350 may be configured to generate a first set of performance data 301 using a first operating system and generate a second set of performance data 301 using a second operating system. A scoring subsystem onboard the mobile platform 305 and / or at the ground server may be configured to generate a first QOE score for the first set of performance data 301 and a second QOE score for the second set of performance data 301. If there is a large discrepancy between the first QOE score and the second QOE score, it may be determined that a problem exists with the operating system associated with the lower QOE score.
[0064] In some embodiments, a comparison of a first set of performance data 301 from one or more PEDs 316 and / or entertainment systems 318 and a second set of performance data 301 from one or more virtual media clients 350 may be used to determine a reliability level of one or more virtual media clients 350 and / or modify one or more virtual media clients 350 to increase the reliability level. For example, the on-board server 320 and / or remote server may aggregate performance data 301 from multiple PEDs 316 and / or entertainment systems 318 on-board a mobile platform 305 having a first operating software (e.g., an iOS operating system) to generate a first QOE score of 95%. The on-board server 320 and / or remote server may further receive performance data 301 from on-board virtual media clients 350 of a mobile platform 305 also having the first operating software to generate a second QOE score of 98%. The on-board server 320 and / or the remote server may be further configured to generate a reliability score for the virtual media client 350 by subtracting the absolute difference between the first QOE score and the second QOE score from 100%, resulting in a reliability score of 100%-abs(95%-98%)=97%. The reliability score may indicate a level of accuracy of the performance data 301 generated by the virtual media client 350 relative to the quality of the actual experience of one or more PEDs 316 and / or entertainment systems 318 on-board the mobile platform 305. The on-board server 320 and / or the remote server may be configured to generate reliability scores for multiple operating systems (e.g., iOS and Android) across multiple trips, and the various reliability scores may be aggregated to generate an overall reliability score for the virtual media client 350. Various prescriptions may be made to the virtual media client 350 based on the reliability score to improve the performance of the virtual media client 350.In some embodiments, the operating system data 353 on the virtual media client 350 may include more than one instance of a particular operating system and / or more than one instance of an operating system may be running simultaneously on the virtual media client 350, and the on-board server 320 and / or the remote server may be configured to generate a reliability score for each instance of the operating system.
[0065] The virtual media client 350 may be configured to run different operating systems and / or different instances / versions of one or more operating systems at different times during the movement of the mobile platform 305. For example, the virtual media client 350 may be configured to dynamically and / or periodically cycle through multiple operating systems and / or multiple instances of an operating system during movement. In some embodiments, the virtual media client 350 may be configured to run multiple operating systems and / or multiple instances of one or more operating systems in response to a relatively low reliability score of the virtual media client. For example, in response to the reliability score of the virtual media client 350 over the period of one or more movements of the mobile platform 305 falling below a threshold, the virtual media client 350 may be configured to dynamically cycle through the multiple operating systems and / or multiple instances of one or more operating systems to generate a reliability score for the virtual media client 350 for the multiple instances and / or multiple operating systems. The generated reliability scores may be compared to determine a highest reliability score that may correlate to an operating system and / or instance of an operating system that may be most likely to be used by the PED 316 and / or entertainment system 318 onboard the mobile platform 305. In this manner, the quality of experience score may be calibrated based on one or more characteristics of the user's media client on board the mobile platform 305 (eg, device type and / or operating system).
[0066] In some embodiments, virtual media client 350 may be configured to generate performance data 301 associated with each operating system and / or each instance of an operating system that virtual media client 350 is configured to execute. For example, virtual media client 350 may be configured to generate a first set of performance data 301 associated with a first operating system, generate a second set of performance data 301 associated with a second operating system, and / or transmit the first and second sets of performance data 301 to on-board server 320.
[0067] The virtual media client 350 may be configured to run different operating systems and / or different instances of operating systems simultaneously, sequentially, and / or alternately. For example, the virtual media client 350 may be configured to run a first operating system and switch to a second operating system.
[0068] In some embodiments, the virtual media client 350 can be configured to generate performance data 301 for different operating systems and / or software applications simultaneously and / or on a case-by-case basis. The virtual media client 350 can be configured to mimic any of a variety of device characteristics. For example, an Android device may have its own way of playing media content, and the virtual media client 350 can be configured to monitor quality of experience data similar to an Android device.
[0069] Some user media clients may operate using a closed ecosystem that may prevent the on-board server 320 from collecting performance data 301 from such user media clients. However, the virtual media client 350 may be configured to emulate a closed ecosystem device (e.g., an iOS device) and advantageously provide performance data 301 using an operating system and / or software applications native to such closed ecosystem device.
[0070] The performance data 301 collected from the virtual media client 350 may be useful in providing meaningful reports related to the performance of the communication services (including the performance of linear media channels) provided on the mobile platform 305. Furthermore, the virtual media client 350 may be useful in resolving various issues related to the communication services on the mobile platform 305. For example, if the virtual media client 350 provides performance data 301 indicative of good performance and the PED 316 provides performance data 301 indicative of poor performance, the performance data 301 of the virtual media client 350 may be compared to the performance data 301 of the PED 316 to determine the difference in performance results. Furthermore, a user of the PED 316 may be notified that there may be a problem with the PED 316 in response to the detected difference in results.
[0071] In some embodiments, the virtual media client 350 may be configured to play and / or monitor a particular linear media channel 304 and / or all linear media channels 304 provided to the mobile platform 305. Different ways in which the virtual media client selects a particular linear media channel 304 for receiving and / or providing performance data 301 in response to receiving. In some embodiments, the virtual media client 350 may be configured to monitor a linear media channel 304 based on the popularity of the linear media channel 304. For example, the virtual media client 350 may be configured to monitor the most requested and / or streamed linear media channels for the mobile platform 305.
[0072] In some embodiments, a user media client can be configured to send a media request that specifies one or more linear media channels. Similarly, in some embodiments, a virtual media client 350 can be configured to send a media request that specifies one or more linear media channels. In some cases, a virtual media client 350 may not be required to send a media request. For example, it may be beneficial for a virtual media client 350 to receive the most popular linear media channels and / or at least one linear media channel that is currently being accessed on the mobile platform 305 by a user media client. Thus, since such linear media channels may already be available to the onboard server 320, the virtual media client 305 may be able to receive such linear media channels without sending a media request.
[0073] In some embodiments, the virtual media client 350 can be configured to monitor multiple linear media channels simultaneously or sequentially. In this manner, the performance data 301 from the virtual media client 350 can be useful in detecting performance issues with a particular linear media channel. For example, if the performance data 301 from the virtual media client 350 associated with a first linear media channel indicates good performance, but the performance data 301 from the virtual media client 350 associated with a second linear media channel indicates poor performance, it can be determined that there is an issue associated with the second linear media channel. In some cases, the virtual media client 350 can be configured to only monitor linear media channels that have already been requested by the PED 316 and / or the seatback system 318, such that the virtual media client 350 cannot increase the content demand of the mobile platform 305.
[0074] In some embodiments, the virtual media client 350 may be separate from the on-board server 320, as shown in FIG. 3. Additionally, the virtual media client 350 may be configured to receive the linear media channel 304 from the WAP 365, rather than directly from the on-board server 320. For example, the virtual media client 350 may be configured to connect to the WAP 365 via a Wi-Fi dongle and / or similar circuitry to communicate with the WAP 365. In this manner, performance data 301 from the virtual media client 350 indicating poor performance may be used to identify performance issues associated with the WAP 365.
[0075] The virtual media client 350 can be configured to be located onboard the mobile platform 305. In this manner, the virtual media client 350 can be configured to accurately represent the quality of experience performance of devices onboard the mobile platform 305. Although the virtual media client 350 is shown as separate from the onboard server 320, the virtual media client 350 may be incorporated into the onboard server 320. Additionally, the virtual media client 350 can be configured to receive the linear media channel 304 directly from the onboard server 320 (e.g., without receiving the linear media channel 304 via the WAP 365).
[0076] Collection of performance data 301 from the virtual media client 350 may advantageously enable collection of performance data 301 without requiring direct access to and / or collection of performance data 301 from a user media client (e.g., PED 316). For example, some PEDs 316 may include hardware and / or software that may prevent collection of performance data 301 and / or other related data. Furthermore, in some cases, a particular PED may include hardware and / or software that is unfamiliar with and / or may otherwise provide data that may be difficult or impossible to utilize for evaluation of the performance of the communication system at the mobile platform 105. Furthermore, in some cases, a user may prefer that data not be collected from the user's PED 316. Thus, the virtual media client 350 may advantageously enable collection of performance data 301 at the mobile platform 305 without requiring collection from a user media client.
[0077] Additionally, the virtual media client 350 can be configured to provide performance data 301 that may represent the performance of user media clients onboard the mobile platform 305. In some cases, performance issues may be caused by transmission failures between the satellite and the onboard server 320. Thus, even if the transmission of data between the remote (e.g., terrestrial) server and the satellite is good, performance issues associated with the various linear media channels 304 received at the mobile platform 305 from the satellite via the network 322 may occur due to various factors (e.g., weather) during transmission from the satellite to the mobile platform 305. Since the virtual media client 350 may be located onboard the mobile platform 305, any performance issues that occur during the transmission of data between the satellite and the onboard server 320 may be experienced by the virtual media client 350 as well as the user media clients onboard the mobile platform 305.
[0078] In some embodiments, the on-board server 320 can be configured to receive performance data 301 not only from the virtual media client 350, but also from various PEDs 316 and / or seat back systems 318 on-board the mobile platform 305. In this manner, for example, performance data 301 associated with a PED 316 can be compared to performance data 301 of the virtual media client 350 to detect a PED 316 experiencing performance issues. For example, if a PED 316 provides performance data 301 that indicates significantly different performance data 301 than the virtual media client 350, the performance data 301 from the PED 316 can be excluded and / or discarded from the performance evaluation determination.
[0079] A statistical threshold may be utilized to determine performance issues associated with the PEDs 316 and / or the virtual media clients 350. For example, if all PEDs 316 on board the mobile platform 305 exhibit poor performance of communication services, but the virtual media clients 350 exhibit good performance, it may be determined that an issue exists with the virtual media clients 350.
[0080] Quality of Experience Evaluation Process 4 illustrates a process 400 for on-board performance evaluation of communication services provided on-board a mobile platform, according to an embodiment of the present disclosure. Although steps of process 400 are described as being performed by an on-board server, such steps may instead be performed by a remote server.
[0081] Process 400 involves receiving one or more media requests from a user media client located onboard the mobile platform at block 405. The media requests may be received from multiple user media clients. In some embodiments, the media requests may be received continuously and / or periodically. Each of the media requests may indicate and / or specify one or more linear media channels. The one or more linear media channels may include channels not currently being accessed on the mobile platform and / or linear media channels currently being accessed (e.g., being played on one or more user media clients onboard the mobile platform). The user media clients may send media requests periodically and / or in response to a particular event (e.g., a user selecting a new channel on the user media client).
[0082] In some embodiments, the virtual media client onboard the mobile platform may also be configured to send media requests to the onboard server. The manner in which the virtual media client requests, receives, and / or accesses linear media channels may vary from embodiment to embodiment. In some embodiments, the virtual media client may be configured to send media requests only for linear media channels that are currently being consumed by one or more user media clients. For example, the virtual media client may be configured to receive all linear media channels currently being consumed and / or may be configured to monitor all of the linear media channels in parallel (e.g., via multi-threading). As another example, the virtual media client may be configured to receive and / or monitor less than all of the linear media channels being consumed, such as by periodically switching between channels and / or by selecting a representative channel for monitoring, monitoring the linear media channels one at a time, etc. In other embodiments, the virtual media client may be configured to receive and / or monitor channels that are not currently being consumed by the user media client onboard the mobile platform. For example, the virtual media client may be configured to temporarily request and / or monitor channels of a channel offering lineup that may not currently be consumed by the user media client. In this manner, the virtual media client can be configured to ensure proper performance of all linear media channels provided over the communication service.
[0083] At block 410, process 400 involves aggregating the received media requests to generate request data that specifies a particular linear media channel. In some embodiments, aggregating may involve comparing the media requests to identify media requests that indicate a common linear media channel. For example, different media requests from different user media clients may specify a common linear media channel. The on-board server may be configured to remove duplicate media requests to limit the amount of data sent to the remote server. Additionally, aggregation may involve other forms of data processing, including, for example, compression of the received media requests. At block 415, process 400 involves sending the generated request data to the remote server.
[0084] At block 420, the process 400 involves receiving the linear media channels from the remote server. The received linear media channels may include all or a subset of the linear media channels specified in the request data.
[0085] At block 425, process 400 involves transmitting / providing linear media channels to a number of user media clients onboard the mobile platform. The onboard server may be configured to provide all of the received linear media channels to all of the user media clients, or may provide only those linear media channels requested by a particular user media client to that particular user media client.
[0086] At block 430, process 400 involves transmitting / providing at least one of the received linear media channels to a virtual media client onboard the mobile platform. In some embodiments, the linear media channel provided to the virtual media client may be selected based at least in part on the popularity or other characteristics of the linear media channel.
[0087] At block 435, process 400 involves receiving a first set of performance data from the virtual media client. The first set of performance data may include a single performance data type (e.g., one of start-up data and rebuffer data) or may include multiple performance data types (e.g., both start-up data and rebuffer data). The performance data may be indicative of the performance of a linear media channel provided to the virtual media client (e.g., streaming performance).
[0088] In some embodiments, the on-board server can be configured to receive a second set of performance data from one or more user media clients. The second set of performance data may include a single performance data type (e.g., one of start-up data and rebuffer data) or may include multiple performance data types (e.g., both start-up data and rebuffer data). In some embodiments, the first set of performance data may include a different performance data type than the second set of performance data, or the first set of performance data may include the same performance data type as the second set of performance data.
[0089] In some embodiments, the on-board server and / or ground server may receive performance data from the virtual media client and / or one or more user media clients. The received performance data may be correlated and / or aggregated with other performance data at the on-board server and / or ground server to generate one or more quality of experience scores. In some embodiments, characteristics of the virtual media client (e.g., operating system and / or software) may be adapted and / or modified based on the performance data received from the virtual media client and / or one or more user media clients.
[0090] General Notes Unless the context clearly dictates otherwise, throughout this specification and claims, the words "comprise," "comprising," and the like are to be construed in an inclusive sense, i.e., "including, but not limited to," and not in an exclusive or exhaustive sense. The word "coupled," as generally used herein, refers to two or more elements, which may be directly connected or connected by one or more intermediate elements. In addition, the words "herein," "above," "below," and words of similar meaning, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. Wherever the context permits, words in the above Detailed Description using the singular or plural may also include the plural or singular, respectively. The word "or," when referring to a list of two or more items, includes all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
[0091] Throughout this disclosure, reference to "some embodiments," "particular embodiments," or "embodiments" means that a particular feature, structure, or characteristic described in connection with an embodiment can be included in at least some of the embodiments. Thus, the appearances of the phrases "in some embodiments," "in particular embodiments," or "in an embodiment" in various places throughout this specification do not necessarily all refer to the same embodiment, but may refer to one or more of the same or different embodiments. Furthermore, an embodiment disclosed herein may or may not be an embodiment of the present invention. For example, an embodiment disclosed herein may include, in part or in whole, features and / or components that are not related to the invention. In addition, particular features, structures, or characteristics can be combined in any suitable manner, as would be apparent to one of ordinary skill in the art from this disclosure in one or more embodiments.
[0092] The above detailed description of the embodiments of the present invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. Although specific embodiments of the present invention and examples of the present invention have been described above for illustrative purposes, various equivalent modifications are possible within the scope of the present invention, as will be understood by those skilled in the relevant art. For example, although processes or blocks are presented in a given order, alternative embodiments may perform routines having steps or employ systems having blocks in a different order, and some processes or blocks may be deleted, moved, added, sub-divided, combined, and / or modified. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed sequentially, these processes or blocks may instead be performed in parallel or may be performed at different times.
[0093] The teachings of the invention provided herein may be applied to other systems, not necessarily those described above. Elements and acts of the various embodiments described above may be combined to provide further embodiments.
[0094] Although several embodiments of the present invention have been described, these embodiments are presented by way of example only and are not intended to limit the scope of the present disclosure. In fact, the novel methods and systems described herein may be embodied in various other forms, and further, various omissions, substitutions, and modifications of the forms of the methods and systems described herein may be made without departing from the spirit of the present disclosure. The appended claims and their equivalents are intended to cover such forms or modifications as fall within the scope and spirit of the present disclosure.
[0095] The appended claims and their equivalents are intended to cover such forms or modifications as fall within the scope and spirit of protection. For example, the various components shown in the figures may be implemented as software and / or firmware on a processor, ASIC / FPGA, or dedicated hardware. Also, the features and attributes of the specific embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure. Although the present disclosure provides certain preferred embodiments and applications, other embodiments apparent to those skilled in the art, including embodiments that do not provide all of the features and advantages described herein, are also within the scope of the present disclosure. Thus, the scope of the present disclosure is intended to be defined solely by reference to the appended claims.
[0096] The methods and processes described herein may be embodied in software code modules executed by one or more general-purpose and / or special-purpose computers, and may be partially or fully automated via software code modules. The term "module" may refer to logic embodied in hardware and / or firmware, or a collection of software instructions, possibly having entry and exit points, written in a programming language, such as, for example, C or C++. Software modules may be compiled and linked into executable programs, installed in dynamically linked libraries, or written in interpreted programming languages, such as, for example, BASIC, Perl, or Python. It will be understood that software modules may be callable from other modules or themselves, and / or may be called in response to detected events or interrupts. Software instructions may be embedded in firmware, such as erasable programmable read-only memory (EPROM). A "module" may further refer to one or more devices, components, systems, or subsystems that may conceptually implement the associated functionality. It will be further understood that a hardware module may be comprised of connected logic units such as gates and flip-flops, and / or may be comprised of programmable units such as programmable gate arrays, application specific integrated circuits, and / or processors. The modules described herein are preferably implemented as software modules, but may also be represented in hardware and / or firmware. Furthermore, in some embodiments, a module may be separately compiled, while in other embodiments, a module may represent a subset of a separately compiled program's instructions and may not have an interface available to other logical program units.
Claims
1. 1. A communication system comprising: an on-board server located on the mobile platform; a remote server located external to the mobile platform, the remote server configured to generate one or more linear media channels for use by the on-board server; a virtual media client located on board the mobile platform; The virtual media client includes: receiving a linear media channel from the on-board server; configured to transmit performance data to the on-board server; The on-board server, receiving one or more media requests from a plurality of user media clients onboard the mobile platform, the one or more media requests specifying one or more linear media channels; receiving the one or more linear media channels from the remote server; providing the one or more linear media channels to the plurality of user media clients in accordance with the one or more received media requests; providing at least a first linear media channel of the one or more media channels to the virtual media client; A communication system configured to receive a first set of performance data associated with the first linear media channel from the virtual media client.
2. 2. The communication system of claim 1, wherein the on-board server is further configured to send request data indicating the one or more linear media channels to the remote server, the one or more linear media channels received from the remote server being provided in response to the request data.
3. The communications system of claim 2 , wherein the request data comprises an aggregation of the one or more media requests.
4. the virtual media client is further configured to send a media request to the on-board server; The communication system of claim 1 , wherein the on-board server is further configured to transmit the linear media channel to the virtual media client in response to the media request from the virtual media client.
5. The on-board server, receiving a first media request from the virtual media client, the first media request specifying a second linear media channel not included in the one or more linear media channels; receiving the second linear media channel from the remote server; providing the second linear media channel to the virtual media client; The communication system of claim 4 , further configured to receive a second set of performance data associated with the second linear media channel from the virtual media client.
6. The communication system of claim 1 , wherein the first set of performance data relates to streaming of the first linear media channel at the virtual media client.
7. 7. The communication system of claim 1, further comprising a scoring subsystem configured to retrieve the first set of performance data from the on-board server and to calculate a quality of experience score associated with the first linear media channel based at least in part on the first set of performance data.
8. The communication system of claim 1 , wherein the on-board server is further configured to receive a second set of performance data from a first user media client of the plurality of user media clients.
9. The communication system of claim 8 , further comprising a scoring subsystem, the on-board server configured to provide the first and second sets of performance data to the scoring subsystem.
10. The communication system of claim 9 , wherein the scoring subsystem is configured to generate a quality of experience score based at least in part on the first and second sets of performance data.
11. The communication system of claim 10 , wherein generating the quality of experience score involves comparing the first set of performance data to the second set of performance data.
12. 12. The communication system of claim 11, wherein the scoring subsystem is further configured to compare the first set of performance data to the second set of performance data to generate a reliability score for the virtual media client.
13. The communication system of claim 12 , wherein the scoring subsystem is further configured to perform a training operation based at least in part on the confidence score.
14. The virtual media client includes: storing a first operating system and a second operating system; 15. The communication system of claim 1, further configured to stream the first linear media channel using the first operating system and the second operating system.
15. 15. The communication system of claim 14, wherein the first set of performance data includes performance data associated with the first operating system, and the on-board server is further configured to receive from the virtual media client a second set of performance data associated with the second operating system.
16. 15. The communication system of claim 14, wherein the virtual media client is configured to cycle between the first operating system and the second operating system.
17. The virtual media client includes: storing emulation data for emulating one or more network browsers; The communication system of any preceding claim, further configured to stream the first linear media channel using the emulation data.
18. A communication system according to any preceding claim, wherein at least one of said plurality of user media clients is a personal electronic device.
19. The communication system of any preceding claim, wherein the one or more linear media channels include television content.
20. A communications system according to any preceding claim, wherein the first set of performance data includes one or more of start-up data and rebuffer data.
21. 21. The communication system of claim 1, wherein the on-board server is further configured to selectively provide the first linear media channel to the virtual media client based at least in part on a popularity of the first linear media channel.
22. receiving, at an on-board server located onboard a mobile platform, one or more media requests from a plurality of user media clients onboard the mobile platform, the one or more media requests specifying one or more linear media channels; receiving, at the on-board server, the one or more linear media channels from a remote server located outside the mobile platform, the remote server configured to generate the one or more linear media channels for use by the on-board server; providing the one or more linear media channels from the on-board server to the plurality of user media clients in accordance with the one or more received media requests; providing at least a first linear media channel of the one or more media channels from the on-board server to a virtual media client on-board the mobile platform; receiving, at the on-board server, a first set of performance data associated with the first linear media channel from the virtual media client.
23. 23. The method of claim 22, further comprising: sending request data to the remote server indicating the one or more linear media channels, the one or more linear media channels received from the remote server being provided in response to the request data.
24. The method of claim 23 , wherein the request data comprises an aggregation of the one or more media requests.
25. sending a media request from the virtual media client to the on-board server; The method of any one of claims 22 to 24, further comprising: transmitting the linear media channel from the on-board server to the virtual media client in response to the media request from the virtual media client.
26. receiving, at the on-board server, a first media request from the virtual media client, the first media request specifying a second linear media channel not included in the one or more linear media channels; receiving, at the on-board server, the second linear media channel from the remote server; providing the second linear media channel from the on-board server to the virtual media client; 26. The method of claim 25, further comprising receiving, at the on-board server, a second set of performance data associated with the second linear media channel from the virtual media client.
27. The method of any one of claims 22 to 26, wherein the first set of performance data relates to streaming of the first linear media channel at the virtual media client.
28. obtaining, at a scoring subsystem, a first set of the performance data from the on-board server; 28. The method of claim 22, further comprising: calculating, at the scoring subsystem, a quality of experience score associated with the first linear media channel based at least in part on the first set of performance data.
29. The method of any one of claims 22 to 28, further comprising receiving, at the on-board server, a second set of performance data from a first user media client of the plurality of user media clients.
30. 30. The method of claim 29, further comprising providing the first and second sets of performance data from the on-board server to a scoring subsystem.
31. 31. The method of claim 30, further comprising generating, in the scoring subsystem, a quality of experience score based at least in part on the first and second sets of performance data.
32. 32. The method of claim 31 , wherein generating the quality of experience score involves comparing the first set of performance data to the second set of performance data.
33. 33. The method of claim 32, further comprising: comparing, at the scoring subsystem, the first set of performance data to the second set of performance data to generate a confidence score for the virtual media client.
34. 34. The method of claim 33, further comprising: performing, at the scoring subsystem, training operations based at least in part on the confidence scores.
35. 35. The method of claim 1, wherein the virtual media client is further configured to store a first operating system and a second operating system, the method further comprising streaming using the first operating system and the second operating system at the virtual media client.
36. 36. The method of claim 35, wherein the first set of performance data includes performance data associated with the first operating system, the method further including receiving, at the on-board server, a second set of performance data associated with the second operating system from the virtual media client.
37. 35. The method of claim 34, further comprising cycling, at the virtual media client, between the first operating system and the second operating system.
38. storing, at the virtual media client, emulation data for emulating one or more network browsers; The method of any one of claims 22 to 37, further comprising: streaming, at the virtual media client, the first linear media channel using the emulation data.
39. The method of any one of claims 22 to 38, wherein at least one of the plurality of user media clients is a personal electronic device.
40. The method of any one of claims 22 to 39, wherein the one or more linear media channels include television content.
41. The method of any one of claims 22 to 40, wherein the first set of performance data includes one or more of start-up data and rebuffer data.
42. 42. The method of claim 22, further comprising selectively providing the first linear media channel from the on-board server to the virtual media client based at least in part on a popularity of the first linear media channel.