System and method for assessing quality of experience of linear media channel

The system addresses the challenge of evaluating linear media channels on mobile platforms by using a virtual media client to collect and analyze performance data, ensuring accurate quality-of-experience scores and improving communication services on mobile platforms.

JP2025106553AActive Publication Date: 2025-07-15VIASAT INC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2025067154
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-04-15
Publication Date
2025-07-15
Estimated Expiration
2040-08-19

AI Technical Summary

Technical Problem

Existing systems struggle to accurately evaluate the quality of experience of linear media channels on mobile platforms like aircraft, as user media clients may provide non-uniform or unreliable performance data due to hardware and software variations, and privacy restrictions can hinder data collection.

Method used

A system with an in-flight server and a virtual media client within the mobile platform, which receives linear media channels from a remote server, aggregates media requests, and collects performance data from both user and virtual media clients to generate quality-of-experience scores, using a scoring subsystem to analyze and adjust data for accuracy.

Benefits of technology

Ensures accurate evaluation of communication services by using a virtual media client to provide representative performance data, overcoming hardware and privacy issues, and enabling continuous monitoring and improvement of media streaming quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025106553000001_ABST
    Figure 2025106553000001_ABST
Patent Text Reader

Abstract

To provide a system, a device, and a method for monitoring data and / or managing the transmission of data on a moving platform including vehicles.SOLUTION: An on-board monitoring system includes an on-board server and a virtual media client inside a mobile platform 305, and a remote server outside. The remote server generates a linear media channel. The on-board server receives the linear media channel from the remote server, provides the linear media channel to a plurality of user media clients in response to requests from the user media clients, and provides at least a first linear media channel to the virtual media client. The virtual media client receives the linear media channel from the on-board server and transmits performance data to the on-board server.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The present disclosure relates to the evaluation of the quality of experience of a linear media channel, and more particularly, to a system and method for evaluating the quality of experience of a linear media channel for a mobile platform including an aircraft.

Summary of the Invention

[0002] This specification describes a system, device, and method for monitoring data and / or managing the transmission of data in a mobile platform including a vehicle.

[0003] In one embodiment, a communication system is described that includes an in-flight server located within the 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 in-flight server. The communication system further includes a virtual media client located within the mobile platform. The virtual media client is configured to receive a linear media channel from the in-flight server and transmit performance data to the in-flight server. The in-flight server is configured to receive one or more media requests from a plurality of user media clients within the mobile platform. The one or more media requests specify one or more linear media channels. The in-flight server is further configured to receive 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 the purpose of summarizing the present disclosure, certain aspects, advantages, and novel features are described herein. It should be understood that not all of such advantages may necessarily be achieved according to any particular embodiment. Accordingly, the disclosed embodiments may be implemented in a manner that achieves or optimizes the advantages or groups of advantages taught herein without necessarily achieving other advantages that may be taught or suggested herein.

Brief Description of the Drawings

[0005] Various embodiments are shown in the accompanying drawings for illustrative purposes and should not be construed as limiting the scope of the present disclosure in any way. Additionally, various features of the disclosed different embodiments can be combined to form additional embodiments that are part of the present disclosure.

Figure 1

Figure 2

Figure 3

Figure 4

Best Mode for Carrying Out the Invention

[0006] The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the claimed invention. In certain implementations, the present disclosure relates to a system, device, and method for managing system log data related to passenger services (e.g., provided within a mobile platform) and / or transferring it to and / or from an in-flight monitoring system of a mobile platform.

[0007] Abstract The present disclosure provides a device, system, and process for evaluating quality of experience data for a communication system configured to provide linear media channels and / or other media data to an in-flight media client of a mobile platform (e.g., a vehicle). "Quality of experience" data can refer to any data representing measurements of communication service performance related to the quality of user experience of one or more linear media channels, and can include, for example, startup data and / or rebuffer data. Startup data can include any data indicating the amount of time required to start streaming media data in a media client. Rebuffer data can include any data indicating the number of rebuffer events (rebuffer count) and / or the total time of rebuffer events (rebuffer duration) in a media client during streaming of media data. A rebuffer event can include an interruption of the streaming of media data for the execution of a buffering operation, and can occur as needed at any point during the streaming of media data. In some cases, a rebuffer event may be caused by a failed and / or slow transmission of media data between devices.

[0008] A "linear media channel" can refer to any real-time broadcast of video and / or audio content, and can include, for example, live television content. A linear media channel can include a stream of scheduled content. In response to a user selecting a linear media channel, the user (i.e., the user's media client) can be made to participate in the linear media channel and view the stream of content currently being provided by the linear media channel. For example, the stream of content can be streamed simultaneously to the user's media client and any other media client participating in the linear media channel. Thus, participating in 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 instead may cause the streaming to start at the point currently being streamed to other devices.

[0009] In some embodiments, a linear media channel may be broadcast from a remote (e.g., terrestrial) computing device (e.g., a server) to an in-flight computing device (e.g., a server) within a mobile platform. The in-flight computing system of the mobile platform may be further configured to receive various data transmissions from the remote server, and the remote server may be configured to receive various data transmissions from the in-flight computing system of the mobile platform. The received data is collected, aggregated, filtered, analyzed, and / or processed in other ways within the in-flight mobile platform and / or in the terrestrial computing system.

[0010] Linear media channels and / or other media content can be configured for streaming in 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), such as personal electronic devices (PEDs) like smartphones, laptop computers, and tablets, crew devices, entertainment systems (e.g., seatback entertainment systems in the case of an aircraft), and / or virtual media clients. As used herein, the term "virtual media client" may refer to a dedicated media client specifically configured for use in streaming media content and / or sending quality of experience data in-flight on a mobile platform. The virtual media client may be configured to connect to a computing system (e.g., an in-flight server) within the 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, the virtual media client may be configured to execute and / or emulate multiple operating systems, software applications, and / or media systems.

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

[0012] The virtual media client can advantageously enable access to the performance data within the vehicle even when the user media client within the vehicle cannot provide performance data for any of various reasons. For example, the user media client may have privacy restrictions that prevent the collection of performance data from the user media client. In such a case, since the performance data collected from the virtual media client can be an accurate representation of the quality of the experience at the user media client, the virtual media client can function as a proxy for the user media client.

[0013] Various performance data related to in - flight communication services of a mobile platform can be collected and / or analyzed for various purposes, e.g., to improve and / or maintain 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 (e.g., startup latency and / or rebuffer data) collected from media clients in the vehicle. The performance data may be transmitted from one or more virtual media clients and / or user media clients in the vehicle and collected by one or more scoring subsystems located in the vehicle (e.g., as part of an in - vehicle server) and / or remotely located from the vehicle (e.g., as part of a ground server). The scoring subsystem may 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 may 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 may be configured to analyze the values indicated in the performance data using an associated time component that may involve using a timestamp and / or other time values associated with the performance data values. For example, the scoring subsystem may be configured to determine the number of buffer / rebuffer events over a certain time period (e.g., 1 minute, 30 minutes) and / or compare the determined number to a threshold number of buffer / rebuffer events over a certain time period. As another example, the scoring subsystem may be configured to determine the total rebuffering duration of rebuffer events and compare it to a threshold duration.

