Linear Media Channel Experience Quality Evaluation System and Method

By using virtual media clients on mobile platforms to imitate different devices, combined with the collaborative work of onboard and remote servers, the accuracy of user experience quality evaluation is solved, efficient evaluation and fault diagnosis of linear media channels are achieved, and the performance evaluation accuracy of communication services is improved.

CN116034571BActive Publication Date: 2025-07-22VIASAT INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080103826.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-08-19
Publication Date
2025-07-22
Estimated Expiration
2040-08-19

AI Technical Summary

Technical Problem

The prior art is difficult to accurately evaluate the user experience quality of linear media channels on mobile platforms, especially due to the privacy limitations of user media clients and operating system differences.

Method used

The virtual media client is used to imitate different types of devices, collect and analyze performance data through the collaborative work of on-board servers and remote servers, generate a unified experience quality score, and use machine learning to calibrate data and troubleshoot problems.

Benefits of technology

It realizes accurate evaluation of the experience quality of linear media channels on mobile platforms, improves the accuracy and reliability of performance evaluation of communication services, and reduces errors caused by operating system and hardware differences.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116034571B_ABST
    Figure CN116034571B_ABST
Patent Text Reader

Abstract

The present invention relates to a communication system, which includes an airborne server located on 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 airborne server. The communication system further includes a virtual media client located on the mobile platform. The virtual media client is configured to receive the linear media channels from the airborne server and send performance data to the airborne server. The airborne server is configured to receive one or more media requests from a plurality of user media clients on the mobile platform. The one or more media requests specify one or more linear media channels. The airborne 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 according to the received one or more media requests, provide at least a first linear media channel in 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.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The present disclosure relates to the assessment of the quality of experience of linear media channels, and more particularly to systems and methods for assessing the quality of experience of linear media channels for mobile platforms including aircraft. Summary of the Invention

[0002] Systems, devices, and methods for monitoring data and / or managing data transmission at a mobile platform including a vehicle are described herein.

[0003] In one embodiment, a communication system is described that includes an on-board server located on a mobile platform and a remote server located external to 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 the mobile platform. The virtual media client is configured to receive linear media channels from the on-board server and send 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 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 according to 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 present disclosure, certain aspects, advantages, and novel features have been described herein. It should be understood that not necessarily all such advantages can be achieved in accordance with any particular embodiment. Thus, the disclosed embodiments may be implemented in a manner that achieves or optimizes one advantage or a group of advantages as taught herein, without necessarily achieving other advantages as may be taught or suggested herein. Brief Description of the Drawings

[0005] For purposes of illustration, various embodiments are depicted in the drawings, and these various embodiments should in no way be construed as limiting the scope of the present disclosure. Additionally, various features of the disclosed different embodiments may be combined to form additional embodiments that are part of the present disclosure.

[0006] Figure 1 A system for managing data transmission between a mobile platform (such as a vehicle) and / or a server on the mobile platform and a ground server in accordance with one or more embodiments is shown.

[0007] Figure 2Shows a ground server according to one or more embodiments.

[0008] Figure 3 Shows an airborne surveillance system according to one or more embodiments.

[0009] Figure 4 Shows a process for airborne and / or ground performance evaluation of communication services provided on a mobile platform according to an embodiment of the present disclosure. Detailed Description

[0010] The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the invention claimed. In certain specific implementations, the present disclosure relates to systems, devices, and methods for managing and / or transmitting system log data related to passenger services (e.g., provided on a mobile platform) to and / or from an airborne surveillance system of a mobile platform.

[0011] Overview

[0012] The present disclosure provides devices, systems, and processes for evaluating quality of experience data of a communication system configured to provide a linear media channel and / or other media data to a media client on a mobile platform (e.g., a vehicle). "Quality of experience" data can refer to any data representing a measurement of the performance of a communication service indicating the quality of the user experience with respect to one or more linear media channels, and can include, for example, startup data and / or rebuffering data. Startup data can include any data indicating the amount of time required to start streaming media data at a media client. Rebuffering data can include any of the following: data indicating the number of rebuffering events (rebuffering count) at a media client during the streaming of media data and / or data indicating the total time of rebuffering events (rebuffering duration). A rebuffering event can include an interruption of the streaming of media data for performing a buffering operation and can occur at any point during the streaming of media data as needed. In some cases, a rebuffering event can be caused by a failure and / or slow transmission of media data between devices.

