System and method for evaluating the quality of linear media channel experience
The system addresses the challenge of inconsistent media channel quality evaluation on mobile platforms by using a virtual client to collect and analyze performance data, ensuring reliable quality of experience scores through machine learning adjustments.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- VIASAT INC
- Filing Date
- 2025-04-15
- Publication Date
- 2026-05-08
AI Technical Summary
Existing systems fail to accurately evaluate the quality of experience for linear media channels on mobile platforms due to variability in user media clients' hardware and software, privacy restrictions, and inconsistent performance data collection, which affects the reliability of communication services.
A system utilizing a virtual media client within the mobile platform to collect and analyze performance data, generating quality of experience scores by comparing with thresholds and using machine learning to adjust for client variability, ensuring consistent and reliable evaluation.
Provides accurate and reliable quality of experience scores for linear media channels by accounting for client variability and privacy issues, enhancing communication service performance and user experience.
Smart Images

Figure 0007855760000001 
Figure 0007855760000002 
Figure 0007855760000003
Abstract
Description
Background Art
[0001] The present disclosure relates to evaluating 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 data transmission 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 this 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 embodiments disclosed may be implemented in a manner that achieves or optimizes any advantage or group of advantages taught herein without necessarily achieving other advantages that may be taught or suggested herein. [Brief explanation of the drawing]
[0005] Various embodiments are shown in the accompanying drawings for illustrative purposes and should not be construed as limiting the scope of this disclosure. In addition, various features of the different embodiments disclosed can be combined to form additional embodiments that are part of this disclosure. [Figure 1] This document describes a system for managing data transmission between a server on a mobile platform, such as a vehicle, and / or a server on a mobile platform, and a ground server, according to one or more embodiments. [Figure 2] This shows a ground server according to one or more embodiments. [Figure 3] This document shows an in-flight monitoring system according to one or more embodiments. [Figure 4] This invention illustrates a process for evaluating the in-flight and / or ground performance of communication services provided within a mobile platform, according to embodiments of this disclosure. [Modes 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, this disclosure relates to systems, devices and methods for managing and / or transferring system log data related to passenger services (e.g., provided on board a mobile platform) to and from an onboard monitoring system of a mobile platform.
[0007] overview This disclosure provides devices, systems, and processes for evaluating quality of experience data for communication systems configured to deliver linear media channels and / or other media data to media clients on board a mobile platform (e.g., a vehicle). “Quality of experience” data can refer to any data representing a measure of communication service performance relating to the quality of user experience for one or more linear media channels, and may include, for example, startup data and / or rebuffer data. Startup data may include any data indicating the amount of time required for a media client to begin streaming media data. Rebuffer data may include any data indicating the number of rebuffer events in the media client during media data streaming (rebuffer count) and / or the total duration of rebuffer events (rebuffering duration). Rebuffer events may include interruptions in media data streaming to perform buffering operations and may occur at any point during media data streaming as needed. In some cases, rebuffer events may be caused by failed and / or slow transmissions of media data between devices.
[0008] A "linear media channel" can refer to any real-time broadcast of video and / or audio content, which may include, for example, live television content. A linear media channel may also include a scheduled stream of content. In response to a user selecting a linear media channel, the user (i.e., the user's media client) can be made to join the linear media channel and view the stream of content currently being provided by the linear media channel. For example, a stream of content can be streamed simultaneously to the user's media client and any other media clients participating in the linear media channel. Therefore, joining a linear media channel may not cause the user's media client to start streaming media content from a default starting point (e.g., the beginning of a movie), but instead may cause it to start streaming at a point where it is currently being streamed to other devices.
[0009] In some embodiments, the linear media channel may be broadcast from a remote (e.g., ground) computing device (e.g., a server) to a computing device (e.g., a server) on board the mobile platform. The computing system on board 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 computing system on board the mobile platform. The received data is collected, aggregated, filtered, analyzed, and / or processed in other ways on board the mobile platform and / or in the ground computing system.
[0010] Linear media channels and / or other media content can be configured for streaming on various media clients. As used herein, “media client” can refer to any device configured to transmit and / or receive media data, access and / or play various media content, and / or transmit performance metrics (including quality of experience performance data), and may include, for example, personal electronic devices (PEDs) such as smartphones, laptop computers, and tablets, crew devices, entertainment systems (e.g., seatback entertainment systems in the case of aircraft), and / or virtual media clients. As used herein, the term “virtual media client” may refer to a dedicated media client specifically configured for use in streaming media content and / or transmitting quality of experience data within a mobile platform. A virtual media client may be configured to connect to a computing system within the mobile platform (e.g., an in-flight server) via wired and / or wireless connections. As used herein, the term “user media client” can refer to any media client (e.g., a PED) that is not a virtual media client. In some embodiments, a virtual media client may be configured to run and / or emulate multiple operating systems, software applications, and / or media systems.
[0011] In some embodiments, the virtual media client may be located inside the vehicle while it is in motion. In this way, the virtual media client can provide an accurate and / or representative example of the streaming quality experienced by a user media client, also located inside the vehicle. For example, the virtual media client and user media client inside the vehicle may be located on the same side of the satellite communication link. Therefore, any transmission-related problems experienced by the user media client may also be experienced by the virtual media client.
[0012] A virtual media client can advantageously provide access to in-vehicle performance data even when the user media client in the vehicle is unable to provide performance data for any reason. For example, a user media client may have privacy restrictions that prevent the collection of performance data from the user media client. In such cases, the virtual media client can function as a proxy for the user media client, as the performance data collected from the virtual media client may be an accurate representation of the quality of the experience in the user media client.
[0013] Various performance data related to in-flight communication services of a mobile platform may be collected and / or analyzed for various purposes, for example, 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 experience quality scores. The performance data may include various raw data collected from media clients in the vehicle (e.g., startup delay and / or rebuffered data). The performance data may be transmitted from one or more virtual media clients and / or user media clients in the vehicle and may be collected by one or more scoring subsystems located in the vehicle (e.g., as part of an in-flight server) and / or located remotely 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 experience quality 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 shown in the performance data meet, exceed, or fall below one or more thresholds. In some embodiments, the scoring subsystem may be configured to analyze values shown in performance data using associated time components, which may involve using timestamps 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 time period (e.g., 1 minute, 30 minutes) and / or compare the determined number to a threshold number of buffer / rebuffer events over a 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, for example, from PEDs and / or other media clients used by passengers and / or crew on board a mobile platform during the mobile platform's travel (e.g., flight). However, the performance of communication services in some media clients may be at least partially influenced by the media client's software and / or hardware. For example, low-end media clients and / or media clients running older operating systems may provide results showing relatively inferior performance compared to high-end media clients and / or media clients running newer operating systems. Relatively inferior performance may be caused by various factors in the media client (e.g., memory, processing power, etc.) and may not generally reflect the performance of communication services (e.g., provided by ground servers and / or in-flight servers). Furthermore, some software and / or hardware may be better suited to certain communication systems than others. For example, a communication system may be designed for use with iOS devices and may experience more performance issues with Android devices. Therefore, it would 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, user media clients may prevent the transmission of performance data. For example, a user media client may utilize privacy software that may prevent performance data from being shared with one or more servers and / or scoring subsystems. In such cases, a virtual media client may provide performance data on behalf of user media clients that are unable to provide it. In some embodiments, only performance data from one or more virtual media clients may be collected by the scoring subsystem for the generation of quality of experience data. For example, performance data transmitted by one or more user media clients may be ignored and / or actively excluded from analysis by the scoring subsystem. In this way, the generated quality of experience data may not reflect performance data from user media clients that may be adversely affected by operating system type, operating system conditions, privacy restrictions, and / or various other factors.
[0016] Communication services provided within a mobile platform can be provided by various communication system devices located within and / or outside the mobile platform. Various linear media channels may be transmitted through the use of the Internet and / or other networks. Internet and / or other network services may be provided through the use of modems and / or other devices within the mobile platform that can communicate with satellites and / or other devices outside the mobile platform. Linear media channels for presentation on a vehicle or other mobile platform may originate from heterogeneous remote sources, such as remote (e.g., ground) servers. In the case of a vehicle's in-flight content presentation platform and / or other mobile platforms, servers may be installed locally, and such servers may receive content for presentation as one or more data transfer packages from one or more remote media servers. For example, an in-flight server may be configured to pull in various content services and solutions together to provide a desirable end-user experience to passengers on board a vehicle or other mobile platform. Linear media channels may be received from one or more ground servers, and ground servers may receive different types of content items from different content sources.
[0017] One or more servers may be configured to provide media clients with data including linear media channel and / or interface data. One or more servers may be located inside a vehicle (e.g., an airplane) and / or outside a vehicle (e.g., on the ground). In some embodiments, servers on the ground and / or otherwise outside a vehicle may be configured to establish network communication with one or more servers inside the vehicle. Some embodiments described herein may distinguish between servers inside a vehicle and servers outside a vehicle, but some functions performed by such servers may be interchangeable and / or executable on both servers and / or either server.
[0018] Network Overview In some implementations, this disclosure provides systems, processes, and devices for evaluating the quality of the experience related to communication services provided onboard a mobile platform (e.g., a vehicle). Figure 1 shows a system 100 for managing data transmission between a mobile platform 105, such as a vehicle, and / or an onboard server 120 of the mobile platform 105, and a ground server 130, according to one or more embodiments. Various types of data can be stored in a ground data store 140 and / or an onboard data store 170 of 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 Figures 2 and 3. The ground data store 140 and / or the onboard data store 170 may include non-volatile data storage.
[0019] System 100 includes an in-flight control circuit 121 and / or a virtual media client 125, which are installed on and / or located on or within a mobile platform 105 such as an aircraft, cruise ship, automobile, or other vehicle. Although the virtual media client 125 is shown as part of the in-flight server 120, the virtual media client 125 may instead be implemented in a separate in-flight component outside of the in-flight server 120. In some embodiments, the virtual media client 125 may be configured to communicate with the in-flight server 120 via wired and / or wireless connections.
[0020] While specific embodiments are disclosed herein in the context of aircraft or other vehicles, it should be understood that the principles disclosed herein may be applicable to any suitable or desired mobile platform or vehicle. The in-flight server 120 may be configured to transmit, receive, and / or otherwise manage in-flight data of the mobile platform 105. For example, the in-flight server 120 may be configured to transmit media data to various in-flight communication service devices. "Communication service devices" may include any devices configured to facilitate the provision of passenger services on the mobile platform and may include one or more modems, transceivers, antennas, WAPs, and / or other in-flight service devices. In some embodiments, the in-flight server 120 may be configured to receive and / or filter performance data transmitted from media service devices and / or media clients, including a virtual media client 125, within the mobile platform 105.
[0021] Performance data received from various communication service devices and / or media clients within the mobile platform 105 relates 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 the various performance data (e.g., quality of experience data), which may, among other things, include startup data and / or rebuffered data.
[0022] The ground server 130 and / or the in-flight server 120 may include a scoring subsystem configured to analyze performance data received from one or more communication service devices and / or media clients. In some embodiments, the scoring subsystem may be configured to receive performance data, adjust the data (e.g., associate the performance data with the time period in which the performance data was generated), and / or calculate one or more experience quality scores (e.g., by comparing the performance data and / or adjusted performance data with 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, the first scoring subsystem may be located inside the vehicle 105 (e.g., as part of the in-flight server 120), and the second scoring subsystem may be located outside the vehicle 105 (e.g., as part of the ground server 130). In some embodiments, the ground-based scoring subsystem may be configured to aggregate performance data from multiple vehicles and / or compare performance data from multiple vehicles to identify vehicles experiencing problems. For example, if performance data from a first vehicle 105 within the beam of satellite 110 shows good performance, while performance data from a second vehicle within the beam of satellite 110 shows poor performance, the scoring subsystem can be configured to determine that the problem lies with the second vehicle and not with satellite 110. In some cases, system 100 may include at least a scoring subsystem in the ground server 130 to utilize ground computing resources.
[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 may 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 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 disposed on or within the mobile platform 105, but rather is disposed at some location external thereto. The ground server 130 can 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 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 Figure 2, the ground server 230 may include a control circuit 231 having any of various components configured to perform any of various functions. The ground server 230 may be configured to generate and / or transmit various linear media channels 203 (e.g., linear media channels) over the network 222 for use by servers on board the mobile platform. In some embodiments, the ground server 230 may be configured to receive various data from the mobile platform over the network 222, including performance data 201 and / or request data 204. The performance data 201 and / or request data 204 may relate to passenger services provided on a particular mobile platform (e.g., mobile platform 105 of system 100 described with respect to Figure 1). The ground server 230 may include data storage 240 which, when combined with the ground server 230, forms a single device, or data storage 240 which may be a different device located outside the ground server 230.
[0029] Network 222 may comprise a wide-area network, such as the Internet, which is accessed by the mobile platform via a satellite communication network. Therefore, the communication link between the ground server 230 and the remote mobile platform is achieved via the Internet or another wide-area network. Transmission and / or reception of data between network 222 and the ground server 230 may be facilitated via a network interface 235 configured to establish a network connection between network 222 and the ground server 230.
[0030] In some embodiments, the ground server 230 may include a data request manager 234 configured to manage incoming request data 204 from the mobile platform. Some request data 204 may include requests for linear media channels 203, which include one or more linear media channels. In some embodiments, the request data 204 may be generated and / or transmitted from a server on the mobile platform in response to a media request received from a media client and / or an attempt by a media client on the mobile platform to access a particular linear media channel 203. In other embodiments, where the ground server 230 automatically transmits all linear media channels (broadcasts) regardless of the request data, the request data 204 does not need to be transmitted from a server on the mobile platform. The data request manager 234 may be configured to determine the content of the request data 204, including which linear media channels 203 may be identified and / or specified in the request data 204. In some embodiments, a server on the mobile platform (e.g., the onboard server 120 in Figure 1) may be configured to aggregate received media requests and generate the request data 204. For example, aggregation involves 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 ground server 230 can be configured to transmit linear media channels 203 over a transmit 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, in flight). In some embodiments, the beam generated by the ground server 230 can be configured to provide a specific set of linear media channels 203 to mobile platforms in the beam and / or specifically to mobile platforms that are part of a given “beam group”. In some cases, only mobile platforms included in a particular beam group can be configured to receive linear media channels 203 transmitted over a given beam. A server on board a mobile platform can be configured to send request data 204 to request to be added to the beam group associated with the ground server 230.
[0032] Media data transmitted over a beam is available to any mobile platform within the beam and / or a portion of the beam group of the beam. For example, a ground server 230 can transmit a specific linear media channel (among the media data) over the beam. Any mobile platform within the geographical area of the beam and / or selectively included in the beam group associated with the beam is capable of receiving the specific linear media channel. In some embodiments, a mobile platform is required to request this specific linear media channel (or other linear media channels 203) before it can receive it. For example, a ground server 230 may be configured to transmit a first linear media channel (e.g., a live television channel) as part of a first beam. A mobile platform moving within the beam of the ground server may send request data 204 indicating a request to receive the first linear media channel from the ground server 230. In response to receiving the request, a data request manager 234 may be configured to add the mobile platform to a list of mobile platforms selected to receive the first linear media channel. Thus, a mobile platform may be configured to receive the first linear media channel in response to being selected by the ground server 230.
[0033] In some embodiments, the ground server 230 may include a media data manager 236 component configured to manage the transmission of linear media channels 203 to the mobile platform. The linear media channels 203, including the linear media channels, are transmitted from the ground server 230 in response to request data 204 transmitted from the mobile platform. For example, if an in-flight media client on the mobile platform sends a request to the in-flight server for a linear media channel that is not currently provided by the in-flight server, the in-flight server may send request data 204 to the ground server 230 to obtain access to the requested linear media channel. The media data manager 236 may also be configured to transmit the requested linear media channel (e.g., as part of a beam) and / or select the mobile platform that sent the request as 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 multiple linear media channels and / or other sets of linear media channels 203. In some embodiments, only the requested linear media channels are included in the beam transmitted by the ground server 230 and / or the media data manager 236. If linear media channels not included in the beam are requested in the request data 204, the linear media channels are added to the beam by the media data manager 236. In some embodiments, the ground server 230 and / or the media data manager 236 can be configured to include all linear media channels in the beam without requiring request data.
[0035] In some embodiments, the ground server 230 may be configured to acquire performance data 201 from the mobile platform (e.g., from a server on board the mobile platform). The performance data 201 may include startup delay data, which may represent the time difference between a click event in the media client and the display of a first frame of the linear media channel 203 in the media client. The startup delay may be based at least in part on the processing capacity of the media client, as different processing systems may require different amounts of decoding time. In some cases, the performance data 201 may be processed to generate a quality score for one or more experiences associated with the performance data 201 (e.g., compared to a threshold performance value). For example, performance data 201 showing a startup delay greater than 5 seconds may be annotated and / or stored in the data storage 240. The performance data 201 may further or alternatively include rebuffering data, which may represent the number of rebuffering events and / or rebuffering duration experienced during streaming of the linear media channel 203 while the mobile platform is in motion. In some embodiments, rebuffering count data showing more than three rebuffering events per hour may be considered insufficient performance.
[0036] In some embodiments, the performance data 201 may include user-provided feedback. For example, a media client user may be prompted to provide feedback indicating the quality of the user and / or media client experience during transit of the mobile platform. The ground server 230 can receive performance data 201 related to all linear media channels 203 transmitted to the mobile platform, and / or a subset of linear media channels 203 transmitted to the mobile platform. For example, the mobile platform may transmit only performance data 201 related to a specific linear media channel, or it may transmit performance data 201 for all linear media channels.
[0037] Ground server 230 and / or onboard servers in a vehicle may include a scoring subsystem 238 configured to receive performance data 201 and / or generate one or more quality of experience (QOE) scores based on the received performance data 201. For example, performance data 201 may include raw startup delay data and / or rebuffered data that can be compared to a threshold to determine its impact on the user experience. Generating QOE scores may involve combining, aggregating, adjusting, and / or comparing the performance data 201 as needed to assess the quality of the user experience on one or more vehicles.
[0038] The scoring subsystem 238 may be configured to aggregate performance data 201 generated by one or more user media clients (e.g., PEDs) in the vehicle and / or to compare the aggregated performance data 201 received from one or more user media clients with performance data 201 generated by one or more virtual media clients in 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 their reliability level. For example, the scoring subsystem 238 may aggregate performance data 201 from multiple user media clients in the vehicle having first operating software (e.g., the iOS operating system) to generate a first QOE score of 95%. The scoring subsystem 238 may further receive performance data 201 from virtual media clients in the vehicle configured to run the first operating software to generate a second QOE score of 98%. The scoring subsystem 238 may be further configured to generate a confidence score for the virtual media client by subtracting the absolute difference between the first QOE score and the second QOE score from 100%, resulting in a confidence score of 100% - abs(95% - 98%) = 97%. The confidence score can indicate the level of accuracy of the performance data 201 generated by the virtual media client relative to the quality of the actual experience of the user media client in the vehicle. The confidence score can indicate how well the performance data from the virtual media client represents the performance data from the user media client. The performance score is used by the scoring subsystem 238 to determine when to perform the training operation (discussed below) and 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 the various reliability scores to generate an overall reliability score for the virtual media client. Various modifications can be made to the scoring subsystem 238 based on the reliability scores to improve the accuracy of calculating the QOE score when using only performance data from the virtual media client. In some embodiments, two or more instances of a particular operating system may run sequentially and / or concurrently in the virtual media client, and the scoring subsystem 238 may be configured to generate a reliability score for each instance of the operating system. Various generated reliability scores may be compared to determine the operating system and / or instance of the operating system that best reflects the quality of the user media client experience in the aircraft of the mobile platform.
[0039] The scoring subsystem 238 may be configured to generate QOE scores based on each passenger (e.g., each PED), each trip (e.g., each flight), each vehicle, each satellite beam, and / or each fleet (e.g., a fleet of aircraft). In some embodiments, the scoring subsystem 238 may be configured to generate QOE scores for each passenger and each trip, and / or to aggregate QOE scores across entire vehicles and / or fleets of vehicles. For example, the scoring subsystem 238 may be configured to generate individual QOE scores from performance data 201 received from each user media client and / or virtual media client in one or more vehicles. Once each of the individual QOE scores has been generated, the scoring subsystem 238 may be configured to aggregate the individual QOE scores to generate an overall QOE score for all media clients in a vehicle and / or all media clients in multiple vehicles.
[0040] In some embodiments, the scoring subsystem 238 can be configured to calculate one or more QOE scores during and / or after the vehicle's movement. For example, performance data 201 may be received from the vehicle once per movement, multiple times per movement (e.g., every two minutes), or once per day. Whenever performance data 201 is received, the scoring subsystem 238 can be configured to generate one or more QOE scores based on the received performance data 201.
[0041] User media clients and / or virtual media clients within a vehicle can similarly be configured to generate and / or transmit performance data 201 in response to specific events and / or periodically. For example, a user media client can be configured to generate performance data 201 in response to the start of streaming on one or more linear media channels 203 in the user media client. A virtual media client can be configured to generate performance data 201 in response to the start of streaming and / or periodically (for example, 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 preferred time period when generating one or more QOE scores. The time period over which the performance data 201 is collected may be long enough so that the sample of performance data 201 includes one or more instances of relatively infrequent events (e.g., rebuffer events) for calculating the QOE score. For example, performance data 201 showing a rebuffer event occurring once every 30 minutes may result in a much better QOE score than performance data 201 showing a rebuffer event occurring once every 5 minutes. Therefore, it may be advantageous to collect performance data 201 over a sufficient time period (e.g., 30 minutes) to accurately determine the QOE. In some embodiments, the scoring subsystem 238 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 have experienced fewer than a given number of re-buffering events for every two-hour period of a streamed linear media channel for 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 showing a startup delay of more than 5 seconds can be associated with the type of media client that reported and / or experienced the startup delay. In this way, the scoring subsystem 238 can be configured to determine whether insufficient performance may be attributable to a specific type of media client rather than a general communication service.
[0044] In some embodiments, the QOE score can be generated within the mobile platform based on performance data 201 collected on the mobile platform. The scoring subsystem 238 and / or similar devices within the mobile platform can be configured to generate a QOE score for all received performance data 201 and / or a subset of received performance data 201 (e.g., performance data 201 showing 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 may 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 ground server 230 may be configured to perform one or more alert functions in response to generating a relatively low QOE score and / or a QOE score below or above a threshold score value. One or more alert functions may be configured to be used in determining the root cause of the low score.
[0046] The method by which the QOE score can be modeled may differ from embodiment to embodiment. In some embodiments, a database can be constructed in the data storage 240 of individual media clients that provides QOE feedback in the media clients. The scoring subsystem 238 can be configured to match the feedback to the QOE evaluation performed on the mobile platform. When a sufficient amount of data samples have been obtained from the media clients on the mobile platform (including, for example, the 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 performed on the ground server 230 and / or the 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, performance data 201 collected from a given media client can be compared with aggregated performance data 201 for a set of media clients (e.g., all media clients on board a given mobile platform). Machine learning can be used to determine discrepancies between the data for a particular media client and the aggregated data for a group of media clients. For example, the first media client may report a startup delay of 3.2 seconds, while the group of media clients may 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 compares to a high-end media client. In some embodiments, an algorithm can be used to determine the device type of the first media client (e.g., "high-end" or "low-end"). Therefore, the QOE score generated by the scoring subsystem 238 for a first media client can be adjusted and weighted, etc., based at least in part on the determined device type of the first media client. In some embodiments, the generated QOE score for a group of media clients (e.g., all media clients on board a 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 in the first media client, the second media client, and / or other media clients. In some embodiments, the median 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 linear media channels 203 may 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, while 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 for a given set of linear media channels 203, and / or the ground server 230 and / or the in-flight server may be configured to select the bitrate for the linear media channels 203 in response to a performance evaluation. For example, a lower bitrate may be available under poor transmission conditions.
[0050] Flight View Figure 3 shows an in-flight data monitoring system associated with a vehicle / mobility platform 305 according to one or more embodiments. The in-flight monitoring system comprises an in-flight server 320 and an associated in-flight data store 340, the in-flight data store 340 may comprise a non-volatile data storage medium and / or can be configured to store specific data including performance data 301, request data 303, and / or a linear media channel 304. Although the in-flight server 320 and the in-flight data storage 340 are shown as separate components in Figure 3, the in-flight server 320 and the in-flight data storage 340 may be combined into a single device or may be in different devices.
[0051] The mobile platform 305 may include a network access terminal 381 (i.e., a network interface) for establishing a connection to an external access network, such as a satellite network, a cellular network, or another network. The network access terminal 381 may include one or more of the following: an antenna 382, a transceiver 384, and a modem 386, to facilitate network communication. The antenna 382 may communicate with the transceiver 384, which may communicate with the modem 386. A wireless access point (WAP) 365 may communicate with an in-flight server 320 and / or other network access components (not shown). One or more user media clients in the mobile platform 305, including a PED 316 and / or a seatback entertainment system 318, may include a control circuit configured to run one or more applications for retrieving and / or consuming linear media channels 304 stored in a data store 340 and / or retrieved 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 service multiple media clients (e.g., PED 316 and / or seatback entertainment systems) within the aircraft of the mobile platform. For example, the in-flight server 320 can be configured to receive and / or aggregate media requests from multiple media clients. Furthermore, the in-flight server 320 can be configured to transmit media channels (e.g., linear media channels 304) received from remote servers to multiple media clients. In some embodiments, the in-flight server 320 may be configured to transmit a common media channel to multiple media clients and / or to transmit different media channels to different media clients.
[0053] The network access terminal 381 can provide connectivity between the in-flight server 320 and one or more ground servers, for example, via satellites and gateways (see Figure 1). In some embodiments, the in-flight server 320 may be configured to transmit and / or receive data from various media clients and / or service access devices (e.g., WAP365) in the vehicle 305 via the network access terminal 381 or other network interfaces for the transmission and / or reception of performance data 301, request data 303, and / or linear media channels 304. In some embodiments, the network access terminal 381 may be configured to establish one or more wired and / or wireless connections with media clients and / or service access devices in the mobile platform 305. Media clients may be configured to send media requests to the in-flight server 320 and / or remote servers (e.g., via one or more connections established by the network access terminal 381). The in-flight server 320 may be configured to aggregate the received media requests to generate request data 303 and / or send the request data 303 to the remote servers. In some embodiments, aggregating media requests may 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-machine server 320.
[0054] For convenience, in the following description, the mobile platform 305 refers to a vehicle such as an airplane. User media clients 316, 318 located within the vehicle 305 may include any type of PED (e.g., smartphones, laptops, tablets, netbooks, etc.) brought onto the vehicle 305 by passengers, as well as the passenger seatback system 318 and / or other devices on the vehicle 305. User media clients 316, 318 may be configured to communicate with the in-flight server 320 via a communication link that may be wired and / or wireless. The communication link may 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 may be distributed around the vehicle 305 and, in cooperation with the server 320, may provide traffic switching and routing functions, for example, as part of an extended service set (ESS).
[0055] Passengers on the vehicle can interface with the in-flight server 320 in any preferred or desired manner. For example, the linear media channel 304 can be presented to passengers using the electronic display of the passenger-associated PED 316, such as through a web browser application, a native application, or an interface associated with the vehicle's 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 content server for providing the linear media channel 304 for presentation using the PED 316 and / or presentation systems associated with the vehicle 305 (e.g., seatback media presentation device or system 318).
[0056] In some embodiments, a user may provide input to the PED 316 and / or media system 318 (e.g., a selection of a linear media channel 304) to request streaming of a linear media channel 304 in the PED 316 and / or media system 318. In response to user input, the PED 316 and / or media system 318 may be configured to send one or more requests to the in-flight server 320 indicating the requested linear media channel 304. In response to such requests, the in-flight server 320 may request the linear media channel 304 by sending request data 303 indicating the requested linear media channel 304 to a remote server. Once the linear media channel 304 is received by the in-flight server 320, the in-flight server 320 may provide the linear media channel 304 to the PED 316 and / or media system 318. If the requested linear media channel 304 is already available on the in-machine server 320 (for example, if the linear media channel 304 has already been received from a remote server in response to a request from a different user), the in-machine server 320 can be configured to deliver the linear media channel 304 directly to the PED 316 and / or media system 318 in response to a request from the PED 316 and / or media system 318 without sending a request to a remote server.
[0057] The in-flight server 320 may include control circuits for implementing the functions according to embodiments of the present disclosure. In some embodiments, the in-flight server 320 may be configured to function as an aggregation and / or distribution point for the linear media channel 304, performance data 301, and / or request data 303.
[0058] As shown in Figure 3, the in-flight server 320 may include a connectivity unit (e.g., an in-flight connectivity (IFC) unit), a media unit 325 (e.g., an in-flight entertainment (IFE) unit), a web proxy 327, and a content distribution unit 329. The connectivity unit 323 may be configured to provide connectivity between the network 322 and media clients and / or service access devices in the mobile platform 305. The media unit 325 may be configured to provide media clients in the mobile platform 305 with a variety of linear media channels 304, including movies and other on-demand content. The web proxy 327 may be configured to manage specific media requests for linear media channels from media clients in the mobile platform 305. For example, if a user and / or media client sends a media request specifying a linear media channel (e.g., a live television channel) that is available (e.g., provided to the mobile platform 305 via a beam from a remote server), the web proxy 327 may be configured to provide the requested linear media channel to the media client. When a media client sends a media request that identifies / specifies a linear media channel that is not currently available, the distribution unit 329 may be configured to generate and / or send request data 303 to a remote server and / or provide the requested linear media channel when provided by the remote server.
[0059] In some embodiments, the in-flight server 320 may be configured to receive performance data 301 from one or more media clients (including, for example, a virtual media client 350 and / or user media clients) within the mobile platform 305. The in-flight server 320 may be further configured to transmit the performance data 301 obtained from the media clients within the mobile platform to one or more remote servers.
[0060] One or more virtual media clients 350 may be located within the aircraft of the mobile platform 305. Although the virtual media clients 350 are shown in Figure 3 as separate devices from the in-flight server 320, the virtual media clients 350 may be components 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 may be configured to transmit at least one linear media channel and / or multiple linear media channels to the virtual media clients 350. In some embodiments, the linear media channels provided to the virtual media clients 350 by the in-flight server 320 may also be transmitted by the in-flight server 320 to one or more user media clients within the aircraft of the mobile platform 305 (e.g., PED 316 and / or seatback system 318).
[0061] In some cases, performance data 301 obtained from user media clients (e.g., including PED 316 and 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 performance results of a very different quality compared to a high-end PED 316. The performance difference between the low-end and high-end PED 316 may be due to any of a variety of factors, including memory and processing power, among others. Therefore, the various PED 316s in the mobile platform 305 may not be able to provide a unified and / or reliable sample that shows the performance of the communication services provided in the 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 an in-machine 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 linear media channels 304 using various operating systems. For example, the virtual media client 350 can be configured to stream linear media channels 304 using the Android operating system and / or the iOS operating system. In some embodiments, the virtual media client 350 can be configured to run multiple operating systems simultaneously or sequentially and / or play different sets of linear media channels 304 simultaneously or sequentially using different or identical 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 web / network browsers, applications, and / or media players. For example, a virtual media client 350 can be configured to use emulation data 354 to stream one or more linear media channels 304 using a set of commands and / or actions that may be similar to and / or identical to commands and / or actions associated with one or more operating systems, network browsers, media players, etc.
[0063] The use of different operating system data 352 and / or emulation data 354 in the virtual media client 350 may enable the detection of discrepancies that may be caused by different operating systems. For example, the virtual media client 350 may be configured to generate a first set of performance data 301 using a first operating system and a second set of performance data 301 using a second operating system. The scoring subsystem in the mobile platform 305 and / or in the ground server may be configured to generate a first QOE score for the first set of performance data 301 and a second QOE score for the second set of performance data 301. If there is a large discrepancy between the first and second QOE scores, 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 between a first set of performance data 301 from one or more PEDs 316 and / or entertainment systems 318 and a second set of performance data 301 from one or more virtual media clients 350 can be used to determine the reliability level of one or more virtual media clients 350 and / or to modify one or more virtual media clients 350 to improve their reliability level. For example, an in-flight server 320 and / or a remote server can aggregate performance data 301 from multiple PEDs 316 and / or entertainment systems 318 in-flight of a mobile platform 305 having first operating software (e.g., the iOS operating system) to generate a first QOE score of 95%. The in-flight server 320 and / or the remote server can further receive performance data 301 from virtual media clients 350 in-flight of a mobile platform 305, also having first operating software, to generate a second QOE score of 98%. The in-flight server 320 and / or remote server may be further configured to generate a reliability score for the virtual media client 350 by subtracting the absolute difference between a first QOE score and a 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 quality of the actual experience of one or more PEDs 316 and / or entertainment systems 318 in the in-flight of the mobile platform 305. The in-flight server 320 and / or remote server may be configured to generate reliability scores for multiple operating systems (e.g., iOS and Android) across multiple moves, and the various reliability scores may be aggregated to generate an overall reliability score for the virtual media client 350. Various prescriptions can be made to the virtual media client 350 based on the reliability score to improve its performance.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 running concurrently in the virtual media client 350, and the in-machine server 320 and / or 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 run different operating systems and / or different instances / versions of one or more operating systems at different times during the transit 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 operating systems during transit. In some embodiments, the virtual media client 350 can be configured to run multiple operating systems and / or multiple instances of one or more operating systems in response to a relatively low reliability score of the virtual media client. For example, in response to the reliability score of the virtual media client 350 falling below a threshold over the period of one or more transits of the mobile platform 305, the virtual media client 350 can be configured to dynamically cycle through multiple operating systems and / or multiple instances of one or more operating systems to generate a reliability score for the virtual media client 350 for multiple instances and / or multiple operating systems. The generated reliability scores can be compared to determine the best reliability score that can correlate with the operating system and / or instance of operating system that is most likely to be used by the PED 316 and / or 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 configured to run by the virtual media client 350. 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, a second set of performance data 301 associated with a second operating system, and / or to send the first and second sets of performance data 301 to the in-machine server 320.
[0067] The virtual media client 350 can be configured to run different operating systems, and / or different instances of operating systems, simultaneously, sequentially, and / or alternately. For example, the virtual media client 350 can be configured to run a first operating system and then switch to a second operating system.
[0068] In some embodiments, the virtual media client 350 can be configured to generate performance data 301 simultaneously and / or on a case-by-case basis for different operating systems and / or software applications. The virtual media client 350 can be configured to mimic any of the characteristics of various devices. For example, an Android device may have its own way of playing media content, and the virtual media client 350 can be configured to monitor quality of experience data in a similar manner to that of an Android device.
[0069] Some user media clients may operate using a closed ecosystem, which could prevent the in-flight server 320 from collecting performance data 301 from such user media clients. However, a virtual media client 350 can be configured to emulate a closed ecosystem device (e.g., an iOS device) and to favorably 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 may be useful in providing meaningful reports related to the performance of communication services (including the performance of linear media channels) provided on the mobile platform 305. Furthermore, the virtual media client 350 may be useful in resolving various issues related to communication services on 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. Furthermore, the user of the PED 316 can be notified in response to the detected difference in results that there may be a problem with the PED 316.
[0071] In some embodiments, the virtual media client 350 can be configured to play and / or monitor specific linear media channels 304 and / or all linear media channels 304 provided to the mobile platform 305. Different ways in which the virtual media client selects specific linear media channels 304 to receive and / or provide performance data 301 in response to reception. In some embodiments, the virtual media client 350 can be configured to monitor linear media channels 304 based on their popularity. 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, a user media client may be configured to send media requests specifying one or more linear media channels. Similarly, in some embodiments, a virtual media client 350 may be configured to send media requests specifying one or more linear media channels. In some cases, the virtual media client 350 may not be required to send media requests. 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 a user media client. Since such linear media channels may already be available to the in-air 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, performance data 301 from the virtual media client 350 may be useful in detecting performance problems with a particular linear media channel. For example, if performance data 301 from the virtual media client 350 related to a first linear media channel shows good performance, but performance data 301 from the virtual media client 350 related to a second linear media channel shows 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 linear media channels already requested by the PED 316 and / or seatback system 318 so as not to increase the content demand of the mobile platform 305.
[0074] In some embodiments, the virtual media client 350 can be isolated from the in-flight server 320, as shown in Figure 3. Furthermore, 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 similar circuitry in order to communicate with the WAP 365. In this way, performance data 301 from the virtual media client 350 exhibiting poor performance can be used to identify performance problems 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 device experience within 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 integrated into the in-flight server 320. Furthermore, the virtual media client 350 can be configured to receive the linear media channel 304 directly from the in-flight server 320 (for example, without receiving the linear media channel 304 via 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 requiring direct access to and / or collection of performance data 301 from the user media client (e.g., PED 316). For example, some PEDs 316 may have hardware and / or software that can prevent the collection of performance data 301 and / or other related data. Furthermore, in some cases, certain PEDs may have hardware and / or software that is unfamiliar with and / or can provide such data in other ways, which may be difficult or impossible to use for evaluating the performance of the communication system on the mobile platform 105. Furthermore, in some cases, a user may prefer that data not be collected from their PED 316. Thus, the virtual media client 350 can advantageously enable the collection of performance data 301 on the mobile platform 305 without requiring collection from the user media client.
[0077] Furthermore, the virtual media client 350 can be configured to provide performance data 301 that may represent the performance of user media clients on board the mobile platform 305. In some cases, performance problems may be caused by transmission failures between the satellite and the onboard server 320. Therefore, even if data transmission between the remote (e.g., ground) server and the satellite is good, performance problems related to the various linear media channels 304 received from the satellite at the mobile platform 305 via the network 322 may occur due to various factors (e.g., weather) during transmission from the satellite to the mobile platform 305. Since the virtual media client 350 may be located on board the mobile platform 305, any performance problems that occur during data transmission between the satellite and the onboard server 320 may be experienced by the virtual media client 350, as well as by user media clients on board 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 within the mobile platform 305. In this way, for example, the performance data 301 associated with a PED 316 can be compared with the performance data 301 from the virtual media client 350 to detect a PED 316 experiencing a performance problem. For example, if a PED 316 provides 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] Statistical thresholds can be used to determine performance issues related to the PED 316 and / or the virtual media client 350. For example, if all PED 316s in the mobile platform 305 exhibit poor performance in communication services, but the virtual media client 350 exhibits good performance, it can be determined that there is a problem with the virtual media client 350.
[0080] Experience Quality Evaluation Process Figure 4 shows a process 400 for evaluating the in-flight performance of communication services provided within a mobile platform, according to an embodiment of the present disclosure. Although the steps of process 400 are described as being performed by an in-flight server, such steps can instead be performed by a remote server.
[0081] Process 400, in block 405, involves receiving one or more media requests from user media clients located within the mobile platform. Media requests can be received from multiple user media clients. In some embodiments, media requests can be received continuously and / or periodically. Each media request may indicate and / or specify one or more linear media channels. One or more linear media channels may include channels not currently accessed on the mobile platform and / or linear media channels currently accessed (e.g., being played on one or more user media clients within the mobile platform). User media clients may send media requests periodically and / or in response to specific events (e.g., a user selecting a new channel on the user media client).
[0082] In some embodiments, a virtual media client on board a mobile platform can also be configured to send media requests to an onboard server. The manner in which a virtual media client requests, receives, and / or accesses linear media channels can vary from embodiment to embodiment. In some embodiments, a virtual media client can be configured to send media requests only to linear media channels currently consumed by one or more user media clients. For example, a virtual media client may be configured to receive all currently consumed linear media channels and / or monitor all linear media channels in parallel (e.g., via multithreading). As another example, a virtual media client may be configured to receive and / or monitor fewer than all of the consumed linear media channels, such as by periodically switching between channels and / or selecting a representative channel for monitoring, or by monitoring one linear media channel at a time. In other embodiments, a virtual media client can be configured to receive and / or monitor channels that are not currently consumed by user media clients on board a mobile platform. For example, a virtual media client may be configured to temporarily request and / or monitor channels in a channel offering lineup that may not be currently consumed by user media clients. In this way, the virtual media client can be configured to ensure proper performance for all linear media channels provided through the communication service.
[0083] In block 410, process 400 aggregates the received media requests to generate request data that specifies a particular linear media channel. In some embodiments, aggregation 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-machine server may be configured to remove duplicate media requests in order to limit the amount of data sent to the remote server. Furthermore, aggregation may involve other forms of data processing, such as compressing the received media requests. In block 415, process 400 transmits the generated request data to the remote server.
[0084] In block 420, process 400 receives linear media channels from a remote server. The received linear media channels may include all or a subset of the linear media channels specified in the request data.
[0085] In block 425, process 400 involves transmitting / providing linear media channels to multiple user media clients within the mobile platform. The in-flight server may be configured to provide all received linear media channels to all user media clients, or it may provide linear media channels requested by a specific user media client only to that specific user media client.
[0086] In block 430, process 400 involves transmitting / providing at least one of the received linear media channels to a virtual media client on board the mobile platform. In some embodiments, the linear media channels provided to the virtual media client can be selected at least in part based on the popularity or other characteristics of the linear media channels.
[0087] In block 435, process 400 receives a first set of performance data from the virtual media client. The first set of performance data may include a single performance data type (e.g., one of startup data and refuffed data) or multiple performance data types (e.g., both startup data and refuffed data). The performance data may represent the performance of the linear media channel provided to the virtual media client (e.g., streaming performance).
[0088] In some embodiments, the in-air server may 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 rebuffered data) or multiple performance data types (e.g., both startup data and rebuffered data). In some embodiments, the first set of performance data may include different performance data types than 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, an in-flight server and / or a ground server may receive performance data from a 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 ground server to generate one or more experience quality scores. In some embodiments, the characteristics of the virtual media client (e.g., the 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 annotations Unless the context clearly indicates otherwise, throughout this specification and the claims, the words “comprise,” “comprising,” etc., should be interpreted in a comprehensive sense, i.e., “including, but not limited to,” and not in an exclusive or exhaustive sense. The word “coupled,” as commonly used herein, refers to two or more elements, which may be directly connected or connected by one or more intermediate elements. In addition, “herein,” “above,” “below,” and words of similar meaning, as used in this application, refer to the entire application and not to any particular part thereof. Where the context allows, the words in the above “modes for carrying out the invention,” whether singular or plural, may also include plural or singular. The word “or,” when referring to a list of two or more items, encompasses all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
[0091] Throughout this disclosure, any reference to “some embodiments,” “a particular embodiment,” or “embodiments” means that certain features, structures, or characteristics described in relation to an embodiment may be included in at least some embodiments. Therefore, occurrences of the phrases “in some embodiments,” “a particular embodiment,” or “in an embodiment” in various places throughout this specification do not necessarily all refer to the same embodiment, but may refer to one or more of the same or different embodiments. Furthermore, embodiments disclosed herein may or may not be embodiments of the present invention. For example, embodiments disclosed herein may include features and / or components that are not related to the invention, in part or in whole. In addition, certain features, structures, or characteristics may be combined in any preferred manner from the disclosure in one or more embodiments, as will be apparent to those skilled in the art.
[0092] The above detailed description of embodiments of the present invention is not intended to be exhaustive or to limit the invention to the exact forms disclosed above. While specific embodiments and examples of the present invention have been described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the art will understand. For example, although processes or blocks are presented in a given order, alternative embodiments may perform routines having steps in a different order, or employ systems having blocks, and some processes or blocks may be deleted, moved, added, subdivided, combined, and / or modified. Each of these processes or blocks may be implemented in a variety of 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 present invention provided herein can be applied to systems other than those described above. Further embodiments can be provided by combining elements and actions of the various embodiments described above.
[0094] While several embodiments of the present invention have been described, these embodiments are presented only as examples and are not intended to limit the scope of this disclosure. In fact, the novel methods and systems described herein may be embodied in various other forms, and various omissions, substitutions, and modifications of the forms of methods and systems described herein may be made without departing from the spirit of this disclosure. The appended claims and their equivalents are intended to cover such forms or modifications as they fall within the scope and spirit of this disclosure.
[0095] The attached claims and their equivalents are intended to cover any such forms or modifications that fall within the scope and intent 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. Furthermore, the features and attributes of the particular embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of this disclosure. Other embodiments that are obvious to those skilled in the art, including embodiments that provide certain preferred embodiments and uses but do not provide all of the features and advantages described herein, are also within the scope of this disclosure. Accordingly, the scope of this disclosure is intended to be defined solely by reference to the attached claims.
[0096] The methods and processes described herein may be embodied in software code modules executed by one or more general-purpose and / or dedicated computers, and may be partially or fully automated through software code modules. The term “module” can refer to logic embodied in hardware and / or firmware, or a set of software instructions, possibly having 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 in 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 themselves, and / or may be called in response to detected events or interrupts. Software instructions may be embedded in firmware such as erasable programmable read-only memory (EPROM). “Module” can further refer to one or more devices, components, systems, or subsystems that can conceptually implement the relevant functionality. It will be further understood that hardware modules may consist of connected logic units such as gates and flip-flops, and / or programmable units such as programmable gate arrays, application-specific integrated circuits, and / or processors. Modules described herein are preferably implemented as software modules, but may also be represented in hardware and / or firmware. Furthermore, in some embodiments, modules may be compiled separately, while in other embodiments, modules may represent a subset of instructions from a separately compiled program and may not have an interface available to other logic program units.
Claims
1. A communication system (100), The in-flight servers (120, 320) located inside the aircraft of the 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, The system comprises a scoring subsystem (238) and The aforementioned virtual media client, The aircraft receives a live video channel from the aforementioned in-flight server. It is configured to send performance data (201, 301) to the in-flight server. The aforementioned in-flight server is The mobile platform receives one or more media requests from multiple user media clients (116, 316, 318) within the aircraft, wherein each of the one or more media requests specifies one or more live video channels (203, 304). The remote server receives one or more live video channels, In accordance with the one or more media requests received, the one or more live video channels are provided to the multiple user media clients. The virtual media client is provided with at least one live video channel from among the one or more live video channels. The virtual media client receives a first set of performance data associated with the first live video channel. A second set of performance data is received from the first user media client among the plurality of user media clients. The first and second sets of the performance data are provided to the scoring subsystem. The scoring subsystem is, A communication system configured to generate an experience quality score based at least partially on first and second sets of performance data, wherein generating the experience quality score involves comparing the first set of performance data with the second set of performance data to generate a reliability score for the virtual media client.
2. The communication system according to claim 1, wherein the in-flight server is further configured to transmit request data (204, 303) indicating 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.
3. The communication system according to claim 2, wherein the request data includes an aggregation of one or more media requests.
4. The virtual media client is further configured to send media requests to the in-air server. The communication system according to any one of claims 1 to 3, wherein 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.
5. The aforementioned in-flight server is The virtual media client receives a first media request, wherein the first media request specifies a second live video channel that is not included in the one or more live video channels. The second live video channel is received from the remote server. The second live video channel is provided to the virtual media client, The communication system according to claim 4, further configured to receive a second set of performance data associated with the second live video channel from the virtual media client.
6. The first set of performance data relates to the streaming of the first live video channel in the virtual media client, according to any one of claims 1 to 5.
7. The communication system according to any one of claims 1 to 6, wherein the scoring subsystem is configured to obtain a first set of performance data from the in-flight server and to calculate a quality score of the experience associated with the first live video channel based at least in part on the first set of performance data.
8. The communication system according to any one of claims 1 to 7, wherein the scoring subsystem is further configured to perform a training operation based at least in part on the reliability score.
9. The aforementioned virtual media client, It stores 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 rebuffered 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, at least in part, on the popularity of the first live video channel.
12. The in-flight servers (120, 320) located inside the mobile platform (105, 305) receive one or more media requests from multiple user media clients (116, 316, 318) inside the mobile platform, wherein each of the one or more media requests specifies one or more real-time broadcast channels (203, 304). The in-flight server receives 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. In accordance with the one or more media requests received, the in-flight server provides the one or more real-time broadcast channels to the multiple user media clients, To provide at least one of the one or more real-time broadcast channels from the in-flight server to the virtual media client in the mobile platform, The in-flight server receives a first set (201, 301) of performance data associated with the first real-time broadcast channel from the virtual media clients (125, 350), The in-flight server receives a second set of performance data (201, 301) from the first user media client among the multiple user media clients, The first and second sets of the aforementioned performance data are provided from the in-flight server to the scoring subsystem, A method comprising: generating an experience quality score in the scoring subsystem based at least in part on first and second sets of performance data, wherein generating the experience quality score involves comparing the first set of performance data with the second set of performance data to generate a reliability score for the virtual media client.
13. The method according to claim 12, further comprising sending request data (204, 303) indicating one or more real-time broadcast channels to the remote server, 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 one or more media requests.
15. The method according to any one of claims 12 to 14, further comprising performing a training operation based at least in part on the reliability score in the scoring subsystem.
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