[0014] In some cases, performance data may be collected from PEDs and / or other media clients used by passengers and / or crew members on board a mobile platform (e.g., a flight) during movement of the mobile platform (e.g., a flight). However, the performance of communication services in some media clients may be at least partially affected by the software and / or hardware of the media client. For example, a low-end media client and / or a media client running an older operating system may provide results showing relatively poor performance compared to a high-end media client and / or a media client running a newer operating system. The relatively poor performance may be caused by various factors in the media client (e.g., memory, processing power, etc.) and may not generally represent the performance of the communication service (e.g., provided by a terrestrial server and / or an in-flight server). Further, some software and / or hardware may be more suitable for a particular communication system than others. For example, a communication system may be designed for use with iOS devices and may experience more performance issues than in the case of Android devices. Therefore, it may be advantageous for the collection of performance metrics for communication services provided on board a mobile platform to have a unified baseline measurement process via one or more virtual media clients.

[0015] Furthermore, in some cases, the user media client may prevent the transmission of performance data. For example, the user media client may utilize privacy software that may not allow performance data to be shared with one or more servers and / or the scoring subsystem. In such cases, the virtual media client can provide performance data instead of the user media client that cannot provide performance data. In some embodiments, only performance data from one or more virtual media clients may be collected by the scoring subsystem for generating quality-of-experience data. For example, performance data transmitted by one or more user media clients may be ignored and / or actively excluded from analysis by the scoring subsystem. In this way, the generated quality-of-experience data may not reflect performance data from user media clients that may be adversely affected by the operating system type, operating system conditions, privacy restrictions, and / or various other factors.

[0016] The communication services provided within the mobile platform can be provided by various communication system devices located within and / or outside the mobile platform. Various linear media channels can be transmitted through the use of the Internet and / or other networks. The Internet and / or other network services can be provided through the use of a modem and / or other devices within the mobile platform that can communicate with satellites and / or other devices outside the mobile platform. The linear media channels for presentation on a vehicle or other mobile platform can be derived from heterogeneous remote sources such as remote (e.g., terrestrial) servers. In the case of an in-vehicle content presentation platform and / or other mobile platforms, a server may be installed locally, and such a server can receive content as one or more data transfer packages for presentation from one or more remote media servers. For example, an in-vehicle server can be configured to pull together various content services and solutions to provide a desired end-user experience for passengers within a vehicle or other mobile platform. The linear media channels can be received from one or more terrestrial servers, which can receive different types of content items from different content sources.

[0017] One or more servers can be configured to provide data, including linear media channels and / or interface data, to a media client. The one or more servers can be located inside a vehicle (e.g., an airplane) and / or outside the vehicle (e.g., on the ground). In some embodiments, servers on the ground and / or otherwise outside the vehicle can be configured to establish network communication with one or more servers inside the vehicle. Although some embodiments described herein may distinguish between servers inside the vehicle and servers outside the vehicle, some functions performed by such servers may be interchangeable and / or executable on both servers and / or either server.

[0018] Overview of the Network In some implementations, the present disclosure provides a system, process, and device that provide an evaluation of the quality of experience associated with communication services provided inside a mobile platform (e.g., a vehicle). FIG. 1 shows a system 100 for managing the transmission of data between a mobile platform 105, such as a vehicle, and / or a server 120 inside the mobile platform 105 and a ground server 130, according to one or more embodiments. Various data can be stored in a ground data store 140 and / or an in-vehicle data store 170 inside the mobile platform 105. The types of data stored in the ground server 130 and / or the mobile platform 105 are described in more detail in FIGS. 2 and 3. The ground data store 140 and / or the in-vehicle data store 170 can comprise non-volatile data storage.

[0019] System 100 includes in-flight control circuit 121 and / or virtual media client 125, which are installed on and / or disposed on or within a mobile platform 105 such as an aircraft, cruise ship, automobile, or other vehicle. Virtual media client 125 is shown as part of in-flight server 120, but virtual media client 125 may alternatively be implemented within another in-flight component external to in-flight server 120. In some embodiments, virtual media client 125 may be configured to communicate with in-flight server 120 via wired and / or wireless connections.

[0020] Although specific embodiments are disclosed herein in the context of an aircraft or other vehicle, it should be understood that the principles disclosed herein may be applicable to any suitable or desired mobile platform or vehicle. In-flight server 120 can be configured to transmit, receive, and / or otherwise manage in-flight data of mobile platform 105. For example, in-flight server 120 can be configured to transmit media data to various in-flight communication service devices. "Communication service device" can include any device configured to facilitate the provision of passenger services on a mobile platform, and can include one or more modems, transceivers, antennas, WAPs, and / or other in-flight service devices. In some embodiments, in-flight server 120 can be configured to receive and / or filter performance data transmitted from media service devices and / or media clients, including virtual media client 125, within mobile platform 105.

[0021] Performance data received from various communication service devices and / or media clients within the mobile platform 105 is related to the communication services provided on the mobile platform 105. In some embodiments, the performance data may include performance data values related to any of various performance data (e.g., quality of experience data), which may include, inter alia, startup data and / or re-buffering data.

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

[0023] In some embodiments, the acquisition of various data (e.g., performance data, request data, etc.) is at least partially performed 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 satellite network 112 connection can include a communication path between the satellite 110 and the gateway 115. The gateway 115 can communicate data with the satellite 110 and the network 122, and thereby communicate data with the terrestrial server 130. The mobile platform 105 can be configured to receive a forward downlink signal from a satellite access network 112 including the satellite 110 and the gateway 115, and transmit a reverse uplink signal to the satellite-based access network 112 using the satellite 110 and the gateway 115.

[0024] The network 122 can be any type of network and can include, for example, the Internet, an IP network, an intranet, a wide area network (WAN), a local area network (LAN), a virtual private network (VPN), a virtual LAN (VLAN), an optical fiber network, a cable network, a public switched telephone network (PSTN), a public switched data network (PSDN), a public land mobile network, a cellular network, and / or one or more of any other type of network support communication as described herein. Further, the network 122 can include wired (e.g., copper and optical) and / or wireless (e.g., radio and microwave) connections.

[0025] The mobile platform 105 is shown as an airplane in FIG. 1, and certain embodiments are disclosed herein in the context of an airplane, a fleet of airplanes, and / or an airline. However, it should be understood that the embodiments of the present disclosure are applicable to other types and / or groupings of mobile platforms and / or related entities.

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

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