[0013] A "linear media channel" can refer to any live broadcast of video and / or audio content and can include, for example, live television content. A linear media channel can include a scheduled content stream. In response to a user selecting a linear media channel, the user (i.e., the user's media client) can be caused to join the linear media channel and view the content stream currently provided by the linear media channel. For example, the content stream can be simultaneously streamed to the user's media client and any other media clients that join the linear media channel. Thus, joining a linear media channel may not cause the user's media client to start streaming media content from a default starting point (e.g., the beginning of a movie), but can start streaming at the point currently being streamed to other devices.

[0014] In some embodiments, a linear media channel can be broadcast from a remote (e.g., terrestrial) computing device (e.g., a server) to a computing device on a mobile platform (e.g., a server). The computing system on the mobile platform can be further configured to receive various data transmissions from the remote server, while the remote server can be configured to receive various data transmissions from the computing system on the mobile platform. The received data can be collected, aggregated, filtered, analyzed, and / or otherwise processed on the mobile platform and / or at the terrestrial computing system.

[0015] A linear media channel and / or other media content can be configured for streaming at various media clients. As used herein, a "media client" can refer to any device configured to send and / or receive media data, access and / or play various media content, and / or send performance metrics (including quality of experience performance data), and can include, for example: personal electronic devices (PEDs) such as smart phones, laptop computers, and tablet computers; crew member devices; entertainment systems (e.g., seat-back entertainment systems in the case of an aircraft); and / or virtual media clients. As used herein, the term "virtual media client" can refer to a dedicated media client specifically configured for streaming media content and / or transmitting quality of experience data on a mobile platform. A virtual media client can be configured to connect to a computing system (e.g., an on-board server) on a mobile platform via a wired and / or wireless connection. As used herein, the term "user media client" can refer to any media client that is not a virtual media client (e.g., a PED). In some embodiments, a virtual media client can be configured to run and / or emulate multiple operating systems, software applications, and / or media systems.

[0016] In some embodiments, a virtual media client can be located on a vehicle during a trip of the vehicle. In this way, the virtual media client can provide an accurate and / or representative example of the streaming quality experienced by a user media client that is also located on the vehicle. For example, the virtual media client and the user media client on the vehicle can be on the same side of a satellite communication link. Thus, any transmission-related issues experienced by the user media client can also be experienced by the virtual media client.

[0017] Even when the user media client on the vehicle cannot provide performance data for any of a variety of reasons, the virtual media client can still advantageously allow access to performance data on the vehicle. For example, the user media client may have privacy restrictions that prevent the collection of performance data from the user media client. In such cases, the virtual media client can act as a proxy for the user media client because the performance data collected from the virtual media client can be an accurate representation of the quality of experience at the user media client.

[0018] Various performance data related to communication services on a mobile platform can be collected and / or analyzed for various purposes, such as for improving and / or maintaining the performance of the communication services. In some embodiments, the collected performance data can be analyzed to generate one or more quality of experience scores. The performance data can include various raw data collected from media clients on the vehicle (e.g., startup latency and / or rebuffering data). The performance data can be sent from one or more virtual media clients and / or user media clients on the vehicle and can be collected by one or more scoring subsystems located on the vehicle (e.g., as part of an on-board server) and / or away from the vehicle (e.g., as part of a ground server). The scoring subsystem can be configured to analyze the performance data to generate one or more quality of experience scores related to the performance data. For example, the scoring subsystem can be configured to apply one or more thresholds to the performance data to determine whether the values indicated in the performance data meet, exceed, or fall below the one or more thresholds. In some embodiments, the scoring subsystem can be configured to analyze the values indicated in the performance data with an associated time component, which can involve using a timestamp and / or other time values associated with the performance data values. For example, the scoring subsystem can be configured to determine the number of buffering / rebuffering events within a time period (e.g., one minute, thirty minutes) and / or compare the determined number with a threshold number of buffering / rebuffering events within that time period. As another example, the scoring subsystem can be configured to determine the total rebuffering duration of a rebuffering event and compare it with a threshold duration.

[0019] In some cases, performance data can be collected from PEDs and / or other media clients used by passengers and / or crew on a mobile platform during a journey (e.g., a flight) of the mobile platform. However, the performance of communication services at some media clients can be affected, at least in part, by the software and / or hardware of the media client. For example, compared to high-end media clients and / or media clients running a newer operating system, low-end media clients and / or media clients running an outdated operating system can provide results indicating relatively poor performance. The relatively poor performance can be caused by various factors (e.g., memory, processing power, etc.) at the media client and generally may not indicate the performance of the communication service (e.g., provided by a ground server and / or an airborne server). Additionally, some software and / or hardware may be more suitable for certain communication systems than others. For example, a communication system can be designed to work with iOS devices and may experience more performance issues with Android devices. Therefore, for the collection of performance metrics for communication services provided on a mobile platform, it is advantageous to have a unified baseline measurement process via one or more virtual media clients.

[0020] Furthermore, in some cases, user media clients can block the transmission of performance data. For example, user media clients can utilize privacy software that may not allow sharing of performance data with one or more servers and / or scoring subsystems. In such cases, virtual media clients can provide performance data in place of user media clients that are unable to provide performance data. In some embodiments, only performance data from one or more virtual media clients can be collected by a scoring subsystem for generating quality of experience data. For example, performance data sent by one or more user media clients can be ignored by the scoring subsystem and / or actively excluded from the analysis. As a result, the generated quality of experience data may not reflect performance data from user media clients, which may be negatively affected by the operating system type, operating system conditions, privacy restrictions, and / or various other factors.

[0021] The communication services provided on a mobile platform can be provided by various communication system devices located on and / or external to the mobile platform. Various linear media channels can be sent by using the Internet and / or other networks. Internet and / or other network services can be provided by using a modem and / or other devices on the mobile platform, which can communicate with satellites and / or other devices external to the mobile platform. The linear media channels for presentation on a vehicle or other mobile platform can originate from different remote sources, such as remote (e.g., terrestrial) servers. For a content presentation platform carried on a vehicle and / or other mobile platform, a server can be locally installed, where such a server can receive content for presentation as one or more data transmission packets from one or more remote media servers. For example, an on-board server can be configured to pull together various content services and solutions to provide a desired end-user experience for passengers on a vehicle or other mobile platform. Linear media channels can be received from one or more terrestrial servers, which in turn can receive different types of content items from different content sources.

[0022] One or more servers can be configured to provide data to a media client, including linear media channels and / or interface data. The one or more servers can be located within a vehicle (e.g., an aircraft) and / or external to the vehicle (e.g., terrestrial). In some embodiments, a terrestrial server and / or other server external to the vehicle can be configured to establish network communication with one or more servers on the vehicle. Although some embodiments described herein can distinguish between servers on a vehicle and servers not on a vehicle, some functions performed by such servers can be interchangeable and / or capable of being performed at both servers and / or either server.

[0023] Network Overview

[0024] In some specific implementations, the present disclosure provides systems, processes, and devices for providing an assessment of the quality of experience associated with communication services provided on a mobile platform (e.g., a vehicle). Figure 1 System 100 is shown for managing data transmission between a mobile platform 105 (such as a vehicle) and / or a server 120 on the mobile platform 105 and a terrestrial server 130, according to one or more embodiments. Various data can be stored in a terrestrial data repository 140 and / or an on-board data repository 170 on the mobile platform 105. In Figure 2 and Figure 3The types of data stored at the ground server 130 and / or the mobile platform 105 are described in further detail therein. The ground data repository 140 and / or the airborne data repository 170 may include non-volatile data storage devices.

[0025] The system 100 includes the airborne control circuit 121 and / or the virtual media client 125, and the system may be installed in the mobile platform 105 (such as an airplane, a cruise ship, an automobile, or other transportation means, etc.) and / or disposed on or in the mobile platform. Although the virtual media client 125 is shown as part of the airborne server 120, the virtual media client 125 may alternatively be implemented in another airborne component external to the airborne server 120. In some embodiments, the virtual media client 125 may be configured to communicate with the airborne server 120 via a wired connection and / or a wireless connection.

[0026] Although certain embodiments are disclosed herein in the context of an airplane or other transportation means, it should be understood that the principles disclosed herein may be applicable to any suitable or desired mobile platform or transportation means. The airborne server 120 may be configured to send, receive, and / or otherwise manage data on the mobile platform 105. For example, the airborne server 120 may be configured to send media data to various airborne communication service devices. The "communication service device" may include any device configured to facilitate the provision of passenger services at the mobile platform, and may include one or more modems, transceivers, antennas, WAPs, and / or other airborne service devices. In some embodiments, the airborne server 120 may be configured to receive and / or filter performance data sent from the media service devices and / or media clients (including the virtual media client 125) on the mobile platform 105.

[0027] The performance data received from various communication service devices and / or media clients on the mobile platform 105 may relate to the communication services provided on the mobile platform 105. In some embodiments, the performance data may include performance data values related to any one of a variety of performance data (e.g., quality of experience data), and the performance data values may include start-up data and / or re-buffering data, etc.

[0028] The ground server 130 and / or the airborne server 120 may include 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 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 the vehicle 105 and / or external to the vehicle 105 (e.g., on the ground). In some embodiments, a first scoring subsystem may be located on the vehicle 105 (e.g., as part of the airborne 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 scoring subsystem located on the ground 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 the performance data of a first vehicle 105 within the beam of the satellite 110 indicates good performance, while the performance data of a second vehicle within the beam of the satellite 110 indicates poor performance, the scoring subsystem may be configured to determine that there is a problem at the second vehicle rather than at the satellite 110. In some cases, the system 100 may include at least the scoring subsystem at the ground server 130 to utilize ground computing resources.

[0029] In some embodiments, the obtaining of various data (e.g., performance data, request data, etc.) may be performed at least in part via a network connection external to the vehicle 105, such as via a satellite network 112 connection and / or another type of network connection 123 to the Internet or other network 122 (e.g., Wi-Fi or other network connection). The network 112 connection may include a communication path between the satellite 110 and the gateway 115. The gateway 115 may communicate data with the satellite 110 and the network 122, and thus communicate data with the ground server 130. The mobile platform 105 may be configured to receive a downlink signal being sent from the satellite access network 112 including the satellite 110 and the gateway 115, and use the satellite 110 and the gateway 115 to send a return uplink signal to the satellite-based access network 112.

[0030] Network 122 can be any type of network and can include, for example, one or more of the following: the Internet, Internet Protocol (IP) networks, intranets, wide area networks (WANs), local area networks (LANs), virtual private networks (VPNs), virtual LANs (VLANs), fiber optic networks, cable networks, public switched telephone networks (PSTNs), public switched data networks (PSDNs), public land mobile networks, cellular networks, and / or any other type of network that supports the communications as described herein. Additionally, network 122 can include wired (e.g., copper and fiber optic) and / or wireless (e.g., radio and microwave) connections.

[0031] Mobile platform 105 is shown as an aircraft in Figure 1 and certain embodiments are disclosed herein in the context of aircraft, aircraft fleets, and / or airlines. However, it should be understood that the embodiments of the present disclosure are applicable to other types and / or groupings of mobile platforms and / or associated entities.

[0032] As described above, with respect to mobile platform 105, ground server 130 can represent a remote server. Although referred to herein as a ground server, server 130 can be physically located and / or situated at any physical location; the use of the term "ground" herein is for simplicity and convenience to indicate that ground server 130 is not disposed on or at mobile platform 105, but rather at some location external to the mobile platform. Ground server 130 can be understood relative to Figure 2 ground server 230, which can constitute Figure 1 an exemplary embodiment of ground server 130. Referring to Figure 1 , various data (e.g., media content items) can be obtained by mobile platform 105 from ground server 130 via network 122 or other ground stations, gateways, or other network nodes, etc.

[0033] One or more users 114 (e.g., passengers, crew members) can be on mobile platform 105 and can use one or more media clients 116 (e.g., PEDs, seatback entertainment systems, crew member devices, etc.) to access the communication services provided on mobile platform 105. Via the communication services, media client 116 can be configured to send and / or receive performance data, media data, and / or request data.

[0034] Ground Server

[0035] Referring to Figure 2, the ground server 230 may include a control circuit 231, which may include any one of a variety of components configured to perform any one of a variety of functions. The ground server 230 may be configured to generate and / or send various linear media channels 203 (e.g., linear media channels) via the network 222 for use by a server on a mobile platform. In some embodiments, the ground server 230 may be configured to receive various data from the mobile platform via the network 222, including performance data 201 and / or request data 204. The performance data 201 and / or request data 204 may be related to passenger services provided on a particular mobile platform (e.g., the mobile platform 105 of the system 100 as described Figure 1 with respect to). The ground server 230 may include a data storage device 240, which may be combined with the ground server 230 into a single device or may be a different device external to the ground server 230.

[0036] The network 222 may include a wide area network, such as the Internet, which may be accessed by the mobile platform via a satellite communication network. Thus, the communication link between the ground server 230 and the remote mobile platform may be implemented via the Internet or other wide area network. Data transmission and / or reception 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.

[0037] In some embodiments, the ground server 230 may include a data request manager 234 configured to manage incoming request data 204 from the mobile platform. Some of the request data 204 may include requests for linear media channels 203 (including one or more linear media channels). In some embodiments, in response to a received media request from a media client and / or an attempt to access certain linear media channels 203 at a media client on the mobile platform, request data 204 may be generated and / or sent from a server on the mobile platform. In other embodiments where the ground server 230 automatically sends all linear media channels (broadcasts) regardless of request data, the request data 204 may not be sent from the server on 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 on the mobile platform (e.g., Figure 1 the on-board server 120) may be configured to aggregate received media requests to generate request data 204. For example, aggregation may involve collecting media requests and / or removing duplicate media requests (e.g., media requests that identify / specify the same linear media channel).

[0038] In some embodiments, the ground server 230 may be configured to transmit the linear media channel 203 via a transmission beam. Each beam may be configured to cover a wide geographic area, and various mobile platforms may enter and exit the beam as they travel through a journey (e.g., in the case of an aircraft, a flight). In some embodiments, the beams generated by the ground server 230 may be configured to provide a specific set of linear media channels 203 to the mobile platforms within 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 specific beam group may be configured to receive the linear media channel 203 transmitted via a given beam. The server on the mobile platform may be configured to send request data 204 to request to be added to the beam group associated with the ground server 230.

[0039] The media data transmitted via the beam may be available to any mobile platform within the beam and / or within a part of the beam group of the beam. For example, the ground server 230 may transmit a specific linear media channel (and 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 is capable of receiving the specific linear media channel. In some embodiments, the mobile platform may be required to request the specific linear media channel (or other linear media channels 203) before receiving it. For example, the ground server 230 may be configured to transmit a first linear media channel (e.g., a live TV channel) as part of a first beam. A mobile platform traveling within the beam of the ground server may send 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.

[0040] In some embodiments, the ground server 230 may include a media data manager 236 component configured to manage the transmission of the linear media channel 203 to the mobile platforms. In response to the request data 204 sent from the mobile platform, the linear media channel 203 (including the linear media channel) may be transmitted from the ground server 230. For example, if a media client on the mobile platform sends a request to the on-board server for a linear media channel that the on-board server does not currently provide, the on-board server may send 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 sent the request to be enabled to receive the requested linear media channel.

[0041] The media data manager 236 may be configured to transmit the linear media channel 203 as a multicast, which may include multiple linear media channels and / or groups of other linear media channels 203. In some embodiments, only the requested linear media channels may be included in the beam transmitted by the terrestrial server 230 and / or the media data manager 236. If a linear media channel not included in the beam is requested in the requested data 204, the linear media channel may be added to the beam by the media data manager 236. In some embodiments, the terrestrial server 230 and / or the media data manager 236 may be configured to include all linear media channels in the beam without requiring the requested data.

[0042] In some embodiments, the terrestrial server 230 may be configured to obtain performance data 201 from a mobile platform (e.g., from a server on the mobile platform). The performance data 201 may include startup latency data, which may represent the time difference between a click event at the media client and the display of the first frame of the linear media channel 203 at the media client. The startup latency may be at least partially based on the processing capacity of the media client, as varying processing systems may require different amounts of decoding time. In some cases, the performance data 201 may be processed (e.g., compared with 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 latency exceeding five seconds may be recorded and / or stored in the data storage device 240. The performance data 201 may also or alternatively include rebuffering data, which may represent the number and / or duration of rebuffering events experienced during the streaming of the linear media channel 203 during the journey of the mobile platform. In some embodiments, a rebuffering count data indicating more than three rebuffering events per hour may be considered as poor performance.

[0043] In some embodiments, the performance data 201 may include user-provided feedback. For example, the user of the media client may be prompted to provide feedback indicating the quality of experience of the user and / or the media client during the journey of the mobile platform. The performance data 201 related to all linear media channels 203 sent to the mobile platform may be received at the terrestrial server 230 and / or the performance data 201 of a subgroup of the linear media channels 203 sent to the mobile platform may be received at the terrestrial server. For example, the mobile platform may only send performance data 201 related to certain linear media channels or may send performance data 201 of all linear media channels.

[0044] The ground server 230 and / or the server on the vehicle may include a scoring subsystem 238 configured to receive 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 start-up latency data and / or rebuffering data, and the raw start-up latency data and / or rebuffering data may be compared with thresholds to determine the impact on the user experience. Generating the QOE scores may involve combining, aggregating, adjusting, and / or comparing the performance data 201 as needed to evaluate the quality of experience of users on one or more vehicles.

[0045] The scoring subsystem 238 can be configured to aggregate performance data 201 generated by one or more user media clients (e.g., PEDs) on a vehicle and / or compare the aggregated performance data 201 received from one or more user media clients with performance data 201 generated by one or more virtual media clients on the vehicle. In some embodiments, the comparison result between the performance data 201 from the user media clients and the performance data 201 from the virtual media clients can be used to determine the confidence level of one or more virtual media clients and / or modify one or more virtual media clients to increase that confidence level. For example, the scoring subsystem 238 can aggregate performance data 201 from multiple user media clients on the vehicle having a first operating software (e.g., iOS operating system) to generate a first QOE score of 95%. The scoring subsystem 238 can also additionally receive performance data 201 from a virtual media client on the vehicle configured to run the first operating software to generate a second QOE score of 98%. The scoring subsystem 238 can be further configured to generate a confidence score for the virtual media client by subtracting the absolute value difference between the first QOE score and the second QOE score from 100%, resulting in a confidence score of 100% - |95% - 98%| = 97%. The confidence score can indicate the level of accuracy of the performance data 201 generated by the virtual media client with respect to the actual quality of experience of the user media clients on the vehicle. The confidence score can indicate the degree of representativeness of the performance data from the virtual media client with respect to the performance data from the user media clients. The performance score can be used by the scoring subsystem 238 to determine when to perform a training operation (discussed below) and also to determine when the training operation is successful. The scoring subsystem 238 can be configured to generate confidence scores for multiple operating systems (e.g., iOS and Android) over multiple voyages, and the various confidence scores can be summed to generate an overall confidence score for the virtual media client. When only using the performance data from the virtual media client, various modifications can be made to the scoring subsystem 238 based on the confidence score to improve the accuracy of calculating the QOE score. In some embodiments, more than one instance of a particular operating system can run sequentially and / or simultaneously at the virtual media client, and the scoring subsystem 238 can be configured to generate a confidence score for each instance of the operating system. The various generated confidence scores can 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 clients on the mobile platform.

[0046] The scoring subsystem 238 can be configured to generate QOE scores based on each passenger (e.g., each PED), each trip (e.g., each voyage), each vehicle, each satellite beam, and / or each fleet (e.g., an aircraft fleet). In some embodiments, the scoring subsystem 238 can be configured to generate QOE scores based on each passenger and each trip and / or can aggregate the QOE scores for an entire vehicle and / or a vehicle fleet. For example, the scoring subsystem 238 can be configured to generate individual QOE scores based on performance data 201 received from each user media client and / or virtual media client on one or more vehicles. Once each of the individual QOE scores has been generated, the scoring subsystem 238 can be configured to aggregate the individual QOE scores to generate an overall QOE score for all media clients on a vehicle and / or an overall QOE score for all media clients on multiple vehicles.

[0047] In some embodiments, the scoring subsystem 238 can be configured to calculate one or more QOE scores during and / or after a trip of a vehicle. For example, performance data 201 can be received from the vehicle once per trip, multiple times per trip (e.g., every two minutes), once per day, etc., and each time the 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.

[0048] User media clients and / or virtual media clients on a vehicle can be similarly configured to generate and / or transmit performance data 201 in response to a specific event and / or on a periodic basis. For example, a user media client can be configured to generate performance data 201 in response to the start of streaming one or more linear media channels 203 at the user media client. A virtual media client can be configured to generate performance data 201 in response to the start of streaming and / or on a periodic basis (e.g., every two minutes).

[0049] In some embodiments, the scoring subsystem 238 may be configured to collect and / or aggregate performance data 201 generated over any suitable time period to generate one or more QOE scores. The time period over which the performance data 201 is collected may be large enough such that a sample of the performance data 201 may include one or more instances of relatively infrequent events (e.g., rebuffering events) used to calculate the QOE score. For example, performance data 201 indicating a rebuffering event that occurs once every thirty minutes may result in a much better QOE score than performance data 201 indicating a rebuffering event that occurs once every five minutes. Thus, it may be advantageous to collect performance data 201 over a sufficient time period (e.g., 30 minutes) to accurately determine the QOE. In some embodiments, the scoring subsystem 238 may be configured to determine the success level of a plurality of performance data 201 metrics (e.g., startup latency data, rebuffering count data, rebuffering duration data) within a given time period. For example, the scoring subsystem 238 may be configured to determine that a media client and / or a group of media clients experience fewer than a given number of rebuffering events during a two-hour streaming linear media channel cycle 99% of the time.

[0050] The scoring subsystem 238 may 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 startup latency of more than five seconds may be associated with the type of media client reporting and / or experiencing the startup latency. In this way, the scoring subsystem 238 may be configured to determine whether poor performance can be attributed to a particular type of media client rather than generally to the communication service.

[0051] In some embodiments, a QOE score may be generated on a mobile platform based on performance data 201 collected at the mobile platform. The scoring subsystem 238 and / or a similar device on the mobile platform may be configured to generate QOE scores for all received performance data 201 and / or for a subgroup of the received performance data 201 (e.g., performance data 201 indicating values above and / or below a given threshold and / or performance data 201 stored at the data storage device 240).

[0052] The QOE score generated by the scoring subsystem 238 may indicate the user experience at the mobile platform with respect to the transmitted linear media channel 203. In some embodiments, the scoring subsystem 238 and / or other components of the terrestrial 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 that drops below or exceeds a threshold score value. The one or more alert functions may be configured to determine the root cause of the low score.

[0053] The manner in which QOE scores can be modeled can vary according to the implementation. In some implementations, a database can be constructed at the data storage device 240 of a separate media client to provide QOE feedback at that media client. The scoring subsystem 238 can be configured to match the feedback with a QOE assessment performed at the mobile platform. When a sufficient amount of data samples have been obtained from a media client on the mobile platform (including, for example, a virtual media client on the mobile platform), the performance data 201 in the database can be used as a reference to determine the QOE score based at least in part on calculations performed at the terrestrial server 230 and / or a server and / or virtual media client on the mobile platform.

[0054] In some implementations, the scoring subsystem 238 can be configured to be trained, for example, via a training operation using machine learning. For example, the performance data 201 collected from a given media client can be compared with the aggregated performance data 201 for a set of media clients (e.g., all media clients on a given mobile platform). Machine learning can be utilized to determine the differences between the data for a particular media client and the aggregated data for a set of media clients. For example, a first media client can report a startup latency of 3.2 seconds, while a set of media clients can report a combined startup latency of 3.4 seconds. The performance data 201 for the first media client can be measured against high-end media clients including modern and / or relatively powerful operating systems to determine how the first media client compares to the high-end media clients. In some implementations, an algorithm can be utilized to determine the device type of the first media client (e.g., "high-end" or "low-end"). Thus, the QOE score generated by the scoring subsystem 238 for the first media client can be customized, weighted, and / or otherwise processed at least in part based on the determined device type of the first media client. In some implementations, the QOE scores generated for a set of media clients (e.g., all media clients on a mobile platform) can be weighted and / or otherwise processed at least in part based on the device type of the media clients.

[0055] In some implementations, the scoring subsystem 238 can be configured to compare the performance data 201 associated with a first media client with the performance data 201 associated with a second media client. The results of such device-to-device comparisons can be used to detect faults in the first media client, the second media client, and / or other media clients. In some implementations, the value of the median performance data 201 can be used to exclude outlier performance data 201 for a particular media client. For example, the scoring subsystem 238 can be configured to exclude values of performance data 201 that are unusually high and / or low when aggregating the performance data 201 and / or generating one or more QOE scores based on the performance data 201.

[0056] A group of some linear media channels 203 may be encoded at a different bit rate than other groups. For example, the first linear media channel 203 (e.g., a news channel) may have a relatively low bit rate, while the second linear media channel 203 (e.g., a sports channel) may have a relatively high bit rate. In an optional embodiment, a user is able to select a bit rate for a given group of linear media channels 203, and / or the terrestrial server 230 and / or the airborne server may be configured to select a bit rate for the linear media channels 203 in response to a performance assessment. For example, a lower bit rate may be used under poor transmission conditions.

[0057] Range View

[0058] Figure 3 An airborne data monitoring system associated with a vehicle / mobile platform 305 is shown in accordance with one or more embodiments. The airborne monitoring system includes an airborne server 320 and an associated airborne data repository 340, which may include a non-volatile data storage medium and / or may be configured to store specific data including performance data 301, request data 303, and / or linear media channels 304. Although the airborne server 320 and the airborne data storage device 340 are shown as separate components in Figure 3 FIG., the airborne server 320 and the airborne data storage device 340 may be combined into a single device or may be different devices.

[0059] The mobile platform 305 may include 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 includes one or more of an antenna 382, a transceiver 384, and a modem 386 for facilitating 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 the airborne server 320 and / or other network access components (not shown). One or more user media clients on the mobile platform 305 (including the PED 316 and / or the seat-back entertainment system 318) may include control circuitry configured to execute one or more applications for obtaining and / or occupying linear media channels 304 stored in the data repository 340 and / or obtained from a remote server via the network 322. In some embodiments, a user may have the option of using the user media client to select / request one or more media content items.

[0060] In some embodiments, the on-board server 320 may be configured to serve multiple media clients on a mobile platform (e.g., PED 316 and / or seat-back entertainment system). For example, the on-board server 320 may be configured to receive and / or aggregate media requests from multiple media clients. Additionally, the on-board server 320 may be configured to send media channels (e.g., linear media channel 304) received from a remote server to multiple media clients. In some embodiments, the on-board server 320 may be configured to send a common media channel to multiple media clients and / or may be configured to send different media channels to different media clients.

[0061] The network access terminal 381 may provide connectivity between the on-board server 320 and one or more terrestrial servers, for example, via a satellite and a gateway (see Figure 1 ). In some embodiments, the on-board server 320 may be configured to send and / or obtain data from various media clients and / or service access devices (e.g., WAP 365) on the vehicle 305 via the network access terminal 381 or other network interfaces for sending and / or receiving performance data 301, request data 303, and / or linear media channel 304. In some embodiments, the network access terminal 381 may be configured to establish one or more wired and / or wireless connections with media clients and / or service access devices on the mobile platform 305. The media clients may be configured to send media requests to the on-board server 320 and / or a remote server (e.g., via one or more connections established by the network access terminal 381). The on-board server 320 may be configured to aggregate the received media requests to generate request data 303 and / or send the request 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.

[0062] For convenience, the following description refers to the mobile platform 305 as a vehicle, such as an airplane. User media clients 316, 318 disposed within the vehicle 305 can include any type of PED (e.g., smart phone, laptop, tablet, netbook, etc.) brought onto the vehicle 305 by a passenger, as well as the passenger seatback system 318 and / or other devices on the vehicle 305. The user media clients 316, 318 can be configured to communicate with an on-board server 320 via a communication link that can be wired and / or wireless. The communication link can be, for example, part of a local area network (such as a wireless local area network (WLAN) supported by one or more WAPs 365 on the vehicle 305). One or more WAPs 365 can be distributed around the vehicle 305 and can provide traffic switching and routing functionality in conjunction with the server 320; for example, as part of a WLAN extended service set (ESS), etc.

[0063] A passenger on the vehicle can interact with the on-board server 320 in any suitable or desired manner. For example, a linear media channel 304 can be presented to the passenger using an electronic display of the PED 316 associated with the passenger (such as via a web browser application, a native application, etc.) or using an interface associated with the vehicle integrated media system (such as the seatback media system 318). The on-board server 320 can be configured to act as a media delivery system and / or content server for providing 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).

[0064] In some embodiments, a user may provide an input (e.g., a selection of a linear media channel 304) to the PED 316 and / or the media system 318 to request streaming of the linear media channel 304 at the PED 316 and / or the media system 318. In response to the user input, the PED 316 and / or the media system 318 may be configured to send one or more requests indicating the requested linear media channel 304 to the on-board server 320. In response to such a request, 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. When 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 the 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 been received from the remote server in response to a request from a different user), the on-board server 320 may be configured to directly distribute the linear media channel 304 to the PED 316 and / or the media system 318 in response to a request from the PED 316 and / or the media system 318 without sending a request to the remote server.

[0065] The on-board server 320 may include control circuitry for implementing the functionality in accordance with 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 channel 304, the performance data 301, and / or the request data 303.

[0066] As Figure 3As shown, the on-board server 320 may include a connectivity unit (e.g., an In-Flight Connectivity (IFC) unit for an aircraft), a media unit 325 (e.g., an In-Flight Entertainment (IFE) unit for an aircraft), a Web proxy 327, and a content distribution unit 329. The connectivity unit 323 may be configured to provide connectivity between the network 322 and media clients and / or service access devices on the mobile platform 305. The media unit 325 may be configured to provide various linear media channels 304 to media clients on the mobile platform 305, including movies and other on-demand content. The Web proxy 327 may be configured to manage certain media requests for linear media channels from media clients on the mobile platform 305. For example, if a user and / or media client sends a media request specifying a linear media channel (e.g., a live TV 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 the media client sends a media request identifying / specifying a linear media channel that is currently unavailable, then the distribution unit 329 may 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.

[0067] In some embodiments, the on-board server 320 may be configured to receive performance data 301 from one or more media clients on the mobile platform 305, including, for example, a virtual media client 350 and / or a user media client. The on-board server 320 may be further configured to send the performance data 301 obtained from media clients on the mobile platform to one or more remote servers.

[0068] One or more virtual media clients 350 may be located on the mobile platform 305. Although the virtual media client 350 is Figure 3 shown as a device separate from the on-board server 320, the virtual media client 350 may be a component of the on-board server 320 and / or may be connected to the on-board server 320 via wired and / or wireless connections. The on-board server 320 may be configured to send 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 on-board server 320 to the virtual media client 350 may also be sent by the on-board server 320 to one or more user media clients (e.g., PED 316 and / or seatback system 318) on the mobile platform 305.

[0069] In some cases, performance data 301 obtained at the on-board server 320 from user media clients (including, for example, PED 316 and entertainment system 318) may provide inconsistent and / or unreliable data. For example, compared to a high-end PED 316, a low-end PED 316 may experience very different quality of experience results. The performance differences between the low-end PED 316 and the high-end PED 316 may be due to any one of a variety of factors, including memory and processing capabilities, as well as many other factors. Thus, the various PEDs 316 on the mobile platform 305 may not be able to provide a unified and / or reliable sample indicative of the performance of the communication services provided on the mobile platform 305.

[0070] In some embodiments, one or more virtual media clients 350 may be configured to provide a central and / or unified process for generating performance data 301 for evaluation at the on-board server 320 and / or at 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 allow the virtual media client 350 to stream linear media channels 304 using various operating systems. For example, the virtual media client 350 may be configured to stream linear media channels 304 using the Android operating system and / or the iOS operating system. In some embodiments, the virtual media client 350 may be configured to run multiple operating systems simultaneously or sequentially and / or play different sets of linear media channels 304 simultaneously or sequentially using different or the same operating systems. The virtual media client 350 may be further configured to store emulation data 354 to allow the virtual media client 350 to emulate a variety of media software, including Web / web browsers, applications, and / or media players. For example, the virtual media client 350 may be configured to use the emulation data 354 to stream one or more linear media channels 304 using a set of commands and / or operations that may be similar to and / or the same as the commands and / or operations associated with one or more operating systems, web browsers, media players, etc.

[0071] Using different operating system data 352 and / or emulation data 354 at the virtual media client 350 can allow for the detection of differences that may be due to different operating systems. For example, the virtual media client 350 can be configured to generate a first set of performance data 301 using a first operating system and a second set of performance data 301 using a second operating system. A scoring subsystem on the mobile platform 305 and / or at a ground server can 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 difference between the first QOE score and the second QOE score, it can be determined that there is a problem with the operating system associated with the lower QOE score.

[0072] In some embodiments, the comparison result between 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 can be used to determine the confidence level of one or more virtual media clients 350 and / or modify one or more virtual media clients 350 to increase the confidence level. For example, the on-board server 320 and / or a remote server can aggregate the performance data 301 from multiple PEDs 316 and / or entertainment systems 318 on the mobile platform 305 having a first operating software (e.g., iOS operating system) to generate a first QOE score of 95%. The on-board server 320 and / or a remote server can additionally receive the performance data 301 from the virtual media clients 350 on the mobile platform 305 that also have the first operating software to generate a second QOE score of 98%. The on-board server 320 and / or a remote server can be further configured to generate a confidence score for the virtual media client 350 by subtracting the absolute value difference between the first QOE score and the second QOE score from 100%, resulting in a confidence score of 100% - |95% - 98%| = 97%. The confidence score can indicate the accuracy level of the performance data 301 generated by the virtual media client 350 with respect to the actual quality of experience of one or more PEDs 316 and / or entertainment systems 318 on the mobile platform 305. The on-board server 320 and / or a remote server can be configured to generate confidence scores for multiple operating systems (e.g., iOS and Android) over multiple trips, and the various confidence scores can be aggregated to generate an overall confidence score for the virtual media client 350. Various modifications can be made to the virtual media client 350 based on the confidence score to improve the performance of the virtual media client 350. In some embodiments, the operating system data 353 at the virtual media client 350 can include more than one instance of a particular operating system and / or more than one instance of the operating system can be running simultaneously at the virtual media client 350, and the on-board server 320 and / or a remote server can be configured to generate a confidence score for each instance of the operating system.

[0073] The virtual media client 350 can be configured to run different operating systems and / or instances / versions of one or more operating systems at different times during the journey of the mobile platform 305. For example, the virtual media client 350 can be configured to cycle dynamically and / or periodically through multiple operating systems and / or instances of operating systems during the journey. In some embodiments, the virtual media client 350 can be configured to run multiple operating systems and / or instances of one or more operating systems in response to a relatively low confidence score for the virtual media client. For example, in response to the confidence score of the virtual media client 350 dropping below a threshold during a period of one or more journeys of the mobile platform 305, the virtual media client 350 can be configured to cycle dynamically through multiple operating systems and / or instances of one or more operating systems to generate confidence scores of the virtual media client 350 for the multiple instances and / or multiple operating systems. The generated confidence scores can be compared to determine the highest confidence score, which can be associated with the operating system and / or instance of the operating system most likely to be used by the PED 316 and / or the entertainment system 318 on the mobile platform 305. In this way, the quality of experience score can be calibrated based on one or more characteristics of the user media client on the mobile platform 305 (e.g., device type and / or operating system).

[0074] In some embodiments, the virtual media client 350 can be configured to generate performance data 301 associated with each operating system and / or instance of the operating system that the virtual media client 350 is configured to run. For example, the virtual media client 350 can be configured to generate a first set of performance data 301 associated with a first operating system and generate a second set of performance data 301 associated with a second operating system and / or send the first set of performance data and the second set of performance data 301 to the on-board server 320.

[0075] The virtual media client 350 can be configured to run different operating systems and / or instances of the operating system simultaneously, sequentially, and / or alternatively. For example, the virtual media client 350 can be configured to run a first operating system and switch to a second operating system.

[0076] 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 one by one. The virtual media client 350 can be configured to mimic any of the multiple device characteristics. For example, an Android device may have a unique way of playing media content, and the virtual media client 350 can be configured to monitor quality of experience data similarly to an Android device.

[0077] Some user media clients may operate using a closed ecosystem that can 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 use the operating system and / or software applications inherent in such closed ecosystem devices to provide performance data 301.

[0078] The performance data 301 collected from the virtual media client 350 can be used to provide meaningful reports related to the performance of communication services provided on the mobile platform 305 (including the performance of linear media channels). In addition, the virtual media client 350 can be used to diagnose various problems related to the communication services at the mobile platform 305. For example, if the virtual media client 350 provides performance data 301 indicating good performance while the PED 316 provides performance data 301 indicating poor performance, the performance data 301 of the virtual media client 350 can be compared with the performance data 301 of the PED 316 to determine the difference in performance results. In addition, in response to the detected result difference, the user of the PED 316 can be notified of a possible problem with the PED 316.

[0079] In some embodiments, the virtual media client 350 may be configured to play and / or monitor some or all of the linear media channels 304 provided to the mobile platform 305. In response to reception, different methods of selecting some of the linear media channels 304 for the virtual media client may be employed to receive and / or provide performance data 301. In some embodiments, the virtual media client 350 may be configured to monitor the linear media channels 304 based on the popularity of the linear media channels 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.

[0080] In some embodiments, the user media client may be configured to send media requests specifying one or more linear media channels. Similarly, in some embodiments, the virtual media client 350 may be configured to send media requests specifying one or more linear media channels. In some cases, the virtual media client 350 may not need to send a media request. For example, it may be beneficial for the virtual media client 350 to receive the most popular linear media channel and / or at least one linear media channel that the user media client is currently accessing on the mobile platform 305. Thus, since such linear media channels may already be available to the on-board server 320, the virtual media client 305 is able to receive such linear media channels without sending a media request.

[0081] In some embodiments, the virtual media client 350 may be configured to monitor multiple linear media channels simultaneously or sequentially. In this way, the performance data 301 from the virtual media client 350 can be used to detect performance issues with a particular linear media channel. For example, if the performance data 301 associated with a first linear media channel from the virtual media client 350 indicates good performance, but the performance data 301 associated with a second linear media channel from the virtual media client 350 indicates poor performance, then it can be determined that there is an issue associated with the second linear media channel. In some cases, the virtual media client 350 may be configured to monitor only the linear media channels requested by the PED 316 and / or the seatback system 318, such that the virtual media client 350 may not increase the content requirements of the mobile platform 305.

[0082] In some embodiments, the virtual media client 350 may be separate from the on-board server 320, as Figure 3 shown. Additionally, the virtual media client 350 may be configured to receive the linear media channels 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 way, the performance data 301 from the virtual media client 350 indicating poor performance can be used to identify performance issues associated with the WAP 365.

[0083] The virtual media client 350 may be configured to be located on the mobile platform 305. In this way, the virtual media client 350 may be configured to accurately represent the quality of experience performance of the devices on the mobile platform 305. Although the virtual media client 350 is shown as separate from the on-board server 320, the virtual media client 350 may be incorporated into the on-board server 320. Additionally, the virtual media client 350 may be configured to receive the linear media channels 304 directly from the on-board server 320 (e.g., without receiving the linear media channels 304 via the WAP 365).

[0084] Collecting performance data 301 from the virtual media client 350 can advantageously allow the collection of performance data 301 without 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 can prevent the collection of performance data 301 and / or other relevant data. Additionally, in some cases, a particular PED may include hardware and / or software that may be unfamiliar and / or otherwise provide data that may be difficult or impossible to use for evaluating the performance of the communication system at the mobile platform 105. Further, in some cases, a user may preferably not have data collected from the user's PED 316. Thus, the virtual media client 350 can advantageously allow the collection of performance data 301 at the mobile platform 305 without collecting from the user media client.

[0085] Additionally, the virtual media client 350 can be configured to provide performance data 301 that can represent the performance of the user media client on the mobile platform 305. In some cases, performance issues may be caused by transmission failures between the satellite and the on-board server 320. Thus, even if the data transmission between the remote (e.g., ground) server and the satellite is good, performance issues related to the various linear media channels 304 received from the satellite at the mobile platform 305 via the network 322 may occur due to various factors (e.g., weather) during the transmission from the satellite to the mobile platform 305. Since the virtual media client 350 can be located on the mobile platform 305, any performance issues that occur during the data transmission between the satellite and the on-board server 320 can be experienced by the virtual media client 350 on the mobile platform 305 as well as the user media client.

[0086] 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 the mobile platform 305. In this way, for example, the performance data 301 related to the PED 316 can be compared with the performance data 301 of the virtual media client 350 to detect PEDs 316 that are experiencing performance issues. For example, if the PED 316 provides performance data 301 that indicates very different performance data 301 from the virtual media client 350, the performance data 301 from the PED 316 can be excluded and / or removed from the performance evaluation determination.

[0087] Statistical thresholds can be utilized to identify performance issues associated with the PED 316 and / or the virtual media client 350. For example, if all of the PEDs 316 on the mobile platform 305 exhibit poor performance of a communication service but the virtual media client 350 indicates good performance, a problem with the virtual media client 350 can be determined.

[0088] Quality of Experience Assessment Process

[0089] Figure 4 Process 400 for in-air performance evaluation of communication services provided on a mobile platform in accordance with embodiments of the present disclosure is shown. While the steps of process 400 are described as being performed by an in-air server, such steps can alternatively be performed by a remote server.

[0090] At block 405, process 400 involves receiving one or more media requests from user media clients located on the mobile platform. Media requests can be received from multiple user media clients. In some embodiments, media requests can be received continuously and / or periodically. Each media request in the one or more media requests can indicate and / or specify one or more linear media channels. The one or more linear media channels can include channels not currently accessed at the mobile platform and / or linear media channels currently being accessed (e.g., being played at one or more user media clients on the mobile platform). User media clients can send media requests periodically and / or in response to certain events (e.g., a user selects a new channel at the user media client).

[0091] In some embodiments, the virtual media client on the mobile platform may also be configured to send media requests to the on-board server. The manner in which the virtual media client requests, receives, and / or accesses a linear media channel may vary with the embodiment. In some embodiments, the virtual media client may be configured to send media requests only for linear media channels that are currently being occupied by one or more user media clients. For example, the virtual media client may be configured to receive all linear media channels that are currently being occupied and / or may be configured to monitor all 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 fewer than all of the occupied linear media channels, such as by periodically switching between channels to monitor linear media channels one at a time and / or by selecting representative channels for monitoring. In other embodiments, the virtual media client may be configured to receive and / or monitor channels that are not currently occupied by user media clients on the mobile platform. For example, the virtual media client may be configured to temporarily request and / or monitor channels in a queue of channels that may not currently be occupied by user media clients. In this way, the virtual media client may be configured to ensure proper performance of all linear media channels provided via the communication service.

[0092] At block 410, process 400 involves aggregating the received media requests to generate request data that specifies certain linear media channels. 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, aggregating 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.

[0093] At block 420, process 400 involves receiving linear media channels from the remote server. The received linear media channels may include all or a subgroup of the linear media channels specified in the request data.

[0094] At block 425, process 400 involves sending / providing the linear media channels to a plurality of user media clients on the mobile platform. The on-board server may be configured to provide all of the received linear media channels to all of the user media clients, or may provide only the linear media channels requested by a particular user media client to that particular user media client.

[0095] At block 430, process 400 involves sending / providing at least one of the received linear media channels to a virtual media client on a mobile platform. In some embodiments, the linear media channel provided to the virtual media client can be selected at least in part based on the popularity or other characteristics of the linear media channel.

[0096] At block 435, process 400 involves receiving a first set of performance data from the virtual media client. The first set of performance data can include a single type of performance data (e.g., one of startup data and rebuffering data) or can include multiple types of performance data (e.g., both startup data and rebuffering data). The performance data can indicate the performance (e.g., streaming performance) of the linear media channel provided to the virtual media client.

[0097] 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 can include a single type of performance data (e.g., one of startup data and rebuffering data) or can include multiple types of performance data (e.g., both startup data and rebuffering data). In some embodiments, the first set of performance data can include different types of performance data than the second set of performance data, or the first set of performance data can include the same types of performance data as the second set of performance data.

[0098] In some embodiments, the on-board server and / or the ground server can receive performance data from the virtual media client and / or one or more user media clients. The received performance data can be correlated and / or aggregated with other performance data at the on-board server and / or the ground server to generate one or more quality of experience scores. In some embodiments, the characteristics of the virtual media client (e.g., the operating system and / or software) can be adjusted and / or changed based on the performance data received from the virtual media client and / or one or more user media clients.

[0099] General Notes

[0100] Unless the context clearly requires otherwise, throughout the specification and claims, the words "comprising," "including," and the like shall be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is, in the sense of "including, but not limited to." As generally used herein, the term "coupled" means that two or more elements can be directly connected or connected through one or more intermediate elements. Additionally, when used in this application, the terms "herein," "above," "below," and words of similar import shall refer to the entire application rather than to any particular part of the application. Where the context permits, words used herein in the singular or plural may also include the plural or singular, respectively. The word "or" refers to a list of two or more items, and the word encompasses all of the following interpretations of the word: any item in the list, all items in the list, and any combination of items in the list.

[0101] References throughout this disclosure to "some embodiments," "certain embodiments," or "an embodiment" mean that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least some embodiments. Thus, the phrases "in some embodiments," "in certain embodiments," or "in an embodiment" that appear 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. Additionally, the embodiments disclosed herein may or may not be embodiments of the invention. For example, the embodiments disclosed herein may partially or fully include non-inventive features and / or components. Further, in one or more embodiments, it will be apparent to those of ordinary skill in the art that, in accordance with this disclosure, particular features, structures, or characteristics can be combined in any suitable manner.

[0102] The foregoing detailed description of embodiments of the invention is not intended to be exhaustive or to limit the invention to the precise forms disclosed above. While specific embodiments and examples of the invention have been described above for illustrative purposes, various equivalent modifications within the scope of the invention will be possible for those skilled in the relevant art. For example, while processes or blocks are presented in a given order, alternative embodiments may execute routines with steps in a different order, or employ systems with blocks, and some processes or blocks may be deleted, moved, added, subdivided, combined, and / or modified. Each of these processes or blocks can be implemented in a variety of different ways. Additionally, while processes or blocks are sometimes shown as being executed in sequence, these processes or blocks may alternatively be executed in parallel or at different times.

[0103] The teachings of the invention provided herein can be applied to other systems, and not necessarily to the systems described above. The elements and acts of the various embodiments described above can be combined to provide further embodiments.

[0104] While some 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 invention. In fact, the novel methods and systems described herein may be embodied in many other forms; furthermore, various omissions, substitutions and changes may be made to the forms of the methods and systems described herein without departing from the essence of the disclosure. The appended claims and their equivalents are intended to cover such forms or modifications that will fall within the scope and essence of the disclosure.

[0105] The appended claims and their equivalents are intended to cover such forms or modifications that will fall within the scope and essence of the claimed protection. For example, the various components shown in the drawings may be implemented as software and / or firmware on a processor, an ASIC / FPGA, or dedicated hardware. Moreover, 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 disclosure. Although the disclosure provides certain preferred embodiments and applications, other embodiments that are obvious to those of ordinary skill in the art (including embodiments that do not provide all of the features and advantages described herein) are also within the scope of the disclosure. Accordingly, the scope of the disclosure is intended to be defined only by reference to the appended claims.

[0106] The methods and processes described herein may be embodied in software code modules executed by one or more general and / or special purpose computers and may be automated partially or completely via such software code modules. The term "module" may refer to logic embodied in hardware and / or firmware, or to a collection of software instructions written in a programming language such as C or C++ that may have entry and exit points. Software modules may be compiled and linked into an executable program, installed in a dynamic link library, or may be written in an interpreted programming language such as BASIC, Perl, or Python. It should be understood that software modules may call from other modules or from 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 can conceptually implement related functionality. It should also be understood that hardware modules may be composed of connected logic units such as gates and flip-flops, and / or may be composed 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, although in some embodiments, modules may be compiled separately, in other embodiments, modules may represent a subgroup of instructions of a separately compiled program and may not have an interface available to other logical program units.

Claims

1. A communication system, comprising: An airborne server located on a mobile platform; A remote server located outside the mobile platform, the remote server being configured to generate one or more linear media channels for use by the airborne server; And A virtual media client storing a first operating system and a second operating system, the virtual media client being located on the mobile platform; Wherein: The airborne server is configured to: Receive one or more media requests from a plurality of user media clients on the mobile platform, the one or more media requests specifying one or more linear media channels; 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 according to the received one or more media requests; Provide at least a first linear media channel among the one or more linear media channels to the virtual media client; receive a first set of performance data from the virtual media client associated with the first linear media channel and the first operating system; and Receive a second set of performance data from the virtual media client associated with the first linear media channel and the second operating system; The virtual media client is configured to: Receive one or more linear media channels from the airborne server; Stream the first linear media channel using the first operating system and the second operating system; and Transmit the first set of performance data to the airborne server associated with the first linear media channel and the first operating system; and Transmit the second set of performance data from the virtual media client associated with the first linear media channel and the second operating system.

2. The communication system according to claim 1, wherein the airborne server is further configured to send request data indicating the one or more linear media channels to the remote server and provide the one or more linear media channels received from the remote server in response to the request data.

3. The communication system according to claim 2, wherein the request data includes an aggregation of the one or more media requests.

4. The communication system according to any one of claims 1 to 3, wherein: The virtual media client is further configured to send a media request to the airborne server; and The airborne server is further configured to provide at least the first linear media channel to the virtual media client in response to the media request from the virtual media client.

5. The communication system according to claim 4, wherein the airborne server is further configured to: Receive 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; Receive the second linear media channel from the remote server; Provide the second linear media channel to the virtual media client; And Receiving, from the virtual media client, a second set of performance data associated with the second linear media channel.

6. The communication system according to claim 1, wherein the first set of performance data relates to streaming the first linear media channel at the virtual media client.

7. The communication system according to claim 1, further comprising a scoring subsystem configured to: obtain the first set of performance data from the on-board server and calculate a quality of experience score associated with the first linear media channel at least partially based on the first set of performance data.

8. The communication system according to claim 1, wherein the on-board server is further configured to receive a second set of performance data from a first user media client among the plurality of user media clients.

9. The communication system according to claim 8, further comprising a scoring subsystem, wherein the on-board server is configured to provide the first set of performance data and the second set of performance data to the scoring subsystem.

10. The communication system according to claim 9, wherein the scoring subsystem is configured to generate a quality of experience score at least partially based on the first set of performance data and the second set of performance data.

11. The communication system according to claim 10, wherein generating the quality of experience score involves comparing the first set of performance data with the second set of performance data.

12. The communication system according to claim 11, wherein the scoring subsystem is further configured to compare the first set of performance data with the second set of performance data to generate a confidence score for the virtual media client.

13. The communication system according to claim 12, wherein the scoring subsystem is further configured to perform a training operation at least partially based on the confidence score.

14. The communication system according to claim 1, wherein the virtual media client is configured to cycle between the first operating system and the second operating system.

15. The communication system according to claim 1, wherein the virtual media client is further configured to: store simulation data for emulating one or more web browsers; and stream the first linear media channel using the simulation data.

16. The communication system according to claim 1, wherein at least one of the plurality of user media clients is a personal electronic device.

17. The communication system according to claim 1, wherein the one or more linear media channels include television content.

18. The communication system according to claim 1, wherein the first set of performance data includes one or more of startup data and re-buffering data.

19. The communication system according to claim 1, wherein the on-board server is further configured to selectively provide the first linear media channel to the virtual media client at least partially based on the popularity of the first linear media channel.

20. A communication method, comprising: Receiving, at an on-board server located on a mobile platform, one or more media requests from a plurality of user media clients on 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 external to the mobile platform, the remote server being configured to generate the one or more linear media channels for use by the on-board server; Providing, from the on-board server to the plurality of user media clients, the one or more linear media channels according to the received one or more media requests; Providing, from the on-board server to a virtual media client on the mobile platform, at least a first linear media channel of the one or more linear media channels; And Receiving, at the on-board server, from the virtual media client a first set of performance data associated with the first linear media channel and a first operating system; And Receiving, on the on-board server, from the virtual media client a second set of performance data associated with the first linear media channel and a second operating system.

21. The method according to claim 20, further comprising sending request data indicating the one or more linear media channels to the remote server and providing, in response to the request data, the one or more linear media channels received from the remote server.

22. The method according to claim 21, wherein the request data includes an aggregation of the one or more media requests.

23. The method according to any one of claims 20 to 22, further comprising: Sending a media request from the virtual media client to the on-board server; And Sending, in response to the media request from the virtual media client, the linear media channel from the on-board server to the virtual media client.

24. The method according to claim 23, further comprising: Receiving, at the on-board server, from the virtual media client a 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, from the on-board server to the virtual media client, the second linear media channel; And Receiving, at the on-board server, from the virtual media client a second set of performance data associated with the second linear media channel.

25. The method according to claim 20, wherein the first set of performance data relates to streaming the first linear media channel at the virtual media client.

26. The method according to claim 20, further comprising: Obtaining, at a scoring subsystem, the first set of performance data from the on-board server; And 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.

27. The method according to claim 20, further comprising: Receive a second set of performance data at the airborne server from a first user media client among the plurality of user media clients.

28. The method according to claim 27, further comprising providing the first set of performance data and the second set of performance data from the airborne server to a scoring subsystem.

29. The method according to claim 28, further comprising generating a quality of experience score at the scoring subsystem based at least in part on the first set of performance data and the second set of performance data.

30. The method according to claim 29, wherein generating the quality of experience score involves comparing the first set of performance data with the second set of performance data.

31. The method according to claim 30, further comprising comparing the first set of performance data with the second set of performance data at the scoring subsystem to generate a confidence score for the virtual media client.

32. The method according to claim 31, further comprising performing a training operation at the scoring subsystem based at least in part on the confidence score.

33. The method according to claim 20, wherein the virtual media client is further configured to store a first operating system and a second operating system, and the method further comprises streaming at the virtual media client using the first operating system and the second operating system.

34. The method according to claim 33, wherein the first set of performance data includes performance data associated with the first operating system, and the method further comprises receiving at the airborne server from the virtual media client a second set of performance data associated with the second operating system.

35. The method according to claim 33, further comprising cycling at the virtual media client between the first operating system and the second operating system.

36. The method according to claim 20, further comprising: storing at the virtual media client simulation data for simulating one or more web browsers; and streaming the first linear media channel at the virtual media client using the simulation data.

37. The method according to claim 20, wherein at least one of the plurality of user media clients is a personal electronic device.

38. The method according to claim 20, wherein the one or more linear media channels include television content.

39. The method according to claim 20, wherein the first set of performance data includes one or more of startup data and rebuffering data.

40. The method according to claim 20 further comprises: Selectively provide the first linear media channel from the airborne server to the virtual media client based at least in part on the popularity of the first linear media channel.

Citation Information

Patent Citations

  • Mobile device-based content loader for entertainment system

    CN108289094A

  • System and method for providing network addresses to mobile platforms

    CN1582542A