[0028] Ground server Referring to FIG. 2, the terrestrial server 230 may include a control circuit 231 that includes any of a variety of components configured to perform any of a variety of functions. The terrestrial server 230 may be configured to generate and / or transmit various linear media channels 203 (e.g., linear media channels) via the network 222 for use by a server on board a mobile platform. In some embodiments, the terrestrial server 230 may be configured to receive various data including performance data 201 and / or request data 204 from the mobile platform via the network 222. 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 described with respect to FIG. 1). The terrestrial server 230 may include a data storage 240 that is combined with the terrestrial server 230 to form a single device, or may include a data storage 240 that is a different device external to the terrestrial server 230.

[0029] The network 222 may include a wide area network such as the Internet that is accessed by the mobile platform via a satellite communication network. Thus, the communication link between the terrestrial server 230 and the remote mobile platform is achieved via the Internet or other wide area network. Transmission and / or reception of data between the network 222 and the terrestrial server 230 may be facilitated via a network interface 235 configured to establish a network connection between the network 222 and the terrestrial server 230.

[0030] In some embodiments, the terrestrial 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, the request data 204 may be generated and / or transmitted from a server within the mobile platform in response to a received media request from a media client and / or an attempt to access a particular linear media channel 203 in a media client within the mobile platform. In other embodiments where the terrestrial server 230 automatically transmits all linear media channels (broadcasts) regardless of the request data, the request data 204 may not be transmitted from a server within the mobile platform. The data request manager 234 can be configured to determine the content of the request data 204, including which linear media channels 203 can be identified and / or specified in the request data 204. In some embodiments, a server within the mobile platform (e.g., the in-flight server 120 of FIG. 1) can be configured to aggregate received media requests to generate the request data 204. For example, aggregation may involve collecting media requests and / or removing duplicate media requests (e.g., media requests that identify / specify the same linear media channel).

[0031] In some embodiments, the terrestrial server 230 can be configured to transmit a linear media channel 203 via a transmission beam. Each beam may be configured to cover a wide geographic area, and various mobile platforms enter and exit the beam as they move (e.g., in the case of an aircraft, fly) forward. In some embodiments, the beam generated by the terrestrial server 230 can be configured to provide a particular set of the linear media channel 203 to mobile platforms within the beam and / or, specifically, to mobile platforms that are part of a given "beam group". In some cases, only the mobile platforms included in a particular beam group can be configured to receive the linear media channel 203 transmitted via a given beam. The in-flight server of the mobile platform can be configured to transmit request data 204 for requesting to be added to the beam group associated with the terrestrial server 230.

[0032] Media data transmitted via a beam is available on any mobile platform within the beam and / or within a beam group of the beam. For example, the terrestrial server 230 can transmit a specific linear media channel (among other media data) via the beam. Any mobile platform within the geographical area of the beam and / or selectively included in the beam group associated with the beam can receive the specific linear media channel. In some embodiments, the mobile platform is required to request this specific linear media channel (or another linear media channel 203) before receiving the specific linear media channel. For example, the terrestrial server 230 can be configured to transmit a first linear media channel (e.g., a live television channel) as part of a first beam. A mobile platform moving within the beam of the terrestrial server can transmit request data 204 indicating a request to receive the first linear media channel from the terrestrial server 230. In response to receiving the request, the data request manager 234 can be configured to add the mobile platform to the list of mobile platforms selected to receive the first linear media channel. Thus, the mobile platform can be configured to receive the first linear media channel in response to being selected at the terrestrial server 230.

[0033] In some embodiments, the terrestrial server 230 may include a media data manager 236 component configured to manage the transmission of the linear media channel 203 to the mobile platform. The linear media channel 203, including the linear media channel, is transmitted from the terrestrial server 230 in response to the requested data 204 transmitted from the mobile platform. For example, when a media client on the mobile platform transmits a request for a linear media channel that is not currently provided by the in-flight server to the in-flight server, the in-flight server may transmit the requested data 204 to the terrestrial 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 select the mobile platform that transmitted the request as one capable of receiving the requested linear media channel.

[0034] The media data manager 236 can be configured to transmit the linear media channel 203 as a multicast that may include a plurality of linear media channels and / or other sets of linear media channels 203. In some embodiments, only the requested linear media channel is 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 is added to the beam by the media data manager 236. In some embodiments, the terrestrial server 230 and / or the media data manager 236 can be configured to include all linear media channels in the beam without requiring the requested data.

[0035] In some embodiments, the terrestrial server 230 can be configured to obtain performance data 201 from the mobile platform (e.g., from a server on board the mobile platform). The performance data 201 can include startup delay data that can represent the time difference between a click event in the media client and the display of the first frame of the linear media channel 203 in the media client. Since different processing systems may require different amounts of decoding time, the startup delay can be at least partially based on the processing capabilities of the media client. In some cases, the performance data 201 may be processed (e.g., compared to a threshold performance value) to generate one or more quality of experience scores associated with the performance data 201. For example, performance data 201 indicating a startup delay exceeding 5 seconds can be annotated and / or stored in the data storage 240. The performance data 201 can further or alternatively include rebuffer data that can represent the number and / or rebuffering duration of rebuffer events experienced during the streaming of the linear media channel 203 during movement of the mobile platform. In some embodiments, rebuffer count data indicating more than three rebuffer events per hour may be considered insufficient performance.

[0036] In some embodiments, the performance data 201 may include user-provided feedback. For example, a user of a media client is prompted to provide feedback indicating the quality of the user's and / or media client's experience during movement of the mobile platform. At the terrestrial server 230, it is possible to receive performance data 201 related to all linear media channels 203 transmitted to the mobile platform and / or to receive a subset of the linear media channels 203 transmitted to the mobile platform. For example, the mobile platform may transmit only the performance data 201 related to a particular linear media channel or may transmit the performance data 201 for all linear media channels.

[0037] The terrestrial server 230 and / or the server on board the vehicle may include a scoring subsystem 238 configured to receive the performance data 201 and / or generate one or more quality of experience (QOE) scores based on the received performance data 201. For example, the performance data 201 may include raw startup delay data and / or rebuffer data that can be compared to a threshold to determine the impact on the user experience. Generating a QOE score may involve combining, aggregating, conditioning, and / or comparing the performance data 201 as necessary to evaluate the quality of experience of one or more users on the vehicle.

[0038] The scoring subsystem 238 may be configured to aggregate performance data 201 generated by one or more user media clients (e.g., PEDs) within the vehicle, and / or to compare aggregated performance data 201 received from one or more user media clients with performance data 201 generated by one or more virtual media clients within the vehicle. In some embodiments, the comparison between performance data 201 from user media clients and performance data 201 from virtual media clients may be used to determine the reliability level of one or more virtual media clients and / or to modify one or more virtual media clients to increase the reliability level. For example, the scoring subsystem 238 may aggregate performance data 201 from multiple user media clients within the vehicle having a first operating software (e.g., iOS operating system) to generate a first QOE score of 95%. The scoring subsystem 238 may further receive performance data 201 from a virtual media client within the vehicle configured to execute the first operating software to generate a second QOE score of 98%. The scoring subsystem 238 may be further configured to generate a reliability score for the virtual media client by subtracting the absolute value difference between the first QOE score and the second QOE score from 100%, resulting in a reliability score of 100% - abs(95% - 98%) = 97%. The reliability score can indicate the level of accuracy of the performance data 201 generated by the virtual media client relative to the actual quality of experience of the user media clients within the vehicle. The reliability score can indicate how well the performance data from the virtual media client represents the performance data from the user media clients. The performance score is used by the scoring subsystem 238 to determine when to perform a training operation (discussed below) and to determine when the training operation is successful.The scoring subsystem 238 may be configured to generate reliability scores for multiple operating systems (e.g., iOS and Android) over multiple flights, and may aggregate various reliability scores to generate an overall reliability score for the virtual media client. To improve the accuracy of calculating the QOE score when using only performance data from the virtual media client, various modifications can be made to the scoring subsystem 238 based on the reliability scores. In some embodiments, two or more instances of a particular operating system may be executed sequentially and / or simultaneously in the virtual media client, and the scoring subsystem 238 can be configured to generate a reliability score for each instance of the operating system. By comparing the various generated reliability scores, an operating system and / or an instance of the operating system that best reflects the quality of experience of the in-flight user media client on the mobile platform may be determined.

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

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

[0041] The in-vehicle user media client and / or virtual media client of the vehicle can similarly be configured to generate and / or transmit performance data 201 in response to specific events and / or periodically. For example, the user media client can be configured to generate performance data 201 in response to the start of streaming of one or more linear media channels 203 in the user media client. The virtual media client can be configured to generate performance data 201 in response to the start of streaming and / or periodically (e.g., every two minutes).

[0042] In some embodiments, the scoring subsystem 238 can be configured to collect and / or aggregate performance data 201 generated over any suitable time period when generating one or more QOE scores. The time period over which the performance data 201 is collected can be long enough such that samples of the performance data 201 can include one or more instances of relatively low-frequency events (e.g., rebuffering events) for calculating the QOE score. For example, performance data 201 indicating a rebuffering event occurring once every 30 minutes can result in a much better QOE score than performance data 201 indicating a rebuffering event occurring once every 5 minutes. Thus, it can be advantageous to collect performance data 201 over a time period (e.g., 30 minutes) sufficient to accurately determine the QOE. In some embodiments, the scoring subsystem 238 can be configured to determine the success level of several performance data 201 metrics (e.g., startup delay data, rebuffer count data, rebuffer duration data) over a given time period. For example, the scoring subsystem 238 can be configured to determine that a media client and / or a group of media clients has experienced less than a given number of rebuffering events every two-hour period of a linear media channel streamed 99% of the time.

[0043] The scoring subsystem 238 can be configured to associate a set of performance data 201 with the device type of the media client reporting the set of performance data 201. For example, performance data 201 indicating a startup delay exceeding 5 seconds can be associated with the type of media client reporting and / or experiencing the startup delay. In this way, the scoring subsystem 238 can be configured to determine whether insufficient performance can be attributed to a particular type of media client rather than a general communication service.

[0044] In some embodiments, the QOE score can be generated on the mobile platform, based on the performance data 201 collected on the mobile platform. The scoring subsystem 238 and / or similar devices on the mobile platform can be configured to generate QOE scores for all received performance data 201 and / or a subset 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 in the data storage 240).

[0045] The QOE score generated by the scoring subsystem 238 can indicate the user experience regarding the transmitted linear media channel 203 on the mobile platform. In some embodiments, the scoring subsystem 238 and / or other components of the terrestrial server 230 can be configured to execute one or more alert functions in response to generating a relatively low QOE score and / or a QOE score that falls below or exceeds a threshold score value. The one or more alert functions can be configured to be used in determining the root cause of the low score.

[0046] The manner in which the QOE score can be modeled may vary for each embodiment. In some embodiments, the database can be constructed in the data storage 240 of individual media clients that provide feedback on QOE in the media client. The scoring subsystem 238 can be configured to collate feedback for QOE evaluations executed on the mobile platform. When a sufficient amount of data samples are obtained from media clients on board the mobile platform (including, for example, virtual media clients on board the mobile platform), the performance data 201 in the database can be used as a criterion for determining the QOE score based at least in part on calculations executed on the terrestrial server 230 and / or servers and / or virtual media clients on board the mobile platform.

[0047] In some embodiments, the scoring subsystem 238 can be configured to be trained via a training operation that uses, for example, machine learning. For example, the performance data 201 collected from a given media client can be compared to the aggregated performance data 201 of a set of media clients (e.g., all media clients on an in-flight given mobile platform). Machine learning can be utilized to determine a discrepancy between data for a particular media client and aggregated data for a group of media clients. For example, a first media client can report a startup delay of 3.2 seconds, while the group of media clients can report an aggregated startup delay of 3.4 seconds. The performance data 201 for the first media client can be measured against a high-end media client with a modern and / or relatively powerful operating system to determine how the first media client is compared to high-end media clients. In some embodiments, an algorithm can be utilized to determine the device type (e.g., "high-end" or "low-end") of the first media client. Thus, the QOE score generated by the scoring subsystem 238 for the first media client can be adjusted, weighted, etc., based at least in part on the determined device type of the first media client. In some embodiments, the generated QOE scores for a group of media clients (e.g., all media clients on an in-flight mobile platform) can be weighted, etc., based at least in part on the device type of the media clients.

[0048] In some embodiments, the scoring subsystem 238 can be configured to compare performance data 201 associated with a first media client with performance data 201 associated with a second media client. Such inter-device comparisons can be used to detect malfunctions of the first media client, the second media client, and / or other media clients. In some embodiments, the median value of the 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 abnormally high and / or low performance data 201 values when aggregating the performance data 201 and / or when generating one or more QOE scores based on the performance data 201.

[0049] Some sets of the linear media channels 203 can be coded at different bitrates than others. For example, a first linear media channel 203 (e.g., a news channel) may have a relatively low bitrate, and a second linear media channel 203 (e.g., a sports channel) may have a relatively high bitrate. In an optional embodiment, a user may be able to select the bitrate of a given set of the linear media channels 203, and / or the terrestrial server 230 and / or the in-flight server can be configured to select the bitrate of the linear media channels 203 in response to a performance evaluation. For example, in poor transmission conditions, a lower bitrate can be utilized.

[0050] Flight view Figure 3 shows an in-vehicle data monitoring system associated with a vehicle / mobility platform 305 according to one or more embodiments. The in-vehicle monitoring system includes an in-vehicle server 320 and an associated in-vehicle data store 340, which may comprise a non-volatile data storage medium and / or be configured to store specific data including performance data 301, request data 303, and / or linear media channel 304. The in-vehicle server 320 and the in-vehicle data storage 340 are shown as separate components in FIG. 3, but the in-vehicle server 320 and the in-vehicle data storage 340 may be combined into a single device or may be different devices.

[0051] The mobility 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 to facilitate network communication. The antenna 382 can communicate with the transceiver 384 which can communicate with the modem 386. A wireless access point (WAP) 365 can communicate with the in-vehicle server 320 and / or other network access components (not shown). One or more in-vehicle user media clients of the mobility platform 305, including the PED 316 and / or the seatback entertainment system 318, can include a control circuit configured to execute one or more applications for obtaining and / or consuming the linear media channel 304 stored in the data store 340 and / or obtained from a remote server via the network 322. In some embodiments, the user may have the option to select / request one or more media content items using the user media client.

[0052] In some embodiments, the in-flight server 320 can be configured to serve a plurality of media clients (e.g., PED 316 and / or seatback entertainment systems) within the mobile platform. For example, the in-flight server 320 can be configured to receive and / or aggregate media requests from the plurality of media clients. Further, the in-flight server 320 can be configured to transmit media channels (e.g., linear media channel 304) received from a remote server to the plurality of media clients. In some embodiments, the in-flight server 320 may be configured to transmit a common media channel to the plurality of media clients and / or can be configured to transmit different media channels to different media clients.

[0053] The in-flight server 320 can be configured to send and / or receive performance data 301, request data 303, and / or linear media channels 304 via the network access terminal 381 or other network interfaces from various media clients and / or service access devices (e.g., WAP 365) within the vehicle 305, for example, via a satellite and a gateway (see FIG. 1). In some embodiments, the network access terminal 381 can be configured to establish one or more wired and / or wireless connections with media clients and / or service access devices within the mobile platform 305. The media client can be configured to send media requests to the in-flight server 320 and / or a remote server (e.g., via one or more connections established by the network access terminal 381). The in-flight server 320 can be configured to aggregate the received media requests, generate request data 303, and / or send the request data 303 to a remote server. In some embodiments, aggregating the media requests can involve removing duplicate media requests. The network access terminal 381 can be configured to establish multiple connections between various devices including media clients, service access devices, and the in-flight server 320. The network access terminal 381 can provide connectivity between the in-flight server 320 and one or more terrestrial servers, for example, via a satellite and a gateway (see FIG. 1).

[0054] For the sake of simplicity, in the following description, the mobile platform 305 is referred to as a vehicle such as an airplane. The user media clients 316, 318 disposed within the vehicle 305 can include any type of PED (e.g., smartphone, 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 the in-flight server 320 via a communication link that can be wired and / or wireless. The communication link can be part of a local area network, such as a wireless local area network (WLAN) supported by one or more WAPs 365 within the vehicle 305. One or more WAPs 365 can be distributed around the vehicle 305 and cooperate with the server 320 to provide traffic switching and routing functions, for example, as part of an extended service set (ESS) of the WLAN.

[0055] A passenger on the vehicle can interface with the in-flight server 320 in any suitable or desired manner. For example, the linear media channel 304 can be presented to the passenger using the electronic display of the PED 316 associated with the passenger, such as through a web browser application, a native application, etc., or using an interface associated with an in-vehicle integrated media system such as the seatback media system 318. The in-flight server 320 can be configured to function as a media distribution system and / or a content server for providing the linear media channel 304 for presentation using a presentation system (e.g., a seatback media presentation device or system 318) associated with the PED 316 and / or the vehicle 305.

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

[0057] The in-flight server 320 can include a control circuit for implementing the functions according to the embodiments of the present disclosure. In some embodiments, the in-flight server 320 can be configured to function as an aggregation and / or distribution point for the linear media channel 304, the performance data 301, and / or the request data 303.

[0058] As shown in FIG. 3, the in-flight server 320 may include a connectivity unit (e.g., an in-flight connectivity (IFC) unit of an aircraft), a media unit 325 (e.g., an in-flight entertainment (IFE) unit of an aircraft), a web proxy 327, and a content delivery unit 329. The connectivity unit 323 can be configured to provide connectivity between the network 322 and the in-flight media client and / or service access device of the mobile platform 305. The media unit 325 can be configured to provide various linear media channels 304 including movies and other on-demand content to the in-flight media client of the mobile platform 305. The web proxy 327 can be configured to manage specific media requests for the linear media channels from the in-flight media client of the mobile platform 305. For example, when a user and / or media client sends a media request specifying a linear media channel (e.g., a live television channel) that is available (e.g., provided to the mobile platform 305 via a beam from a remote server), the web proxy 327 can be configured to provide the requested linear media channel to the media client. When the media client sends a media request identifying / specifying a linear media channel that is not currently available, the delivery unit 329 can be configured to generate and / or send the request data 303 to a remote server and / or provide the requested linear media channel when provided by the remote server.

[0059] In some embodiments, the in-flight server 320 can be configured to receive performance data 301 from one or more media clients within the in-flight (e.g., including the virtual media client 350 and / or the user media client) of the mobile platform 305. The in-flight server 320 can be further configured to send the performance data 301 obtained from the media clients within the in-flight of the mobile platform to one or more remote servers.

[0060] One or more virtual media clients 350 may be located within the in-flight of the mobile platform 305. Although the virtual media client 350 is shown in FIG. 3 as a device separate from the in-flight server 320, the virtual media client 350 may be a component of the in-flight server 320 and / or can be connected to the in-flight server 320 via wired and / or wireless connections. The in-flight server 320 can be configured to send at least a single linear media channel and / or a plurality of linear media channels to the virtual media client 350. In some embodiments, the linear media channels provided to the virtual media client 350 by the in-flight server 320 can also be sent by the in-flight server 320 to one or more user media clients (e.g., PED 316 and / or seatback system 318) within the in-flight of the mobile platform 305.

[0061] In some cases, the performance data 301 obtained from user media clients (e.g., including the PED 316 and the entertainment system 318) in the in-flight server 320 may provide non-uniform and / or unreliable data. For example, a low-end PED 316 may experience very different quality experience results compared to a high-end PED 316. The performance difference between the low-end PED 316 and the high-end PED 316 may be due to any of various factors including, among other things, memory and processing power. Therefore, the various PEDs 316 on the in-flight mobile platform 305 may not be able to provide a unified and / or reliable sample indicating the performance of the communication services provided on the in-flight mobile platform 305.

[0062] In some embodiments, one or more virtual media clients 350 can be configured to provide a central and / or integrated process for generating performance data 301 for evaluation in the in-flight server 320 and / or one or more remote servers. In some embodiments, the virtual media client 350 can be configured to mimic and / or emulate the performance of different types of devices. For example, the virtual media client 350 can be configured to store operating system data 352 to enable the virtual media client 350 to stream the linear media channel 304 using various operating systems. For example, the virtual media client 350 can be configured to stream the linear media channel 304 using the Android operating system and / or the iOS operating system. In some embodiments, the virtual media client 350 can be configured to run multiple operating systems simultaneously or sequentially, and / or to play different sets of the linear media channel 304 simultaneously or sequentially using different or the same operating systems. The virtual media client 350 can be further configured to store emulation data 354 to enable the virtual media client 350 to emulate various media software including a web / network browser, an application, and / or a media player. For example, the virtual media client 350 can 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 can be similar and / or identical to the commands and / or operations associated with one or more operating systems, network browsers, media players, etc.

[0063] The use of different operating system data 352 and / or emulation data 354 in the virtual media client 350 may enable the detection of discrepancies that may arise 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. The scoring subsystem in the in-flight of the mobile platform 305 and / or on the 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 discrepancy 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.

[0064] In some embodiments, a comparison of a first set of performance data 301 from one or more PEDs 316 and / or entertainment systems 318 and a second set of performance data 301 from one or more virtual media clients 350 can be used to determine the reliability level of one or more virtual media clients 350 and / or to modify one or more virtual media clients 350 to increase the reliability level. For example, the in-flight server 320 and / or the remote server can aggregate performance data 301 from multiple PEDs 316 and / or entertainment systems 318 on a mobile platform 305 having a first operating software (e.g., iOS operating system) in-flight to generate a first QOE score of 95%. The in-flight server 320 and / or the remote server can also receive performance data 301 from virtual media clients 350 in-flight on the mobile platform 305 having the first operating software to generate a second QOE score of 98%. The in-flight server 320 and / or the remote server may be further configured to generate a reliability score for the virtual media client 350 by subtracting the absolute value difference between the first QOE score and the second QOE score from 100%, resulting in a reliability score of 100% - abs(95% - 98%) = 97%. The reliability score can indicate the level of accuracy of the performance data 301 generated by the virtual media client 350 relative to the actual quality of experience of one or more PEDs 316 and / or entertainment systems 318 in-flight on the mobile platform 305. The in-flight server 320 and / or the remote server may be configured to generate reliability scores for multiple operating systems (e.g., iOS and Android) over multiple flights and aggregate the various reliability scores to generate an overall reliability score for the virtual media client 350. To improve the performance of the virtual media client 350, various prescriptions can be made to the virtual media client 350 based on the reliability score.In some embodiments, the operating system data 353 in the virtual media client 350 may include two or more instances of a particular operating system, and / or two or more instances of the operating system may be executed simultaneously in the virtual media client 350, and the in-flight server 320 and / or the remote server may be configured to generate a reliability score for each instance of the operating system.

[0065] The virtual media client 350 can be configured to execute different operating systems and / or different instances / versions of one or more operating systems at different times during the movement of the mobile platform 305. For example, the virtual media client 350 can be configured to dynamically and / or periodically cycle through multiple operating systems and / or multiple instances of an operating system during movement. In some embodiments, the virtual media client 350 can be configured to execute multiple operating systems and / or multiple instances of one or more operating systems in response to a relatively low reliability score of the virtual media client. For example, in response to the reliability score of the virtual media client 350 falling below a threshold over the course of one or more movements of the mobile platform 305, the virtual media client 350 can dynamically cycle through multiple operating systems and / or multiple instances of one or more operating systems to generate a reliability score of the virtual media client 350 for the multiple instances and / or multiple operating systems. The generated reliability score can be compared to determine the highest reliability score that can most likely be correlated with the operating system and / or instance of the operating system that is most likely to be used by the PED 316 and / or the entertainment system 318 on board 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 board the mobile platform 305 (e.g., device type and / or operating system).

[0066] In some embodiments, the virtual media client 350 can be configured to generate performance data 301 associated with each operating system and / or each instance of an operating system that the virtual media client 350 is configured to execute. 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, generate a second set of performance data 301 associated with a second operating system, and / or transmit the first and second sets of performance data 301 to the in-flight server 320.

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

[0068] In some embodiments, the virtual media client 350 can be configured to generate performance data 301 for different operating systems and / or software applications simultaneously and / or on a case-by-case basis. The virtual media client 350 can be configured to emulate any of a variety of device characteristics. For example, an Android device may have its own style of playing media content, and the virtual media client 350 can be configured to monitor quality-of-experience data in the same way as an Android device.

[0069] Some user media clients may operate using a closed ecosystem that prevents the in-flight server 320 from collecting performance data 301 from such user media clients. However, the virtual media client 350 can be configured to emulate a closed ecosystem device (e.g., an iOS device) and advantageously provide performance data 301 using an operating system and / or software application specific to such a closed ecosystem device.

[0070] The performance data 301 collected from the virtual media client 350 can be useful in providing a meaningful report regarding the performance of communication services (including the performance of the linear media channel) provided on the mobile platform 305. Further, the virtual media client 350 can be useful in solving various problems related to communication services in the mobile platform 305. For example, if the virtual media client 350 provides performance data 301 indicating good performance and 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. Further, the user of the PED 316 can be notified that there may be a problem with the PED 316 in response to the detected difference in results.

[0071] In some embodiments, the virtual media client 350 can be configured to play and / or monitor a particular linear media channel 304 and / or all linear media channels 304 provided to the mobile platform 305. Different ways for the virtual media client to select a particular linear media channel 304 for receiving and / or providing performance data 301 in response to reception. In some embodiments, the virtual media client 350 can be configured to monitor the linear media channel 304 based on the popularity of the linear media channel 304. For example, the virtual media client 350 can be configured to monitor the most requested and / or streamed linear media channels for the mobile platform 305.

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

[0073] In some embodiments, the virtual media client 350 can be configured to monitor multiple linear media channels simultaneously or sequentially. In this way, the performance data 301 from the virtual media client 350 can be useful in detecting performance issues related to a particular linear media channel. For example, if the performance data 301 from the virtual media client 350 related to the first linear media channel indicates good performance, but the performance data 301 from the virtual media client 350 related to the second linear media channel indicates poor performance, it can be determined that there is a problem related to the second linear media channel. In some cases, the virtual media client 350 can be configured to monitor only the linear media channels already requested by the PED 316 and / or the seatback system 318 so that the virtual media client 350 cannot increase the content demand of the mobile platform 305.

[0074] In some embodiments, the virtual media client 350 can be separated from the in-flight server 320 as shown in FIG. 3. Further, the virtual media client 350 can be configured to receive the linear media channel 304 from the WAP 365 rather than directly from the in-flight server 320. For example, the virtual media client 350 can be configured to connect to the WAP 365 via a Wi-Fi dongle and / or a similar circuit for communicating with the WAP 365. In this way, the performance data 301 from the virtual media client 350 indicating insufficient performance can be used to identify performance issues related to the WAP 365.

[0075] The virtual media client 350 can be configured to be located within the mobile platform 305. In this way, the virtual media client 350 can be configured to accurately represent the quality performance of the in-flight devices of the mobile platform 305. Although the virtual media client 350 is shown as separate from the in-flight server 320, the virtual media client 350 may be incorporated into the in-flight server 320. Further, the virtual media client 350 can be configured to receive the linear media channel 304 directly from the in-flight server 320 (e.g., without receiving the linear media channel 304 via the WAP 365).

[0076] The collection of performance data 301 from the virtual media client 350 can advantageously enable the collection of performance data 301 without the need for direct access to the user media client (e.g., PED 316) and / or collection of performance data 301 from the user media client. For example, some PEDs 316 may include hardware and / or software that can prevent the collection of performance data 301 and / or other related data. Further, in some cases, a particular PED may be unfamiliar with data that may be difficult or impossible to utilize for evaluating the performance of the communication system in the mobile platform 105 and / or may include hardware and / or software that can provide such data in other ways. Further, in some cases, the user may prefer that data not be collected from the user's PED 316. Thus, the virtual media client 350 can advantageously enable the collection of performance data 301 in the mobile platform 305 without the need for collection from the user media client.

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

[0078] In some embodiments, the in-flight 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 seatback systems 318 on board 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 the PED 316 experiencing performance issues. For example, if the PED 316 provides performance data 301 that indicates performance data 301 that is very different from that of the virtual media client 350, the performance data 301 from the PED 316 can be excluded and / or discarded from the performance evaluation determination.

[0079] Using statistical thresholds, performance issues related to the PED316 and / or the virtual media client 350 can be determined. For example, if all PED316s on the mobile platform 305 show insufficient performance of the communication service, but the virtual media client 350 shows good performance, it can be determined that there is a problem with the virtual media client 350.

[0080] Evaluation process of the quality of experience FIG. 4 shows a process 400 for in-flight performance evaluation of a communication service provided within an aircraft of a mobile platform according to an embodiment of the present disclosure. The steps of process 400 are described as being executed by an in-flight server, but such steps can alternatively be executed by a remote server.

[0081] Process 400 involves, at block 405, receiving one or more media requests from user media clients located within the aircraft of the mobile platform. The media requests can be received from a plurality of user media clients. In some embodiments, the media requests can be received continuously and / or periodically. Each of the 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 on the mobile platform and / or linear media channels currently being accessed (e.g., being played on one or more user media clients within the aircraft of the mobile platform). The user media clients can transmit media requests periodically and / or in response to specific events (e.g., the user selecting a new channel on the user media client).

[0082] In some embodiments, the in-flight virtual media client of the mobile platform can also be configured to send media requests to the in-flight server. The way the virtual media client requests, receives, and / or accesses a linear media channel can vary from embodiment to embodiment. In some embodiments, the virtual media client can be configured to send media requests only for linear media channels that are currently being consumed by one or more user media clients. For example, the virtual media client may be configured to receive all of the currently consumed linear media channels, and / or can be configured to monitor all of the linear media channels in parallel (e.g., via multi-threading). As another example, the virtual media client can be configured to receive and / or monitor less than all of the consumed linear media channels, such as by periodically switching between channels and / or by selecting representative channels for monitoring, monitoring one linear media channel at a time. In other embodiments, the virtual media client can be configured to receive and / or monitor channels that are not currently being consumed by the user media clients in the mobile platform in-flight. For example, the virtual media client can be configured to temporarily request and / or monitor channels in a channel offering lineup that may not currently be consumed by the user media clients. In this way, the virtual media client can be configured to ensure proper performance of all of the linear media channels provided via the communication service.

[0083] In block 410, process 400 involves aggregating the received media requests to generate request data that specifies a particular linear media channel. In some embodiments, aggregating may involve comparing the media requests to identify media requests that indicate a common linear media channel. For example, different media requests from different user media clients may specify a common linear media channel. The in-flight server can be configured to remove duplicate media requests in order to limit the amount of data sent to the remote server. Additionally, aggregating may involve other forms of data processing, such as, for example, compressing the received media requests. In block 415, process 400 involves sending the generated request data to a remote server.

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

[0085] In block 425, process 400 involves sending / providing the linear media channel to a plurality of user media clients within the in-flight platform. The in-flight server may be configured to provide all of the received linear media channels to all of the user media clients, or to provide only the linear media channels requested by a particular user media client to that particular user media client.

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

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

[0088] In some embodiments, the in-flight server can be configured to receive a second set of performance data from one or more user media clients. The second set of performance data may include a single performance data type (e.g., one of startup data and re-buffer data), or may include multiple performance data types (e.g., both startup data and re-buffer data). In some embodiments, the first set of performance data may include performance data types different from the second set of performance data, or the first set of performance data may include the same performance data types as the second set of performance data.

[0089] In some embodiments, the in-flight server and / or the ground server may receive performance data from the virtual media client and / or one or more user media clients. The received performance data can be correlated with and / or aggregated with other performance data in the in-flight 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., operating system and / or software) can be adapted and / or modified based on the performance data received from the virtual media client and / or one or more user media clients.

[0090] General Notes Unless the context clearly requires otherwise, throughout the specification and claims, the words "comprise," "comprising," and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in the sense of "including, but not limited to." The word "coupled," as generally used herein, refers to two or more elements that may be directly connected or connected through one or more intermediate elements. Additionally, the words "herein," "above," "below," and words of similar import refer to the entire application as used in this application and do not refer to any specific part of the application. As used in the "Modes for Carrying Out the Invention" above, the words using the singular or plural number may also respectively include the plural or singular number as permitted by the context. The word "or," when referring to a list of two or more items, encompasses all of the following interpretations of the word. That is, any of the items in the list, all of the items in the list, and any combination of the items in the list.

[0091] Throughout this disclosure, references to "some embodiments", "certain embodiments", or "an embodiment" mean that the particular features, structures, or characteristics described in connection with the embodiment can be included in at least some embodiments. Thus, appearances of the phrases "in some embodiments", "in certain embodiments", or "in an embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment, and may refer to one or more of the same or different embodiments. Furthermore, the embodiments disclosed herein may or may not be embodiments of the invention. For example, the embodiments disclosed herein may partially or wholly include features and / or components not related to the invention. Additionally, a particular feature, structure, or characteristic can be combined in any suitable manner from the disclosure in one or more embodiments, as will be apparent to those skilled in the relevant art.

[0092] The above detailed description of embodiments of the invention is not intended to be exhaustive or to limit the invention to the precise forms disclosed above. Specific embodiments of the invention and examples of the invention have been described above for purposes of illustration, but as will be understood by those of ordinary skill in the relevant art, various equivalent modifications are possible within the scope of the invention. For example, although a process or block is presented in a given order, alternative embodiments may perform routines with steps or employ systems with blocks in a different order, and some processes or blocks can be deleted, moved, added, re-divided, combined, and / or modified. Each of these processes or blocks can be implemented in various different ways. Also, although processes or blocks are sometimes shown as being performed sequentially, these processes or blocks may instead be executed in parallel or at different times.

[0093] The teachings of the invention provided herein can be applied to other systems than the above-described system. Further embodiments can be provided by combining the elements and operations of the various embodiments described above.

[0094] Although some embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the present disclosure. In fact, the novel methods and systems described herein may be embodied in various other forms, and furthermore, various omissions, substitutions, and changes in the forms of the methods and systems described herein may be made without departing from the spirit of the present disclosure. The appended claims and their equivalents are intended to cover such forms or modifications as fall within the scope and spirit of the present disclosure.

[0095] The appended claims and their equivalents are intended to cover such forms or modifications as fall within the scope and spirit of the protection. For example, the various components shown in the figures may be implemented as software and / or firmware on a processor, ASIC / FPGA, or dedicated hardware. Also, the features and attributes of the specific embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure. The present disclosure provides specific preferred embodiments and applications, but other embodiments that are apparent to those skilled in the art, including embodiments that do not provide all of the features and advantages described herein, are also within the scope of the present disclosure. Therefore, it is intended that the scope of the present disclosure be defined only by reference to the appended claims.

[0096] The methods and processes described herein may be embodied in software code modules executed by one or more general-purpose and / or special-purpose computers and may be partially or fully automated via the software code modules. The term "module" can refer to logic embodied in hardware and / or firmware, or a set of software instructions, optionally with entry and exit points, written in a programming language such as C or C++. Software modules may be compiled and linked into an executable program, installed into a dynamically linked library, or written in an interpreted programming language such as BASIC, Perl, or Python. It will be understood that software modules may be callable 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 an erasable programmable read-only memory (EPROM). "Module" may further refer to one or more devices, components, systems, or subsystems that may conceptually implement the associated functionality. Hardware modules may be composed of interconnected 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. It will be further understood that the modules described herein are preferably implemented as software modules but may be represented in hardware and / or firmware. Further, in some embodiments, modules may be compiled separately, while in other embodiments, modules may represent a subset of the instructions of a separately compiled program and may not have an interface available to other logical programming units.

Claims

1. A communication system (100) comprising: An in-flight server (120, 320) located inside a mobile platform (105, 305); A remote server (130) located outside the mobile platform, configured to generate one or more live video channels (203, 304) for use by the in-flight server; A virtual media client (125, 350) located inside the mobile platform; A scoring subsystem (238); The virtual media client is configured to: Receive a live video channel from the in-flight server; Transmit performance data (201, 301) to the in-flight server; The in-flight server is configured to: Receive one or more media requests from a plurality of user media clients (116, 316, 318) inside the mobile platform, provided that the one or more media requests specify one or more live video channels (203, 304); Receive the one or more live video channels from the remote server; Provide the one or more live video channels to the plurality of user media clients according to the received one or more media requests; Provide at least a first live video channel of the one or more live video channels to the virtual media client; Receive a first set of performance data associated with the first live video channel from the virtual media client; Receive a second set of performance data from a first user media client among the plurality of user media clients; Provide the first and second sets of performance data to the scoring subsystem; The scoring subsystem is configured to: Generate a quality of experience score based at least in part on the first and second sets of performance data, and generating the quality of experience score involves comparing the first set of performance data with the second set of performance data to generate a reliability score of the virtual media client. A communication system.

2. The in-flight server is further configured to send request data (204, 303) indicating the one or more live video channels to the remote server, and the one or more live video channels received from the remote server are provided in response to the request data. The communication system according to claim 1.

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

4. The virtual media client is further configured to send a media request to the in-flight server, The in-flight server is further configured to provide at least the first live video channel to the virtual media client in response to the media request from the virtual media client. The communication system according to any one of claims 1 to 3.

5. The in-flight server, receives a first media request from the virtual media client, provided that the first media request specifies a second live video channel not included in the one or more live video channels, receives the second live video channel from the remote server, provides the second live video channel to the virtual media client, The communication system according to claim 4, which is further configured to receive a second set of performance data associated with the second live video channel from the virtual media client.

6. The communication system according to any one of claims 1 to 5, wherein the first set of performance data is related to the streaming of the first live video channel in the virtual media client.

7. The scoring subsystem is configured to obtain the first set of performance data from the in-flight server and calculate a quality-of-experience score associated with the first live video channel based at least in part on the first set of performance data. The communication system according to any one of claims 1 to 6.

8. The communication system according to any one of claims 1 to 7, wherein the scoring subsystem is further configured to execute a training operation based at least in part on the reliability score.

9. The virtual media client, Store emulation data (354) for emulating one or more network browsers, The communication system according to any one of claims 1 to 8, further configured to stream the first live video channel using the emulation data.

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

11. The communication system according to any one of claims 1 to 10, wherein the in-flight server is further configured to selectively provide the first live video channel to the virtual media client based at least in part on the popularity of the first live video channel.

12. Receiving, at an in-flight server (120, 320) located on an in-flight mobile platform (105, 305), one or more media requests from a plurality of user media clients (116, 316, 318) on the in-flight mobile platform, wherein the one or more media requests specify one or more real-time broadcast channels (203, 304), Receiving, at the in-flight server, the one or more real-time broadcast channels from a remote server located outside the mobile platform, wherein the remote server is configured to generate one or more real-time broadcast channels for use by the in-flight server, Providing the one or more real-time broadcast channels from the in-flight server to the plurality of user media clients according to the received one or more media requests, Providing at least a first real-time broadcast channel of the one or more real-time broadcast channels from the in-flight server to a virtual media client on the in-flight mobile platform, Receiving, at the in-flight server, a first set of performance data (201, 301) associated with the first real-time broadcast channel from the virtual media client (125, 350), Receiving, at the in-flight server, a second set (201, 301) of performance data from a first user media client among the plurality of user media clients; Providing the first and second sets of the performance data from the in-flight server to the scoring subsystem; Generating, at the scoring subsystem, a quality-of-experience score based at least in part on the first and second sets of the performance data, and generating the quality-of-experience score involves generating a reliability score of the virtual media client by comparing the first set of the performance data with the second set of the performance data. A method comprising:

13. The method according to claim 12, further comprising transmitting, to the remote server, request data (204, 303) indicating the one or more real-time broadcast channels, wherein the one or more real-time broadcast channels received from the remote server are provided in response to the request data.

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

15. The method according to any one of claims 12 to 14, further comprising, at the scoring subsystem, performing a training operation based at least in part on the reliability score.

Citation Information

Patent Citations

  • Multimedia content providing system for aircraft user and multimedia content providing method for aircraft user

    JP2009296309A

  • Communication device and communication system

    JP2014158257A

  • Distribution of in-flight entertainment content to portable electronic devices

    JP2016213824A

  • System, method, and program for reducing server load

    US20080077690A1

  • Methods for synthetic monitoring of systems

    US20200074425A1