EP3939331A1 - Systems and methods for customizing and compositing a video feed at a client device - Google Patents
Systems and methods for customizing and compositing a video feed at a client deviceInfo
- Publication number
- EP3939331A1 EP3939331A1 EP20747886.8A EP20747886A EP3939331A1 EP 3939331 A1 EP3939331 A1 EP 3939331A1 EP 20747886 A EP20747886 A EP 20747886A EP 3939331 A1 EP3939331 A1 EP 3939331A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- video feed
- user
- data elements
- data
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000004891 communication Methods 0.000 claims abstract description 57
- 239000002131 composite material Substances 0.000 claims abstract description 47
- 230000015654 memory Effects 0.000 claims description 77
- 238000003860 storage Methods 0.000 claims description 27
- 230000003993 interaction Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 4
- 238000009877 rendering Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 49
- 238000007726 management method Methods 0.000 description 73
- 230000015572 biosynthetic process Effects 0.000 description 50
- 238000005755 formation reaction Methods 0.000 description 50
- 238000010801 machine learning Methods 0.000 description 25
- 238000012800 visualization Methods 0.000 description 24
- 238000004422 calculation algorithm Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 19
- 230000002093 peripheral effect Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 8
- 230000000670 limiting effect Effects 0.000 description 7
- 238000012706 support-vector machine Methods 0.000 description 7
- 238000012549 training Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 238000003066 decision tree Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000007637 random forest analysis Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000036461 convulsion Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007477 logistic regression Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 210000003423 ankle Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 244000144972 livestock Species 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000005180 public health Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000010792 warming Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/61—Arrangements for services using the result of monitoring, identification or recognition covered by groups H04H60/29-H04H60/54
- H04H60/64—Arrangements for services using the result of monitoring, identification or recognition covered by groups H04H60/29-H04H60/54 for providing detail information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8126—Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts
- H04N21/8133—Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts specifically related to the content, e.g. biography of the actors in a movie, detailed information about an article seen in a video program
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H2201/00—Aspects of broadcast communication
- H04H2201/30—Aspects of broadcast communication characterised by the use of a return channel, e.g. for collecting users' opinions, for returning broadcast space/time information or for requesting data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/35—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
- H04H60/46—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for recognising users' preferences
Definitions
- Video feeds such as news broadcasts and sporting events such as football and soccer are some of the most popular forms on entertainment.
- a popular method is streaming a video feed on a user device.
- Conventional video streams use multiple data layers that are compiled remotely and communicated worldwide. For instance, a broadcasting booth receives and compiles video feeds, audio feeds, and graphics into a compiled video feed, which is then communicated to remote devices.
- the compiled video feed consumes a large amount of data, since the audio and graphics are inseparable from the video portion of the feed.
- end users are unable to personalize the video feed since the end user can either receive the compiled video feed or choose not to receive the video feed at all, instead of optionally receiving portions of the video feedbrief
- a process to customize and composite a video feed includes receiving a background video feed from a remote server, receiving content associated with one or more user-specific characteristics, and determining one or more data elements based at least in part on the received content.
- the process includes generating a composite video feed customized to the one or more user-specific characteristics including by matching at least corresponding portions of the one or more data elements to corresponding portions of the background video feed, and displaying the composite video feed on a display device of the client device.
- a process to process to customize and composite a video feed includes receiving a background video feed from a remote server, determining a first time stamp of a first frame of the background video feed from time-stamped metadata associated with the first frame, and receiving content associated with one or more user-specific characteristics.
- the content includes time-stamped metadata associated with background video frames and data with a time stamp falling within a time range determined by the first time stamp.
- the process includes determining one or more data elements based at least in part on the received content.
- the process includes generating a composite video feed customized to the one or more user-specific characteristics including by matching at least corresponding portions of the one or more data elements to corresponding portions of the background video feed based at least in part on a concordance of a time stamp of a respective data element and a time stamp of a respective background video frame.
- the process includes displaying the composite video feed on a display device of the client device.
- the generated composite video feed includes time-matched frames in which each time-matched frame is overlaid with data elements that time match a respective background video frame. Videos that are customized and compiled using the techniques disclosed herein are personalized to end users.
- FIG. 1 is a block diagram illustrating an embodiment of a system to provide a customized composite video feed.
- FIG. 2 is a flow chart illustrating an embodiment of a process for customizing and compositing a video feed.
- FIG. 3 is a flow chart illustrating an embodiment of a process for customizing and compositing a video feed.
- FIG. 4A shows an example of a news broadcast that is customized and composited at a client device.
- FIG. 4B shows an example of a news broadcast that is customized and composited at a client device.
- FIG. 5A shows an example of a sports event that is customized and composited at a client device.
- FIG. 5B shows an example of a sports event that is customized and composited at a client device.
- FIG. 5C shows an example of a sports event that is customized and composited at a client device.
- FIG. 6 is a block diagram illustrating an embodiment of a system for customizing and compositing a video feed.
- FIG. 7A shows a block diagram illustrating an embodiment of a system for customizing and compositing a video feed.
- FIG. 7B shows a block diagram illustrating an embodiment of a system for customizing and compositing a video feed.
- FIG. 8 is a block diagram illustrating an embodiment of a tracking device.
- FIG. 9 is a block diagram illustrating an embodiment of a tracking device management system.
- FIG. 10 is a block diagram illustrating an embodiment of a statistics system.
- FIG. 11 is a block diagram illustrating an embodiment of an odds management system.
- FIG. 12 is a block diagram illustrating an embodiment of a user device.
- FIG. 13 shows an example environment including a field of play that includes components of a tracking system according to an embodiment of the present disclosure.
- FIG. 14 is a functional diagram illustrating a programmed computer system for customizing and compositing a video feed in accordance with some embodiments.
- FIG. 15 is a flow chart illustrating an embodiment of a process for customizing and compositing a video feed for live sports.
- FIG. 16 shows an example of a customized composite video feed for a football game.
- FIG. 17 shows an example of a customized composite video feed for a football game.
- the invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor.
- these implementations, or any other form that the invention may take, may be referred to as techniques.
- a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task.
- the term‘p rocessor ’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
- FIG. 1 A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications, and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured. [0030] FIG.
- FIG. 1 is a block diagram illustrating an embodiment of a system to provide a customized composite video feed.
- This exemplary system includes one or more client devices 150, server 100, and one or more content creators 140. Each client device and content creator is configured to communicate with server 100 via a communications interface (not shown).
- One or more user devices 150 facilitate end user interaction with various systems of the present disclosure.
- the user devices can be any type of computing device including, without limitation, a smartphone, tablet, OTT box, desktop computer, or smart TV.
- An example of a user device is shown in FIG. 16.
- the end user interacts with the other system components by sending a request to server 100 to view video content such as a news broadcast, live sporting event, or television program.
- the server responds with the requested content, and portions of the video feed can be customized to a specific user’s preferences using the techniques further described below.
- server 100 stores user profiles 102, which keeps track on user preference which may be based on user-specified interests (e.g., at the time of enrollment), user habits such as browsing history, and other user characteristics which may be learned over time using various techniques including known machine learning techniques.
- Server 100 also stores content that can be pushed to client devices periodically or sent to the client devices in response to a query for data.
- Background content 104 includes content created or captured by content creators 140 such as a background video feed as further described below.
- Additional content 109 includes data elements that can be used to augment the background video feed such as interactive data elements. The data elements can be extracted from the background video feed (e.g., isolating or highlighting footage of a specific player on a football team), generated (e.g., game/player stats) or a combination thereof.
- User A watching a news broadcast is interested in a Company X’s live stock price.
- the news broadcast is presented and customized to display Company A’s stock price.
- User B is not interested in Company X, but is instead interested in Company Y.
- the news broadcast is presented and customized to display Company Y’s stock price.
- User A is watching a live football game and is interested in Player U.
- the football game is presented and customized to highlight Player U for example by displaying footage of the game focused on Player U’s actions on the field.
- User B is not interested in Player U, but is instead interested in Player V.
- the football game is presented and customized to highlight Player V.
- One or more content creators 140 create content such as video, audio, text, images, and the like that is distributed to the client devices 150.
- content creators create news broadcasts such as finance news, television shows in a variety of areas such as reality television, and sporting events including live sports.
- one or more cameras 140- 1 to 140-S capture images and/or video of an event (which may be a live event) that is then utilized by the systems of the present disclosure.
- the cameras 140 include one or more high resolution cameras.
- the one or more high resolution cameras includes a camera with a 1080p resolution to 8K resolution.
- any of the illustrated devices and systems can in fact constitute several computer systems that are linked together in a network, or be a virtual machine or a container in a cloud computing environment.
- the illustrated devices and systems wirelessly transmit information between each other.
- the exemplary topology shown in FIG. 1 merely serves to describe the features of an embodiment of the present disclosure in a manner that will be readily understood to one of skill in the art.
- FIG. 2 is a flow chart illustrating an embodiment of a process for customizing and compositing a video feed.
- the process can be performed by a client device such as User Device 1 (150-1) or User Device R (150-R) shown in FIG. 1.
- the process begins by receiving a background video feed (202).
- the background video feed can be any type of content including, without limitation, a live event, a new broadcast, or an advertisement.
- the video feed of a live event is received while the live event is taking place or the video feed of the event is received after the live event has taken place (e.g., the video feed is a video on demand (V OD)), such as a recording of the live event.
- V OD video on demand
- An example of a news broadcast is further described with respect to FIGS. 4A and 4B.
- An example of a live sports event is further described with respect to FIGS. 5A-5C.
- the video feed includes an audio portion (e.g., audio captured by a respective broadcasting device 140).
- the video feed received by a respective client device includes a composition of frames and audio (e.g., the video feed received by the client device includes audio portions and image portions).
- the present disclosure is not limited thereto.
- the respective client device receives a video feed (e.g., a plurality of frames) and an audio feed (e.g., a plurality of audio segments or portions) as separate feeds.
- Splitting an audio portion of the video feed prior to receiving the feeds at the respective user device allows for an end-user of the user device to customize, enable, or disable, audio portions and/or closed captioning portions of the composited video feed depending on the user preference settings of the user.
- the audio sound track (various languages, background music, narration, etc.) can be tailored to the user’s characteristics.
- the background video feed can be received together with the content received at 204 or can be received separately (not in association) with the content received at 204.
- the process receives content associated with one or more user-specific characteristics (204).
- the client device receives the content from the remote server.
- the customization can be performed by the server and/or the client device.
- the client device determines what content to request based on user-specific characteristics. For example, the client device looks up content associated with a user’s preferences locally and sends a request for content of interest to the server. In some embodiments, it is the server that determines what content to send based on user-specific characteristics.
- the client sends a user identifier (such as user name or a demographic group) to the server, and the server uses the user identifier to look up content of interest to the user by using a lookup table or other database that maps a user’s characteristics to content of interest to that specific user.
- a user identifier such as user name or a demographic group
- the content is pushed to client devices by the server at an interval determined by the server and/or user/client device settings.
- content is pulled from the server by the client device using a content request.
- the client device uses a communications interface to request the content from a remote server.
- the request is automatically made on behalf of a user when the user begins using the user device (or a client application on the user device). For example, when a user logs into a fantasy sports app, a television show viewing app, or the like, the request for content is relayed to the server.
- the request is initiated by the user via a user interface on the client device.
- the user while viewing a television program using the client device, the user selects an object of interest such as a player or team in a sporting event, a company stock ticker symbol, a character in reality TV show to generate a request for content (additional information) about the object of interest.
- an object of interest such as a player or team in a sporting event, a company stock ticker symbol, a character in reality TV show to generate a request for content (additional information) about the object of interest.
- the plurality of data elements received from the computer system includes the plurality of data elements requested by the query.
- the present disclosure is not limited thereto.
- a first plurality of data elements is requested by the query and, accordingly, a second plurality of data elements is received from the computer system (e.g., only a subset of data elements of the first plurality of data elements is available).
- each data element that is received in response to the query includes associated time-stamped metadata that falls (e.g., is included) within the specific time range (e.g., the time range is from 1:04 PM to 1:06 PM on a specific day, and, accordingly, the data elements received as a result of the query include metadata that is associated with a time in between 1 :04 PM and 1 :06 PM of the specific day).
- the plurality of data elements is received from one or more data stores of the system shown in FIGS. 1, 6, or 10 (e.g., historical training data store 214, situation store 228, etc.). In some embodiments, the plurality of data elements is stored locally on the user device.
- the plurality of data elements includes one or more data elements that are stored locally on the user device and one or more data elements that are stored on the computer system shown in FIG. 1, 6, or 10 (e.g., historical data store 214, situation store 228, etc.).
- the process determines one or more data elements based at least in part on the received content (206).
- the data elements can be determined based on preference settings (e.g., user preference settings) of the client device. For instance, a user preference setting indicates that the user is interested in weather, so weather data elements will be included in a composite video feed.
- the data elements can be interactive, allowing user to select the data element to view additional customized content to the user’s preferences.
- the query includes a request for weather data elements which are overlaid with the frames of the video feed.
- the user preference settings can be stored within the user device or at a remote server.
- User preference settings can be determined in a variety of ways. For example, a machine learning process determines a tendency of a particular setting by analyzing an activity of a user over a period of time. As another example, user interaction with an affordance region of a graphical data element overlaid on a video feed indicates a user preference. A user interacts with a graphical data element (e.g., embedded graphic), such as touching a scrolling ticker on a video feed to obtain more information about the ticker or to change a state of the graphical data element from visible to OFF. Flaving the query request data elements in accordance with a user preference setting allows for the composited video feed to be personalized for the respective user.
- a graphical data element e.g., embedded graphic
- This querying also optimizes an amount of data received by the respective user device since data elements a user indicates to exclude (or does not request) are not received by the user device. Further, enabling an end user to interact with a composited video feed and change which data elements are overlaid onto the feed allows for the end user to further personalize the viewing experience. [0044]
- the process generates a composite video feed customized to the user-specific characteristics including by matching at least corresponding portions of the one or more data elements to corresponding portions of the background video feed (208). Data elements can be matched to corresponding portions of the background video feed asynchronously or in a time- synchronized manner as further described below.
- the process displays the composite video feed on a display device of the client device (209).
- the composite video feed can be output on a user interface of a client device to show information tailored to a specific user’s interests in conjunction (e.g., overlaid) with a background video feed that is broadcast to a general audience.
- communications are performed using a first exchange protocol, which provides a communication system for receiving portions of a background video feed and assembling data elements and/or portions of the video feed to form composited video feed (e.g., a video presentation).
- the first exchange protocol is a HyperText Transfer Protocol (HITP) Live Streaming protocol (e.g., an HLS protocol).
- the first exchange protocol is a real-time messaging protocol (RTMP).
- the first exchange protocol delays (e.g., induces a latency in) receiving the video feed by a dynamic period of time (e.g., of from 10 seconds to 60 seconds).
- the background video feed is continuously received (e.g., a respective client device is in continuous communication with the computer system shown in FIG. 1 to receive the video feed).
- the video feed is received by a respective user device in packets or blocks (e.g., the respective user devices the video feed in 10 second blocks).
- time-synchronized matching is performed as further described with respect to FIG. 15.
- the receiving of the video feed, the sending of the content request, or a combination thereof is conducted in accordance with a determination of a bandwidth of the client device.
- a bandwidth of the client device is dynamic and changes depending upon a number of factors (e.g., a bandwidth of network, a bandwidth of broadcasting system, etc.).
- the method further includes using the bandwidth of the client device (e.g., user device 150) to dimension a size of a visualization buffer (e.g., visualization buffer module).
- the using the bandwidth of the client device to dimension a size of the visualization buffer increases the size of the visualization buffer responsive to a determination in a degradation in the bandwidth.
- the using the bandwidth of the client device to dimension a size of the visualization buffer reduces the size of the visualization buffer responsive to a determination of an improvement in the bandwidth. This dimensioning of a size of the visualization buffer allows for a number of time matched frames to be dynamically posted to the visualization buffer. For instance, in some embodiments decreasing a number of time matched frames posted to the visualization buffer decreases a load on the client device.
- the receiving of the video feed, the sending of the query, or a combination thereof is conducted in accordance with a determination of a bandwidth of the client device.
- a bandwidth of the client device is dynamic and changes depending upon a number of factors (e.g. , a bandwidth of network 106 a bandwidth of broadcasting system 150 etc.).
- FIG. 3 is a flow chart illustrating an embodiment of a process for customizing and compositing a video feed.
- the process can be performed by a server such as server 100 shown in FIG. 1.
- the process begins by receiving a request for content associated with one or more user-specific characteristics (352).
- the server uses a communications interface to receive and send data to a remote client device.
- the process determine content based on the request including by looking up content associated with the request (354).
- the content may include data and/or metadata, where the data can be directly output or post-processed by the client for output in the composite video feed.
- data includes graphics, text, or audio.
- Metadata defines how the data is to be output in the composite video feed such as a visual effect (such as an alpha glow), a speed, a direction, refresh rate, exit conditions, and interaction rules.
- the process can keep track of requests or user preferences by using profiles. For example, if the request is accompanied by user-specific characteristics, the characteristics are stored in a user profile that keeps track of a particular user’s interests and/or behaviors.
- the server uses a user identifier sent by the client device to look up content of interest to the user by using a lookup table or other database that maps a user’s characteristics to content of interest to that specific user.
- the process sends the determined content to a remote client device in response to the content request (356).
- the content can be sent over any type of communications interface or network.
- FIG. 4A shows an example of a news broadcast that is customized and composited at a client device.
- the customized data element is a scroll of text displayed in a newscast.
- the background video 403 is of a news announcer reading breaking news about a development in global public health.
- the newscast can be pre-recorded or live, and the techniques for customization can be applied in either situation.
- the background video has various portions including an inset frame (“Breaking News”) that can display additional video such as content from reporters in the field interviewing various people.
- a bottom text scroll 407 shows current stock prices.
- the breaking news has an impact on stock prices of various companies, decreasing the prices of a cruise line (CRUS) and an airline (WINGS) while increasing the prices of a teleworking company (TLWK) and a cleaning supplies company (SANI).
- a user viewing the newscast may be particularly interested in some of the companies, for example if he is an investor in TLWK (represented by data element 405).
- the text scroll 407 is an example of a data element that is an example of data elements) matched to a portion of the background video feed. Together, the background video 403 and the text scroll 407 forms a composite video. A user can interact with this video to obtain further information of interest. For example, the user can select data element 405 to display additional video or information pertaining to TLWK as shown in the next figure.
- a video timestamp instantiates the text scroll (crawl).
- Data for the crawl is periodically requested from the server based on an individual user profile and the video timestamp, downloaded to the client, and then rendered locally. Formatting for the crawl can be included as markup. Behavior of the crawl (speed, direction, interaction rules, refresh period, exit conditions (what makes the crawl go away)) can be included in the download as various code commands.
- FIG. 4B shows an example of a news broadcast that is customized and composited at a client device.
- the customized data element is a branched video that displays an in-depth report about a subject of interest to the user.
- a background video feed or a composite video feed can be updated in response to user interaction with the one or more data elements (e.g., a specific stock ticker) of the composite video feed.
- FIG. 4B shows a state of the user interface after the user has selected data element (module) 405.
- the modules such as the frame elements are locally rendered data. Formatting for the modules can be embedded markup.
- data element 405 When a user touches or clicks on one of the modules (data element 405), it triggers the opening of a new video stream (e.g., data element 409).
- a chart of the company’s sales this year compared with the same time frames as last year is displayed.
- the chart can be accompanied by other multi-media such as narration explaining when TLWK share prices are rising.
- the manner in which the customized data element is displayed is merely illustrative and not intended to be limiting.
- data element 409 can be displayed in other portions of the user interface such as the“Breaking News” inset, can fill the entire screen, or can be snapped to take up more/less space in the user interface.
- Other customized data elements can be displayed as well.
- a user can view a data element about TLWK and another data element about SANI simultaneously. This allows a user to follow many objects/subject matters of interest while still viewing the background video. For example, the user can study the in-depth report about TWLK while background video plays and when another breaking news item affects SANI’s stock prices, then the user can easily exit out of the TWLK in-depth report and turn his attention to SANI.
- the data elements can be other types of multimedia such as audio track in a language and/or music customized to a specific user.
- the background video feed can be an advertisement and a data element such as a price (e.g., a text string) can be customized/targeted to the user for example based on the user’s geographical location (taxes may differ from region to region) or based on cost of living or perceived value of a specific user.
- a price e.g., a text string
- FIGS. 5A-5C shows an example of a sports event that is customized and composited at a client device.
- the live event is a sports event (e.g., a sports event between a first team and a second team).
- the live event is a football game, a soccer game, a tennis match, a water polo game, etc. between a first team and a second team.
- the video feed includes a plurality of frames (e.g., frames captured by a respective camera 140).
- the video feed can include a static number of frames (e.g., 16, 24, 28, or 60 frames per second) or a dynamic number of frames.
- the dynamic number of frames per second of video can be in accordance with a bandwidth of network and/or client device.
- User preference settings indicate a preference for one or more graphical data elements (e.g., 509 or 511) to be overlaid onto a video feed (503) and/or an orientation or preferred camera of a video feed.
- a user preference setting indicates that the user prefers to receive a video feed from a first camera (e.g., a landscape camera view) instead of a second camera (e.g., a partial landscape camera view).
- a user preference setting indicates a preference to display a graphical data element 509 that identifies various information related to a respective subject 505.
- a user preference setting indicates a preference to display a graphical data elements including for example a location of a ball (e.g., positional information of a ball), a current ball carrier, path of travel of a subject (e.g., a path of travel of a ball during a play), game clock data element 507, a play clock data element, and/or a game state data element.
- a user preference setting indicates a preference to display a graphical data element that provides a wagering platform (e.g., wager module 718).
- a user preference setting indicates a preference to display a data element that provides text based information (e.g., weather information, news, etc.).
- text based information e.g., weather information, news, etc.
- a user is enabled to personalize and interact with a video feed to tailor the viewing experience to their particular preferences. This also allows for the user device to optimize an amount of data received from the computer system (e.g., the system shown in FIG. 1) by preventing streams of data a user has indicated no interest in from being communicated unnecessarily.
- the plurality of data elements includes a plurality of game clock data elements (e.g., an array of game clock elements and associated metadata), game state data elements (e.g., an array of game state elements and associated metadata), positional information data elements (e.g., an array of positional information for one or more subjects and associated metadata), graphical data elements (e.g., a plurality of embedded graphics, a plurality of text data elements such as news and/or weather, and associated metadata), text data elements (e.g., new articles, weather information, etc.), score of the sporting event at the matching time stamp value, etc.
- game clock data elements e.g., an array of game clock elements and associated metadata
- game state data elements e.g., an array of game state elements and associated metadata
- positional information data elements e.g., an array of positional information for one or more subjects and associated metadata
- graphical data elements e.g., a plurality of embedded graphics, a plurality of text data elements such as news and/or weather, and
- the plurality of data elements may include one or more arrays of data elements.
- the plurality of data elements includes an array of game clock data and associated time-stamps.
- the plurality of data elements includes an array of play clock data and associated time-stamps.
- each data element in the plurality of data elements is provided as an array of data.
- Table 1 depicts an exemplary array of game clock data elements, an exemplary array of game state data elements, and time stamp metadata associated with each respective array that is stored by the computer system shown in FIG. 1.
- the techniques disclosed herein find application in a sporting event streaming setting.
- the following figures show examples of systems and processes for capturing a background video feed, and determining content that can be displayed in a customized manner with the background video feed to cater to a user’s preferences.
- FIG. 6 is a block diagram illustrating an embodiment of a system for customizing and compositing a video feed.
- System 600 includes additional elements compared with FIG. 1 to facilitate video customization and composition for live sports events.
- System 600 includes communication interface 107 and processor 100 (which is like server 100 of FIG. 1 unless otherwise described).
- Communication interface 107 is configured to receive time-stamped position information of one or more participants of one or both of the first set of participant(s) and the second set of participant(s) in the competition.
- the time-stamped position information is captured by a telemetry tracking system during the competition.
- the telemetry tracking system is made up of tracking device(s) 300-1 to 300-P, anchor device(s) 120-1 to 120-Q, and optionally camera(s) 140-1 to 140-S, which are managed by tracker management system 400 as further described below.
- Processor 100 is coupled to communication interface 107 and configured to calculate, e.g., while the present competition is ongoing, a first covariate parameter for each of one or more participants in one or both of the first set of participants and the second set of participants at and/or as of a point in time.
- Each respective first covariate parameter is derived from the time- stamped position information of a corresponding participant of the first or second set of one or more participants in the present competition at the point in time.
- processor 100 includes tracking management system 400 for tracking a plurality of subjects and statistics system 500 for managing various statistics.
- Tracking device management system 400 facilitates managing of one or more tracking devices 300 and one or more anchor devices 120 of the system.
- Statistics system 500 stores and/or generates various statistics for use in predicting an outcome at a competition such as a live sports event, providing odds for wagering on various circumstances or outcomes in the sports event, and other similar activities.
- tracking management system 400 and statistics system 500 comprise software engines or modules running on processor 100 and/or separate or potentially separate systems, each comprising and/or running on one or more processors comprising processor 100
- system 600 includes odds management system 600 for managing odds and a plurality of user devices 700- 1 to 700-R. Although odds management system 600 is shown external to processor 100, in some embodiments the odds management system is included in the processor. Odds management system 600 facilitates determining odds for outcomes in a sports event and managing various models related to predicting outcomes at the live event.
- the system includes one or more user devices 700 that facilitate end user interaction with various systems of the present disclosure, such as odds management system 600.
- system 600 includes one or more cameras 140 that capture live images and/or video of a live event that is then utilized by the systems of the present disclosure.
- the cameras 140 include one or more high resolution cameras.
- the one or more high resolution cameras includes a camera with a 1080p resolution, 1440p resolution, 2K resolution, 4K resolution, or 8K resolution.
- any of the illustrated devices and systems can in fact constitute several computer systems that are linked together in a network, or be a virtual machine or a container in a cloud computing environment.
- the illustrated devices and systems wirelessly transmit information between each other.
- the exemplary topology shown in FIG. 6 merely serves to describe the features of an embodiment of the present disclosure in a manner that will be readily understood to one of skill in the art.
- the communication network 106 interconnects tracking device management system 400 that manages one or more tracking devices 300 and one or more anchors 120, statistics system 500, odds management system 600, one or more user devices 700, and one or more cameras 140 with each other, as well as optional external systems and devices.
- the communication network 106 optionally includes the Internet, one or more local area networks (LANs), one or more wide area networks (WANs), other types of networks, or a combination of such networks.
- Examples of networks 106 include the World Wide Web (WWW), an intranet and/or a wireless network, such as a cellular telephone network, a wireless local area network (LAN) and/or a metropolitan area network (MAN), and other devices by wireless communication.
- WWW World Wide Web
- LAN wireless local area network
- MAN metropolitan area network
- the wireless communication optionally uses any of a plurality of communications standards, protocols and technologies, including Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPDA), long term evolution (LTE), near field communication (NFC), wideband code division multiple access (W-CDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth, Wireless Fidelity (Wi-Fi) (e.g., IEEE 802.1 la, IEEE 802.1 lac, IEEE 802.1 lax, IEEE 802.1 lb, IEEE 802.1 lg and/or IEEE 802.1 In), voice over Internet Protocol (VoIP), Wi-MAX, a protocol for e-mail (e.g., Internet message access protocol (IMAP) and/or post office protocol (POP)), instant messaging (e.g., extensible messaging and presence protocol (
- processor 100 includes a machine learning engine 210 (see
- FIG. 7A that facilitates the prediction of the outcome of a competition.
- the next figure describes an example of processor 100 that includes a machine learning engine in greater detail.
- FIGS. 7A and 7B show a block diagram illustrating an embodiment of a system for customizing and compositing a video feed.
- an array of anchor devices 120 receives telemetry data 230 from one or more tracking devices 300.
- the array of anchor devices 120 preferably includes at least three anchor devices. Inclusion of at least three anchor devices 120 within the array of anchor devices allow for each ping (e.g., telemetry data 230) received from a respective tracking device 300 to be triangulated using the combined data from the at least three anchor that receive the respective ping. Additional details and information regarding systems and methods for receiving pings from tracking devices and the optimization thereof will be described in more detail infra, with particular reference to at least FIGS. 3 and 4.
- the positional telemetry data 232 provides location data for a respective tracking device 300, which describes a location of the tracking device within a spatial region.
- this positional telemetry data 232 is provided as one or more Cartesian coordinates (e.g., an X coordinate, a Y coordinate, and/or Z a coordinate) that describe the position of each respective tracking device 300, although any coordinate system (e.g., polar coordinates, etc.) that describes the position of each respective tracking device 300 is used in alternative embodiments.
- the telemetry data 230 that is received by the array of anchors 120 from the one or more tracking devices 300 includes kinetic telemetry data 234.
- the kinetic telemetry data 234 provides data related to various kinematics of the respective tracking device.
- this kinetic telemetry data 234 is provided as a velocity of the respective tracking device 300, an acceleration of the respective tracking device, and/or a jerk of the respective tracking device.
- one or more of the above values is determined from an accelerometer (e.g., accelerometer 317 of FIG. 8) of the respective tracking device 300 and/or derived from the positional telemetry data 232 of the respective tracking device.
- the telemetry data 230 that is received by the array of anchors 120 from the one or more tracking devices 300 includes biometric telemetry data 236.
- the biometric telemetry data 236 provides biometric information related to each subject associated with the respective tracking device 300.
- this biometric information includes a heart rate of the subject, temperature (e.g., a skin temperature, a temporal temperature, etc.), and the like.
- the array of anchors 120 communicates the above described telemetry data (e.g., positional telemetry 232, kinetic telemetry 234, biometric telemetry 236) to a telemetry parsing system 240. Accordingly, in some embodiments the telemetry parsing system 240 communicates the telemetry data (e.g., stream of data 244) to a machine learning engine 210 and/or a real time data packager 246 for further processing and analysis.
- the telemetry data e.g., stream of data 244
- the real time data packager 246 synchronizes one or more data sources (e.g., streaming data 244 from telemetry parsing system 240, game statistics input system 250, machine learning engine 210, etc.) by using one or more timestamps associated with the respective data.
- the data sources provide data that is associated with a real world clock timestamp (e.g., an event occurred at and is associated with a real world time of 1 : 17 P.M.).
- the data sources provide data that is associated with a game clock timestamp related to a live sports event (e.g., an event occurred with 2 minutes and 15 seconds remaining in the second quarter).
- the data sources provide data that is associated with both the real world clock timestamp and the game clock timestamp. Synchronization of the data sources via timestamps allows for a designer of the present disclosure to provide services with an additional layer of accuracy, particularly with betting and wagering on outcomes at a live event.
- data provided to a user device 700 e.g., streaming data 280 and/or direct data 282 of FIG. 7B
- the wagering e.g., odds
- the game clock and real world time data received from the user device and/or communicated to the user device are analyzed and the wager is either validated, rejected, or held for further consideration.
- machine learning engine 210 receives data from various sources of the present disclosure in order to predict a future outcome at a live sporting event and generate statistics for analysis and use.
- the data sources of the machine learning engine 210 includes a positional data formation classifier 212, hereinafter“neural net,” that provides information related to various configurations and formations of players at any given point of time in game.
- the formation classifier 212 parses the telemetry data 230 to analyze pre-snap formations of players.
- the analyses of the pre-snap telemetry data 230 allows for the formation classifier 212 to determine various states and conditions of the game, such as a down of a game, a positional rule violation within a game (e.g., off-sides, illegal motion, etc.), and the like.
- the formation classifier 212 analyzes telemetry data 230 that is received subsequent the start of the play in order to further generate data and information related to how each formation evolves (e.g., an expected running route versus an actual running route, an expected blocking assignment versus an action blocking assignment, a speed of a player throughout a play, a distance between two players throughout a play, etc.).
- machine learning engine 210 includes a historical training data store 214.
- Flistorical data store 214 provides historical data and information related to each particular sport (e.g., sports historical data 508 of FIG. 10), each particular team associated with the particular sport (e.g., team historical data 510 of FIG. 10), and/or each particular player associated with the particular sport and/or team (e.g., player historical data 514 of FIG. 10).
- this data is initially used as a training data set for the machine learning engine 210.
- the present disclosure is not limited thereto as this data may also be used to further augment the features and services provided by the machine learning engine 210 and other systems of the present disclosure.
- the machine learning engine 210 includes a variety of models 220 that are utilized to predict a future outcome of a sporting event and provide analysis of the sporting event.
- the models 220 of the machine learning engine 210 include an expected points model 222.
- the expected points model 222 provides a likelihood of receiving points for a particular play at the event via a numerical value.
- the models 220 of the machine learning engine 210 include a win probability model 224 that provides either a likelihood of each participating team of the event to win or a likelihood of any given point spread between the winning and losing teams at the event.
- the models 220 of the machine learning engine 210 include a player based wins above replacement (WAR) model 226.
- WAR wins above replacement
- the WAR model 226 provides a contribution value a respective player adds to their corresponding team (e.g., player 1 provides a value of 1 to a respective team and player two provides a value of 2 to the respective team, therefore player two is worth more to the respective team).
- machine learning engine 210 include a situation store 228.
- the situation store 228 is a cache of various situational details and/or statistics that is accessed rapidly during a real game scenario. Rapid access to the situation store 228 prevents lag that would otherwise be induced from querying different databases and systems (e.g., positional data formation classifier 212, historical training data 214, etc.) in order to obtain the same information. Additional details and information regarding the machine learning engine and the components therein, including the various above described data stores and models, will be described in more detail infra, with particular reference to at least FIGS. 10 and 11.
- Machine learning engine 210 communicates various odds and outputs of the various databases and models therein to an odds management system 600.
- the odds management system 600 provides various wagers and predictive odds for future events at a sporting event to the user devices 700, while also updating these odds in real time to reflect current situations and statistics of a game.
- system 600 includes a game statistics input system 250.
- the game statistics input system 250 is configured for providing at least in play data 254, which, in example case of football, describes a state of the game during a given play (e.g., a weak side receiver ran a post route), as well as end of play data 256, which describes a state of the game after a given play (e.g., a play resulted in a first down at the opponents 42-yard line).
- the data of the statistics input system 250 is associated with the world and game clock 242, and accordingly is communicated to the telemetry parsing system 240 and/or the machine learning engine 210.
- the game statistics input system 250 is subsumed by the formation classifier 212.
- various data is communicated to an application programing interface (API) server 260.
- This data may include streaming data 244, end of play data 256, data from the odds management system 600, or a combination thereof.
- the API server 260 facilitates communication between various components of the system, one or more user devices 700, and a master statistics database 270 in order to provide various features and services of the present disclosure (e.g., a stream of the game, a request for statistics, placing a wager on a play, etc.).
- Communication between the API server 260 and the one or more user devices 700 includes providing streaming data 280 and/or direct data 282 to each respective user device 700 through the communications network 106, as well as receiving various requests 284 fiom each respective user device.
- streaming data 280 includes tracking“telemetry” data including xyz coordinates of players or accelerometer data of players, direct data 282 includes clock, score, or remaining timeouts.
- the master statistics database 270 includes some or all of the statistics known to the machine learning engine 210 that are obtainable to a user.
- the master statistics database is updated regularly such as at the end of every play or every few plays. For instance, in some embodiments only a portion of the statistics known to the machine learning engine 210 is desired to be obtainable by a user, and thus is stored in the master statistics database 270.
- the master statistics database 270 is subsumed by the machine learning engine 270. Elements in dashed boxes are optional combined as a single system or device.
- FIG. 8 is a block diagram illustrating an embodiment of a tracking device.
- the tracking device hereinafter also a“tracker,” includes one or more processing units (CPUs) 374, a memory 302 (e.g., a random access memory), one or more magnetic disk storage and/or persistent device 390 optionally accessed by one or more controllers 388, a network or other communications interface (which may include RF circuitry) 384, an accelerometer 317, one or more optional intensity sensors 364, an optional input/output (I/O) subsystem 366, one or more communication busses 313 for interconnecting the aforementioned components, and a power supply 376 for powering the aforementioned components.
- CPUs processing units
- memory 302 e.g., a random access memory
- magnetic disk storage and/or persistent device 390 optionally accessed by one or more controllers 388
- a network or other communications interface which may include RF circuitry
- data in memory 302 is seamlessly shared with non-volatile memory 390 using known computing techniques such as caching.
- memory 302 and/or memory 390 may in fact be hosted on computers that are external to the tracking device 300 but that can be electronically accessed by the tracking device 300 over an Internet, intranet, or other form of network or electronic cable (illustrated as element 106 in FIG. 7) using network interface 384.
- the tracking device 300 illustrated in FIG. 8 includes, in addition to accelerometer(s) 317, a magnetometer and/or a GPS (or GLONASS or other global navigation system) receiver for obtaining information concerning a location and/or an orientation (e.g., portrait or landscape) of the tracking device 300.
- a GPS or GLONASS or other global navigation system
- the tracking device 300 illustrated in FIG. 8 is only one example of a device that may be used for obtaining telemetry data (e.g., positional telemetry 232, kinetic telemetry 234, and biometric telemetry 236) of a corresponding subject, and that the tracking device 300 optionally has more or fewer components than shown, optionally combines two or more components, or optionally has a different configuration or arrangement of the components.
- the various components shown in FIG. 8 are implemented in hardware, software, firmware, or a combination thereof, including one or more signal processing and/or application specific integrated circuits.
- Memory 302 of the tracking device 300 illustrated in FIG. 8 optionally includes high-speed random access memory and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to memory 302 by other components of the tracking device 300, such as CPU(s) 374 is, optionally, controlled by the memory controller 388.
- the CPU(s) 374 and memory controller 388 are, optionally, implemented on a single chip. In some other embodiments, the CPU(s) 374 and memory controller 388 are implemented on separate chips.
- Radio frequency (RF) circuitry of network interface 384 receives and sends RF signals, also called electromagnetic signals.
- the RF circuitry 384 converts electrical signals to from electromagnetic signals and communicates with communication networks and other communications devices, such as the one or more anchor devices 120 and/or the tracking device management system 400, via the electromagnetic signals.
- the RF circuitry 384 optionally includes well-known circuitry for performing these functions, including but not limited to an antenna system, a RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, and so forth.
- the RF circuitry 384 optionally communicates with the communication network 106.
- the network interface (including RF circuitry) 384 operates via ultra-wide band (UWB) technology, which allows for the tracking device 300 to communicate with an array of anchor devices 120 in a crowded spatial region, such as a live sporting event.
- the tracking device 300 transmits a low power (e.g., approximately 1 milliwatt (mW)) signal at a predetermined center frequency (e.g., 6.55 GFIz ⁇ 200 mHz, yielding a total frequency range of transmission of approximately about 6.35 GFIz to about 6.75 GFIz).
- a low power e.g., approximately 1 milliwatt (mW)
- a predetermined center frequency e.g., 6.55 GFIz ⁇ 200 mHz
- the power supply 358 optionally includes a power management system, one or more power sources (e.g., a battery, a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light- emitting diode (LED)) and any other components associated with the generation, management and distribution of power in such tracking devices 300.
- the telemetry data 230 includes information related to the power supply 358 of the respective tracking device 300, such as a battery consumption or an expected period of time until the tracking device requires more power.
- the memory 302 of the tracking device 300 for tracking a respective subject stores:
- an operating system 304 e.g., ANDROID, iOS, DARWIN, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks
- an operating system 304 includes various software components and or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components;
- a tracking device identifier module 305 that stores data used to identify the respective tracking device 300 including a tracking device identifier 306 and an optional tracking device group identifier 307; and • a tracking device ping module 308 that stores data and information related to a ping rate of the respective tracking device, the tracking device ping module 308 including: o an instantaneous ping rate 310 that describes a current ping rate a respective tracking device 300 is currently operating at,
- a minimum ping rate 312 that describes a minimum ping rate a respective tracking device 300 may operate at
- a threshold ping rate 316 that describes a minimum ping rate a respective tracking device 300 may operate at
- the tracking device identifier module 305 stores information that relates to identifying the respective tracking device 300 from a plurality of tracking devices (e.g., tracking device 1 300-1, tracking device 2 300-3, ..., tracking device P 300-P).
- the information stored by the tracking device identifier module 305 includes a tracking device identifier (ID) 306 that includes a unique ID (e.g., a serial number or a code) representing the respective tracking device 300.
- the tracking device ID module 305 includes a tracking device group ID 307 that designates the respective tracking device 300 to one or more groups of tracking devices (e.g., tracking device group 418-2 ofFIG. 9).
- pings communicated by the respective tracking device 300 includes data of the tracking device ID module 305, allowing for an array of anchor devices 120 to identify pings received from more than one tracking device. Additional details and information regarding the grouping of a tracking device 300 will be describe in more detail infra, with particular reference to at least FIG. 9.
- the tracking device ping module 308 stores data and information related to various ping parameters and conditions of respective tracking device 300, as well as facilitating management of the ping. For instance, in some embodiments the tracking device ping module 308 manages an instantaneous ping rate 310 of the respective tracking device 300 (e.g., managing an instantaneous ping rate 310 to be 10 Hertz (HZ)). In some embodiments, the tracking device 300 is configured with one or more ping rate limits, including one or more both of a minimum ping rate 312 and a maximum ping rate 314, that define a maximum and a minimum ping rate that the tracking device 300 may transmit pings.
- HZ Hertz
- the minimum ping rate 312 and/or the maximum ping rate 314 may be set by the tracking device management system 400 based upon one or more of bandwidth limitations, a number of active tracking devices 300, and a type of expected activity (e.g., a sport and/or event types, an expected subject activity, etc.).
- the tracking device ping module 308 operates to adjust the instantaneous ping rate 310 between the minimum ping rate 312 and the maximum ping rate 314.
- automatic optimization of tracking management system 400 may be used in combination with automatic ping rate adjustment of tracking device 300.
- tracking device ping module 308 is configured to compare detected motion from accelerometer 317 to a predefined threshold 316.
- the ping module 308 increases the instantaneous ping rate 310 in accordance with a determination that the detected motion is greater than predefined threshold 316 (e.g., until the instantaneous ping rate 310 reaches the maximum ping rate 314). Likewise, the ping module 308 decreases the instantaneous ping rate 310 (e.g., until the instantaneous ping rate 310 reaches the minimum ping rate 312) in accordance with a determination that the detected motion is less than the threshold ping rate 316.
- the ping module 310 includes a variable ping rate flag 318, which is configured (e.g., set wirelessly) by the tracking device management system 400, that determines whether ping module 308 automatically, or not, changes the instantons ping rate 310 based upon determined activity.
- the tracking device management system 400 may set variable ping rate flag 318 to“false” for one or more tracking devices 300 that is associated with a player not currently participating on the field of play, wherein instantaneous ping rate 310 remains at a low rate even if the player is actively warming up for example.
- Tracking device management system 400 sets variable ping rate flag 318 to“true” for one or more players that is actively participating on the field of play.
- each tracking device 300 is dynamically configured based upon a location of the respective tracking device. For instance, in accordance with a determination that a tracking device 300 is within a field of play (e.g., if a player is actively participating in a game) as opposed to a determination that the tracking device is off the field of play (e.g., if a player is not actively participating in a game).
- tracking device 300 increases reliability of the system 600 (e.g., the array of anchors 120, the telemetry parsing system 240, the tracking device management system 400, etc.) to track subjects disposed with the tracking device.
- system 600 e.g., the array of anchors 120, the telemetry parsing system 240, the tracking device management system 400, etc.
- each tracking device 300 provides telemetry data 230 that is received and communicated by various anchors 120 that are proximate to the respective tracking device 300.
- This telemetry data includes positional telemetry data 232 (e.g., X, Y, and/or Z coordinates), kinetic telemetry data 234 (e.g., velocity, acceleration, and/or jerk), and/or biometric telemetry data 236 (e.g., heart rate, physical attributes of a player such as shoulder width, etc.).
- positional telemetry data 232 e.g., X, Y, and/or Z coordinates
- kinetic telemetry data 234 e.g., velocity, acceleration, and/or jerk
- biometric telemetry data 236 e.g., heart rate, physical attributes of a player such as shoulder width, etc.
- each subject in the game is equipped with more than one tracking device 300 in order to increase the accuracy of the data received from the tracking devices about the subject.
- the left shoulder and the right shoulder of a respective subject are both equipped with a tracking device 300, each such tracking device functioning normally and having line of site to at least a subset of the anchors 120.
- the data from the left and right tracking devices 300 have their telemetry data 230 combined to form a single time-stamped object.
- This single object combines positional data from both tracking devices 300 to create a center line representation of a position of the respective player.
- this center line calculated position provides a more accurate representation of the center of a player's position on the playing field.
- a direction e.g., a rotation
- including rotational data greatly eases the task of creating avatars from data created by recording telemetry data 230 during a game and/or establishing sophisticated covariates that can be used to better predict future events in the game or the final outcome of the game itself.
- the tracking device 300 has any or all of the circuitry, hardware components, and software components found in the device depicted in FIG. 8. In the interest of brevity and clarity, only a few of the possible components of the tracking device 300 are shown to better emphasize the additional software modules that are installed on the tracking device 300.
- FIG. 9 is a block diagram illustrating an embodiment of a tracking device management system.
- Tracking device management system 400 is associated with one or more tracking devices 300 and anchors 120.
- the tracking device management system 400 includes one or more processing units (CPUs) 474, a peripherals interface 470, a memory controller 488, a network or other communications interface 484, a memory 402 (e.g., random access memory), a user interface 478, the user interface 478 including a display 482 and an input 480 (e.g., a keyboard, a keypad, a touch screen, etc.), an input/output (I/O) subsystem 466, one or more communication busses 413 for interconnecting the aforementioned components, and a power supply system 476 for powering the aforementioned components.
- CPUs processing units
- peripherals interface 470 e.g., a peripherals interface 470
- a memory controller 488 e.g., a network or other communications interface 484, a memory 402 (
- the input 480 is a touch-sensitive display, such as a touch- sensitive surface.
- the user interface 478 includes one or more soft keyboard embodiments.
- the soft keyboard embodiments may include standard (QWERTY) and/or nonstandard configurations of symbols on the displayed icons.
- tracking device management system 400 is only one example of a system that may be used in engaging with various tracking devices 300, and that tracking device management system 400 optionally has more or fewer components than shown, optionally combines two or more components, or optionally has a different configuration or arrangement of the components.
- the various components shown in FIG. 9 are implemented in hardware, software, firmware, or a combination thereof, including one or more signal processing and/or application specific integrated circuits.
- Memory 402 optionally includes high-speed random access memory and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to memory 402 by other components of the management system 400, such as CPU(s) 474 is, optionally, controlled by memory controller 488.
- Peripherals interface 470 can be used to couple input and output peripherals of the management system to CPU(s) 474 and memory 402.
- the one or more processors 474 run or execute various software programs and/or sets of instructions stored in memory 402 to perform various functions for the management system 400 and to process data.
- peripherals interface 470, CPU(s) 474, and memory controller 488 are, optionally, implemented on a single chip. In some other embodiments, they are, optionally, implemented on separate chips.
- power system 476 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light- emitting diode (LED), etc.) and any other components associated with the generation, management and distribution of power in portable devices.
- a power management system one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light- emitting diode (LED), etc.) and any other components associated with the generation, management and distribution of power in portable devices.
- power sources e.g., battery, alternating current (AC)
- AC alternating current
- a recharging system e.g., a recharging system
- a power failure detection circuit e.g
- memory 402 of the tracking device management system preferably stores:
- an operating system 404 e.g., ANDROID, iOS, DARWIN, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks
- an operating system 404 includes various software components and or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components; and
- a tracking device identifier store 408 for storing pertinent information related to each respective tracking device 410-1 including a tracking device identifier 306 and a tracking device ping rate 414, and
- a tracking device grouping store 416 for facilitating management of or more tracking device groups 307.
- the tracking device identifier store 408 includes information related to each respective tracking device 410-1, including the tracking device identifier (ID) 306 for each respective tracking device 300 as well as a tracking device group 307 to which the respective tracking device is associated. For instance, in some embodiments a first tracking device group 307- 1 is associated with the left shoulder of each respective subject and a second tracking device group 307-2 is associated with a right shoulder of each respective subject. Moreover, in some embodiments a third tracking device group 307-3 is associated with a first position (e.g., receiver, defensive end, safety, etc.) of each respective subject and a fourth tracking device group 307-4 is associated with a second position.
- ID tracking device identifier
- Grouping 307 of the tracking devices 300 allows for a particular group to be designated with a particular ping rate (e.g., a faster ping rate for running backs). Grouping 307 of the tracking devices 300 also allows for a particular group to be isolated from other tracking devices that are not associated with the respective group, which is useful in viewing representations of the telemetry data 230 provided by the tracking devices of the group. Additional information related to tracking devices and tracking device management systems is found in United States Patent No. 9,950,238, entitled“Object Tracking System Optimization and Tools.”
- FIG. 10 is a block diagram illustrating an embodiment of a statistics system.
- the Statistics system 500 stores and determines various statistics in accordance with the present disclosure.
- the statistics system 500 includes one or more processing units (CPUs) 574, peripherals interface 570, memory controller 588, a network or other communications interface 584, a memory 502 (e.g., random access memory), a user interface 578, the user interface 578 including a display 582 and an input 580 (e.g., a keyboard, a keypad, a touch screen, etc.), input/output (I/O) subsystem 566, one or more communication busses 513 for interconnecting the aforementioned components, and a power supply system 576 for powering the aforementioned components.
- CPUs processing units
- peripherals interface 570 e.g., peripherals interface 570
- memory controller 588 e.g., a network or other communications interface 584
- a memory 502 e.g., random access memory
- a user interface 578 e.g., the user interface 578 including a display 5
- the input 580 is a touch-sensitive display, such as a touch- sensitive surface.
- the user interface 578 includes one or more soft keyboard embodiments.
- the soft keyboard embodiments may include standard (e.g., QWERTY) and/or nonstandard configurations of symbols on the displayed icons.
- statistics system 500 is only one example of a system that may be used in staring and determining various statistics, and that statistics system 500 optionally has more or fewer components than shown, optionally combines two or more components, or optionally has a different configuration or arrangement of the components.
- the various components shown in FIG. 10 are implemented in hardware, software, firmware, or a combination thereof, including one or more signal processing and/or application specific integrated circuits.
- Memory 502 optionally includes high-speed random access memory and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to memory 502 by other components of the statistics system 500, such as CPU(s) 574 is, optionally, controlled by memory controller 588.
- Peripherals interface 570 can be used to couple input and output peripherals of the management system to CPU(s) 574 and memory 502.
- the one or more processors 574 run or execute various software programs and/or sets of instructions stored in memory 502 to perform various functions for the statistics system 500 and to process data.
- peripherals interface 570, CPU(s) 574, and memory controller 588 are, optionally, implemented on a single chip. In some other embodiments, they are, optionally, implemented on separate chips.
- power system 576 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light- emitting diode (LED), etc.) and any other components associated with the generation, management and distribution of power in portable devices.
- a power management system one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light- emitting diode (LED), etc.) and any other components associated with the generation, management and distribution of power in portable devices.
- power sources e.g., battery, alternating current (AC)
- AC alternating current
- a recharging system e.g., a recharging system
- a power failure detection circuit e.g
- memory 502 of the remote user device preferably stores:
- an operating system 504 e.g. , ANDROID, iOS, DARWIN, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks
- an operating system 504 includes various software components and or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components;
- a historical training data store 214 for storing various statistics related to each sport 508, wherein each sport 508 including various team historical data 510 for one or more teams 512, as well as various player statistics 514 for one or more players 516;
- a situational store 228 for storing data related to formations of players and game situations.
- the positional formation classifier 212 (sometimes simply called a formation classifier) provides information related to various states and formations of players at any given point of time in game. For instance, in some embodiments the formation classifier 212 parses telemetry data 230 in order to determine pre-snap formations. Accordingly, once a formation is determined and telemetry data 230 is parsed, sub-categories of the formation may be determined (e.g., an I- formation with different sub-categories defining different running backs).
- the formation classifier 212 acts as a virtual referee and determines if infractions have occurred within a game or play, such as a player being off-sides, a neutral zone infraction, an illegal motion, an illegal formation, and the like.
- the formation classifier 212 includes one or more tables of various formations in a football game, such as a first table of offensive formations, a second table of defensive formations, and a third table of special teams formations.
- the above table of formations provides some or all of the formations described by Table 2, Table 3, and Table 4.
- the formation classifier 212 determines a ball carrier by comparing telemetry data 230 provided by the ball and telemetry data of a player that is closest to the ball. Fikewise, in some embodiments determining which team has possession of the ball is conducted in a similar manner. Furthermore, in some embodiments the formation classifier 212 determines if a player is within a boundary of a game by analyses the telemetry data 230 extracted from the player and comparing this with the known boundaries of the field of play. In this way, the formation classifier 212 parses telemetry data 230 to provide a box score and/or automatic color commentary of a game.
- the formation classifier 212 is labeled a“neural net” it will be appreciated that the formation classifier 212 module does not have to perform classification of team formation using a neural network classifier. In some embodiments the formation classifier 212 module does in fact make use of any classification scheme that can discern a team formation from telemetry data. For instance, in some embodiments formation classifier 212 makes use of a nearest neighbor algorithm to perform the classification of team formation. In other embodiments formation classifier 212 makes use of clustering to perform the classification of team formation.
- the elucidation of the formation class by formation classifier 212 is used as a covariate in statistical models that predict the outcome of a current live game (e.g ., win/loss, point spread, etc.) as disclosed with respect to methods and features described with respect to FIGS. 2 and 3.
- a current live game e.g ., win/loss, point spread, etc.
- the formation classifier 212 is based on a logistic regression algorithm, a neural network algorithm, a support vector machine (SVM) algorithm, a Naive Bayes algorithm, a nearest-neighbor algorithm, a boosted trees algorithm, a random forest algorithm, or a decision tree algorithm.
- SVM support vector machine
- the formation classifier 212 is based on a logistic regression algorithm, a neural network algorithm, a support vector machine (SVM) algorithm, a Naive Bayes algorithm, a nearest-neighbor algorithm, a boosted trees algorithm, a random forest algorithm, or a decision tree algorithm.
- SVMs separate a given set of binary labeled data training set with a hyper-plane that is maximally distant from the labeled data. For cases in which no linear separation is possible, SVMs can work in combination with the technique of kernels' , which automatically realizes a non-linear mapping to a feature space.
- the hyper-plane found by the SVM in feature space corresponds to a non-linear decision boundary in the input space.
- Tree-based methods partition the feature space into a set of rectangles, and then fit a model (like a constant) in each one.
- the decision tree is random forest regression.
- One specific algorithm that can serve as the formation classifier 212 for the instant methods is a classification and regression tree (CART).
- CART classification and regression tree
- Other specific decision tree algorithms that can serve as the formation classifier 212 for the instant methods include, but are not limited to, ID3, C4.5, MART, and Random Forests.
- the historical data store 214 stores statistics related to each sport 508, each team 510 within the sport league, as well as the respective players 512.
- the data stored in the historical data store 214 is utilized as a training set of data for machine learning engine 210 and/or formation classifier 212.
- the data stored in the historical data store 214 is utilized as an initial data set at a start of a league, as in inferred from other data sets of similar league (e.g., using college football stats if a player is a professional rookie), or utilized to create data points if a new statistic is being generated (e.g., a previously unknown statistic becomes relevant).
- data from a previously played game is stored within the historical data store 214.
- the situation store 228 includes data stored in one or more databases of the machine learning engine 210 as a cache of information. This cache of the situation store 228 allows for data to be queried for and utilized rapidly, rather than having to query each respective database. In some embodiments, the situation store 288 creates a new cache of data for each respective game. However, the present disclosure is not limited thereto.
- FIG. 11 is a block diagram illustrating an embodiment of an odds management system. Odds management system 600 stores and determines various odds in accordance with the present disclosure.
- the odds management system 600 includes one or more processing units (CPUs) 674, peripherals interface 670, memory controller 688, a network or other communications interface 684, a memory 602 (e.g., random access memory), a user interface 678, the user interface 678 including a display 682 and an input 680 (e.g., a keyboard, a keypad, a touch screen, etc.), input/output (I/O) subsystem 666, one or more communication busses 613 for interconnecting the aforementioned components, and a power supply system 676 for powering the aforementioned components.
- CPUs processing units
- peripherals interface 670 peripherals interface 670
- memory controller 688 e.g., a network or other communications interface 684
- a memory 602 e.g., random access memory
- a user interface 678 the
- the input 680 is a touch-sensitive display, such as a touch- sensitive surface.
- the user interface 778 includes one or more soft keyboard embodiments.
- the soft keyboard embodiments may include standard (QWERTY) and/or nonstandard configurations of symbols on the displayed icons.
- odds management system 600 is only one example of a system that may be used in staring and determining various statistics, and that the odds management system 600 optionally has more or fewer components than shown, optionally combines two or more components, or optionally has a different configuration or arrangement of the components.
- the various components shown in FIG. 11 are implemented in hardware, software, firmware, or a combination thereof, including one or more signal processing and/or application specific integrated circuits.
- Memory 602 optionally includes high-speed random access memory and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to memory 602 by other components of the odds management system 600, such as CPU(s) 674 is, optionally, controlled by memory controller 688. [0137] Peripherals interface 670 can be used to couple input and output peripherals of the management system to CPU(s) 674 and memory 602. The one or more processors 674 run or execute various software programs and/or sets of instructions stored in memory 602 to perform various functions for the odds management system 600 and to process data.
- peripherals interface 670, CPU(s) 674, and memory controller 688 are, optionally, implemented on a single chip. In some other embodiments, they are, optionally, implemented on separate chips.
- power system 676 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light- emitting diode (LED), etc.) and any other components associated with the generation, management and distribution of power in portable devices.
- a power management system one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light- emitting diode (LED), etc.) and any other components associated with the generation, management and distribution of power in portable devices.
- power sources e.g., battery, alternating current (AC)
- AC alternating current
- a recharging system e.g., a recharging system
- a power failure detection circuit e.g
- memory 602 of the remote user device preferably stores:
- an operating system 604 e.g., ANDROID, iOS, DARWIN, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks
- an operating system 604 includes various software components and or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components;
- an expected points model module 222 for determining an expected points value of a scenario in a game
- the modelling engine 200 includes various algorithms and models utilized for generating statistics and predicting outcomes at a sports event. In some embodiments, these models include the expected points model 222 that provides a numerical value for each play of a game.
- the 5-yard rush is allocated an expected points value of 0.5
- the 94-yard pass is allocated an expected points value of 5.5
- the 1-yard rush is allocated an expected points value of 1 , with high values indicating more important or game defining plays.
- modelling engine 200 uses the telemetry data collected in accordance with the present disclosure to predict the outcome of a game (e.g., win/loss, point spread, etc.) as disclosed with respect to methods and features described with respect to FIGS. 2 and 3.
- a game e.g., win/loss, point spread, etc.
- the real time game situation module 614 receives information related to situations occurring in a game. This information is then utilized in adjusting various weights and values in the above described models. For instance, if a quarterback rolls his ankle and has to take every play from a shotgun position, this immobility of the quarterback will be reflected in the game models 220 through the real time game situation module 614.
- FIG. 12 is a block diagram illustrating an embodiment of a user device.
- User device is a remote user device 700 associated with an end user in accordance with the present disclosure.
- the user device 700 includes one or more processing units (CPUs) 774, peripherals interface 770, memory controller 788, a network or other communications interface 784, a memory 702 (e.g., random access memory), a user interface 778, the user interface 778 including a display 782 and an input 780 (e.g., a keyboard, a keypad, a touch screen, etc.), input/output (I/O) subsystem 766, an optional accelerometer 717, an optional GPS 719, optional audio circuitry 772, an optional speaker 760, an optional microphone 762, one or more optional sensors 764 such as for detecting intensity of contacts on the user device 700 (e.g., a touch-sensitive surface such as a touch-sensitive display system of the device 700) and/or an optical sensor, one or more communication busses 713 for interconnect
- the input 780 is a touch-sensitive display, such as a touch- sensitive surface.
- the user interface 778 includes one or more soft keyboard embodiments.
- the soft keyboard embodiments may include standard (QWERTY) and/or nonstandard configurations of symbols on the displayed icons.
- the user device 700 is only one example of a device of a multifunction device that may be used by end users, and that the user device 700 optionally has more or fewer components than shown, optionally combines two or more components, or optionally has a different configuration or arrangement of the components.
- the various components shown in FIG. 12 are implemented in hardware, software, firmware, or a combination thereof, including one or more signal processing and/or application specific integrated circuits.
- Memory 702 optionally includes high-speed random access memory and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to memory 702 by other components of the user device 700, such as CPU(s) 774 is, optionally, controlled by memory controller 788.
- Peripherals interface 770 can be used to couple input and output peripherals of the management system to CPU(s) 774 and memory 702.
- the one or more processors 774 run or execute various software programs and/or sets of instructions stored in memory 702 to perform various functions for the user device 700 and to process data.
- peripherals interface 770, CPU(s) 774, and memory controller 788 are, optionally, implemented on a single chip. In some other embodiments, they are, optionally, implemented on separate chips.
- audio circuitry 772, speaker 760, and microphone 762 provide an audio interface between a user and the device 700.
- the audio circuitry 772 receives audio data from peripherals interface 770, converts the audio data to an electrical signal, and transmits the electrical signal to speaker 760.
- Speaker 760 converts the electrical signal to human- audible sound waves.
- Audio circuitry 772 also receives electrical signals converted by microphone 762 from sound waves.
- Audio circuitry 772 converts the electrical signal to audio data and transmits the audio data to peripherals interface 770 for processing. Audio data is, optionally, retrieved from and/or transmitted to memory 702 and/or RF circuitry 784 by peripherals interface 770.
- power system 776 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light- emitting diode (LED), etc.) and any other components associated with the generation, management and distribution of power in portable devices.
- power management system one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light- emitting diode (LED), etc.) and any other components associated with the generation, management and distribution of power in portable devices.
- power sources e.g., battery, alternating current (AC)
- AC alternating current
- recharging system e.g., a recharging system
- a power failure detection circuit e.g.,
- an operating system 704 e.g., ANDROID, iOS, DARWIN, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks
- an operating system 704 includes various software components and or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components;
- a user information store 708 that stores pertaining information related to the respective user associated with the corresponding user device 700, such as user access information including usernames, user passwords, access tokens, etc.;
- a game feed module 710 for viewing various representations of a game including a whiteboard feed module 712, an avatar feed module 714, and a video feed module 716 as well as viewing various statistics related to the game;
- a wager module 718 that facilitates placing wagers on game scenarios.
- wager module 718 uses the telemetry data collected in accordance with the present disclosure to predict the outcome of a current game using extended covariants (e.g., win/loss, point spread, etc.), as disclosed with respect to methods and features described with respect to FIGS. 2 and 3.
- wager module 718 uses the telemetry data collected in accordance with the present disclosure to provide odds for future game events in a current live game.
- FIG. 13 shows an example environment including a field of play that includes components of a tracking system according to an embodiment of the present disclosure.
- This tracking system can be included in content creators 140 to track and/or capture video of an event.
- An exemplary environment e.g., stadium 906) 900.
- the environment 900 includes a field of play 902 in which a game is played (e.g., a football game).
- the environment 900 includes a region 904 that includes the field of play 902 and an area immediately surrounding the field of play (e.g., an area that includes subjects not participating in the game such as subject 930-1 and subject 940-1).
- the environment 900 includes an array of anchor devices 120 (e.g., anchor device 1201-1, anchor device 120-2, ..., anchor device 120-Q) that receive telemetry data from one or more tracking devices 300 associated with a respective subject of the game.
- the array of anchor devices is in communication (e.g., via communication network 106) with a telemetry parsing system 240 (e.g., tracker management system 400 of FIG. 9).
- a telemetry parsing system 240 e.g., tracker management system 400 of FIG. 9.
- one or more cameras 140 e.g., camera 140-1 capture images and/or video of the sports event, which is used in forming the virtual reproduction.
- markers 930 represent subjects a first team of the game while markers 940 represents subjects of a second team of the game.
- FIG. 14 is a functional diagram illustrating a programmed computer system for customizing and compositing a video feed in accordance with some embodiments.
- Computer system 1400 which includes various subsystems as described below, includes at least one microprocessor subsystem (also referred to as a processor or a central processing unit (CPU) 1402).
- processor 1402 can be implemented by a single-chip processor or by multiple processors.
- processor 1402 is a general purpose digital processor that controls the operation of the computer system 1400.
- processor 1402 also includes one or more coprocessors or special purpose processors (e.g., a graphics processor, a network processor, etc.). Using instructions retrieved from memory 1410, processor 1402 controls the reception and manipulation of input data received on an input device (e.g., image processing device 1406, I/O device interface 1404), and the output and display of data on output devices (e.g., display 1418).
- processor 1402 controls the reception and manipulation of input data received on an input device (e.g., image processing device 1406, I/O device interface 1404), and the output and display of data on output devices (e.g., display 1418).
- Processor 1402 is coupled bi-directionally with memory 1410, which can include, for example, one or more random access memories (RAM) and/or one or more read-only memories (ROM).
- memory 1410 can be used as a general storage area, a temporary (e.g., scratch pad) memory, and/or a cache memory.
- Memory 1410 can also be used to store input data and processed data, as well as to store programming instructions and data, in the form of data objects and text objects, in addition to other data and instructions for processes operating on processor 1402.
- memory 1410 typically includes basic operating instructions, program code, data, and objects used by the processor 1402 to perform its functions (e.g., programmed instructions).
- memory 1410 can include any suitable computer readable storage media described below, depending on whether, for example, data access needs to be bi-directional or uni-directional.
- processor 1402 can also directly and very rapidly retrieve and store frequently needed data in a cache memory included in memory 1410.
- a removable mass storage device 1412 provides additional data storage capacity for the computer system 1400, and is optionally coupled either bi-directionally (read/write) or uni- directionally (read only) to processor 1402.
- a fixed mass storage 1420 can also, for example, provide additional data storage capacity.
- storage devices 1412 and/or 1420 can include computer readable media such as magnetic tape, flash memory, PC-CARDS, portable mass storage devices such as hard drives (e.g., magnetic, optical, or solid state drives), holographic storage devices, and other storage devices.
- Mass storages 1412 and/or 1420 generally store additional programming instructions, data, and the like that typically are not in active use by the processor 1402. It will be appreciated that the information retained within mass storages 1412 and 1420 can be incorporated, if needed, in standard fashion as part of memory 1410 (e.g., RAM) as virtual memory.
- bus 1414 can be used to provide access to other subsystems and devices as well. As shown, these can include a display 1418, a network interface 1416, an input/output (I/O) device interface 1404, an image processing device 1406, as well as other subsystems and devices.
- I/O input/output
- image processing device 1406 can include a camera, a scanner, etc.
- I/O device interface 1404 can include a device interface for interacting with a touchscreen (e.g., a capacitive touch sensitive screen that supports gesture interpretation), a microphone, a sound card, a speaker, a keyboard, a pointing device (e.g., a mouse, a stylus, a human finger), a Global Positioning System (GPS) receiver, an accelerometer, and/or any other appropriate device interface for interacting with system 1400.
- a touchscreen e.g., a capacitive touch sensitive screen that supports gesture interpretation
- a microphone e.g., a microphone
- sound card e.g., a sound card
- speaker e.g., a speaker
- keyboard e.g., a keyboard
- a pointing device e.g., a mouse, a stylus, a human finger
- GPS Global Positioning System
- the I/O device interface can include general and customized interfaces that allow the processor 1402 to send and, more typically, receive data from other devices such as keyboards, pointing devices, microphones, touchscreens, transducer card readers, tape readers, voice or handwriting recognizers, biometrics readers, cameras, portable mass storage devices, and other computers.
- other devices such as keyboards, pointing devices, microphones, touchscreens, transducer card readers, tape readers, voice or handwriting recognizers, biometrics readers, cameras, portable mass storage devices, and other computers.
- the network interface 1416 allows processor 1402 to be coupled to another computer, computer network, or telecommunications network using a network connection as shown.
- the processor 1402 can receive information (e.g., data objects or program instructions) from another network, or output information to another network in the course of performing method/process steps.
- Information often represented as a sequence of instructions to be executed on a processor, can be received from and outputted to another network.
- An interface card or similar device and appropriate software implemented by (e.g., executed/performed on) processor 1402 can be used to connect the computer system 1400 to an external network and transfer data according to standard protocols.
- various process embodiments disclosed herein can be executed on processor 1402, or can be performed across a network such as the Internet, intranet networks, or local area networks, in conjunction with a remote processor that shares a portion of the processing.
- Additional mass storage devices can also be connected to processor 1402 through network interface 1416.
- various embodiments disclosed herein further relate to computer storage products with a computer readable medium that includes program code for performing various computer-implemented operations.
- the computer readable medium includes any data storage device that can store data which can thereafter be read by a computer system.
- Examples of computer readable media include, but are not limited to: magnetic media such as disks and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as optical disks; and specially configured hardware devices such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), and ROM and RAM devices.
- Examples of program code include both machine code as produced, for example, by a compiler, or files containing higher level code (e.g., script) that can be executed using an interpreter.
- the computer system shown in FIG. 14 is but an example of a computer system suitable for use with the various embodiments disclosed herein.
- Other computer systems suitable for such use can include additional or fewer subsystems.
- subsystems can share components (e.g., for touchscreen-based devices such as smart phones, tablets, etc., I/O device interface 1404 and display 1418 share the touch sensitive screen component, which both detects user inputs and displays outputs to the user).
- bus 1414 is illustrative of any interconnection scheme serving to link the subsystems.
- Other computer architectures having different configurations of subsystems can also be utilized.
- FIG. 15 is a flow chart illustrating an embodiment of a process for customizing and compositing a video feed for live sports. Each of the steps are like those described in FIG. 2 unless otherwise described.
- the process receives a video feed of a live event.
- the live event involves a game between two players or two teams.
- the process receive a background video feed from a remote server.
- the video feed of the live event can play in the background of a user interface displayed on a client device and is thus called a background video feed.
- the process determines a first time stamp of a first frame of the background video feed from time-stamped metadata associated with the first frame.
- Each frame of the video feed is associated with time-stamped metadata that corresponds to a point in time (e.g., a reference point in time, a local point in time, etc.).
- each portion (e.g., graphical/text portion, audio portion) of the video feed is associated with time-stamped metadata.
- Associating the video feed with time-stamped metadata allows for matching (e.g., synchronization of) data elements from one or more data sources (e.g., game state data elements, game clock data elements, historical data elements, etc.) to be composited (e.g., overlaid) with the video feed and played back in chronological order.
- data sources e.g., game state data elements, game clock data elements, historical data elements, etc.
- each data element is stored with the timestamped metadata such that during a transmission of a video feed, the data elements can be composited with the video feed as it occurred during the event (including live events).
- a query is communicated (e.g., sent) to a computer system (e.g., communicated through an API server for a request for data elements stored by the system shown in FIG. 1).
- the query includes (e.g., specifies) a time range limitation.
- the query is for one or more data elements stored by the computer system that are within the time range.
- the time range is based on the determined time stamp of the respective frame.
- the time range is from the time of the determined time stamp to a future point in time (e.g., from the time of the determined time stamp to 10 seconds in the future, 20 seconds in the future, 30 seconds in the future, ... , 60 seconds in the future, etc.).
- the time range is a dynamic time range.
- the dynamic time range is dependent upon a bandwidth of a respective user device and/or a bandwidth of the video feed module 716 (e.g., a size and/or bandwidth of the visualization buffer module 720). If a determination is made that the bandwidth of the respective user device 700 and/or the video feed module 716 is relatively low, the dynamic time range is shorted such that the query receives less data in response so as to not overload the user device and/or video feed module.
- the process queries a remote system for data elements within a time range determined by the first time stamp.
- the plurality of data elements includes a plurality of game clock data elements (e.g., an array of game clock elements and associated metadata).
- the plurality of data elements includes a plurality of game state data elements (e.g., an array of game state elements and associated metadata).
- the plurality of data elements includes a plurality of positional information data elements (e.g., an array of positional information for one or more subjects and associated metadata).
- the plurality of data elements includes a plurality of graphical data elements (e.g., a plurality of embedded graphics, a plurality of text data elements such as news and/or weather, and associated metadata).
- the plurality of data elements includes a plurality of text data elements (e.g., new articles, weather information, etc.).
- respective game state data element is a score of the sporting event at the matching time stamp value.
- the plurality of data elements includes a combination of the above described data elements.
- the method further includes using the bandwidth of the client device (e.g., user device 700) to dimension a size of the visualization buffer (e.g., visualization buffer module 720).
- the using the bandwidth of the client device to dimension a size of the visualization buffer increases the size of the visualization buffer responsive to a determination in a degradation in the bandwidth.
- the using the bandwidth of the client device to dimension a size of the visualization buffer reduces the size of the visualization buffer responsive to a determination of an improvement in the bandwidth. This dimensioning of a size of the visualization buffer allows for a number of time matched frames to be dynamically posted to the visualization buffer. For instance, in some embodiments decreasing a number of time matched frames posted to the visualization buffer decreases a load on the client device.
- the method includes receiving a plurality of data elements from the remote computer system that is responsive to the communicated query.
- the plurality of data elements received from the computer system includes the plurality of data elements requested by the query.
- the present disclosure is not limited thereto. For instance, in some embodiments a first plurality of data elements is requested by the query and, accordingly, a second plurality of data elements is received from the computer system (e.g., only a subset of data elements of the first plurality of data elements is available).
- each data element that is received in response to the query includes associated time-stamped metadata that falls (e.g., is included) within the specific time range (e.g., the time range is from 1 :04 PM to 1 :06 PM on a specific day, and, accordingly, the data elements received as a result of the query include metadata that is associated with a time in between 1 :04 PM and 1 :06 PM of the specific day).
- the plurality of data elements is received from one or more data stores of the system (e.g., historical data store 214, situation store 228, etc.). In some embodiments, the plurality of data elements is stored locally on the user device.
- the plurality of data elements includes one or more data elements that are stored locally on the user device and one or more data elements that are stored on the computer system (e.g., historical data store 214, situation store 228, etc.).
- the process matches individual frames of the video feed based on a concordance of time stamps respectively associated with a data element and a frame to obtain time matched frames.
- Individual data elements in the plurality of data elements that were received as a result of the query e.g., communicated through API server 260
- each of the array of game clock data elements and the array of game state data elements are received by the user device from the computer system.
- time stamped metadata associated with each of these arrays of data elements corresponding game clock data elements, and game state data elements are matched with a respective frame of the video feed that has the same time stamp. This matching obtains a plurality of time matched frames. For instance, a frame of the video feed is determined to have a time stamp of 00:00:06.
- the corresponding game clock data element and the corresponding game state data element that have an associated timestamped metadata of 00:00:06 are matched with the frame to obtain a time matched frame.
- Each respective time matched frame in the plurality of time matched frames is overlaid with one or more data elements in the plurality of data elements that time matches the respective time matched frame.
- overlaying of the one or more data elements includes compositing an embedded graphic on the video feed (e.g., an embedded scrolling ticker, an embedded score board, an embedded weather status, etc.)
- the overlaying includes associating the respective data element with an affordance region, which will be described in more detail infra.
- the matching of individual data elements in the plurality of data elements with individual frames in the plurality of frames based on a concordance of each time stamp associated with a respective frame in the plurality of frames and each time stamp associated with a respective data element in the plurality of data elements includes identifying a respective game clock data element in the plurality of game clock data elements that has a matching time stamp value as the respective frame.
- the respective game clock data element e.g., data element 1304-4 of FIG. 17
- the matching of individual data elements in the plurality of data elements with individual frames in the plurality of frames based on a concordance of each time stamp associated with a respective frame in the plurality of frames and each time stamp associated with a respective data element in the plurality of data elements includes identifying a respective game state data element in the plurality of game state data elements that has a matching time stamp value as the respective frame.
- the respective game state data element e.g., data elements 1304-1, 1304-2, 1304-3, 1304-5, etc.
- the plurality of data elements includes a plurality of positional information data elements (e.g., telemetry data 230).
- Each positional information data element in the plurality of positional information data elements is time stamped positional information of one or more players in the first plurality of players or in the second plurality of players.
- the time stamped position information captured by a telemetry tracking system (e.g., tracker management system 400) at the live event.
- the matching of individual data elements in the plurality of data elements with individual frames in the plurality of frames based on a concordance of each time stamp associated with a respective frame in the plurality of frames and each time stamp associated with a respective data element in the plurality of data elements includes identifying a respective positional information data element in the plurality of positional information data elements that has a matching time stamp value as the respective frame.
- the respective positional information data element is overlaid on the respective frame thereby forming a time matched frame in the one or more time matched frames.
- telemetry tracking system (e.g., telemetry management system 400) includes a plurality of tracking devices (e.g., tracking devices 300). Each tracking device is configured to provide a plurality of signals (e.g., telemetry data 230). Each player of the first and second plurality of players is associated with one or more tracking devices in the plurality of tracking devices. Three or more receivers (e.g., anchor devices 120) are configured to receive the signals provided by the plurality of tracking devices.
- tracking devices e.g., tracking devices 300
- Each tracking device is configured to provide a plurality of signals (e.g., telemetry data 230).
- Each player of the first and second plurality of players is associated with one or more tracking devices in the plurality of tracking devices.
- Three or more receivers e.g., anchor devices 120 are configured to receive the signals provided by the plurality of tracking devices.
- a computer system e.g., telemetry management system 400 and/or telemetry parsing system 240 is configured to determine, based on the plurality of signals received by the three or more receivers, time stamped positional and/or kinetic information (e.g., positional telemetry 232, kinetic telemetry 234, biometric telemetry 236) for each player of the first and second plurality of players. This determining constructs the plurality of positional information data elements.
- the overlaying of one or more data elements for a respective time matched frame in the plurality of time matched frames further includes associating the respective time matched frame with a corresponding affordance region within an application running on the client device. For instance, in some embodiments if a data element includes a graphic (e.g., an embedded graphic) an affordance region is associated with the graphic. Each affordance region is configured to enable an end user of the respective user device 700 to interact with the respective data element. For instance, in some embodiments if an end user interacts with (e.g., provides a touch input through input 780 of the respective user device 700) an affordance region associated with a respective data element a decision is made in accordance with the interaction.
- a data element includes a graphic (e.g., an embedded graphic) an affordance region is associated with the graphic.
- an affordance region is configured to enable an end user of the respective user device 700 to interact with the respective data element. For instance, in some embodiments if an end user interacts with (e.g.,
- the decision is to display a menu (e.g., a menu, or selection, of statistics, a menu of a season results of a team, etc.)
- a menu e.g., a menu, or selection, of statistics, a menu of a season results of a team, etc.
- a menu depicting a selection of statistics related to the respective subject is displayed on the user device (e.g., overlaid on the video feed).
- an interaction by an end user with an overlaid data element alters a visibility state of the data element (e.g., visible, or ON, and invisible, or OFF).
- the matching of a respective frame and one or more respective data elements is conducted within a tolerance in a range of from 0.01 seconds to 0.1 seconds.
- the matching is conducted within a tolerance of 0.0167 seconds (e.g., .60 frames per second).
- a respective frame is determined to have a time stamp of ⁇ 00 hours: 02 minutes: 25 seconds: 39 milliseconds ⁇ and a tolerance of the matching is 5 milliseconds, then each data element that includes associated timestamped metadata in time range of from ⁇ 00 hours : 02 minutes : 25 seconds : 26 milliseconds ⁇ to ⁇ 00 hours : 02 minutes : 25 seconds : 46 milliseconds ⁇ is matched with the respective frame.
- each data element that includes associated timestamped metadata in time range of from ⁇ 00 hours: 02 minutes: 25 seconds: 39 milliseconds ⁇ to (00 hours: 02 minutes : 25 seconds : 49 milliseconds ⁇ is matched with the respective frame.
- the time matched frames which includes the overlaid data elements, are posted to a visualization buffer (e.g., visualization buffer module 720).
- the visualization buffer provides a queue (e.g., a priority queue) of frames, data elements, and/or time matches frames for composition to form a composited video feed.
- the visualization buffer holds between one second and one minute of time matched frames, including the one or more time matched frames. In some embodiments, the visualization buffer holds between twenty seconds and five minutes of time matched frames, including the one or more time matched frames.
- the process determines one or more data elements based at least in part on the received content.
- the process generates a composite video feed customized to the one or more user-specific characteristics including by matching at least corresponding portions of the one or more data elements to corresponding portions of the background video feed based at least in part on a concordance of a time stamp of a respective data element and a time stamp of a respective background video fiame.
- the process displays the composite video feed on a display device of the client device, wherein the generated composite video feed includes time-matched frames in which each time-matched frame is overlaid with data elements that time match a respective background video fiame.
- the process receives, via the communications interface, content associated with one or more user-specific characteristics, wherein the content includes time-stamped metadata associated with background video fiames and data with a time stamp falling within a time range determined by the first time stamp.
- content includes time-stamped metadata associated with background video fiames and data with a time stamp falling within a time range determined by the first time stamp.
- Different metadata is available to different users based on user profile and/or previous behavior, examples of which are described above.
- the following figures show examples of a background video and overlay data elements, where the background video is footage fiom a live sports event and the overlay data elements are various stats, player information, and the like with which a user (viewer of the live sports event) can interact.
- FIGS. 16 and 17 show examples of a customized composite video feed for a football game.
- one or more user preference settings indicate a preference for one or more graphical data elements to be overlaid onto a video feed and/or an orientation or preferring camera of a video feed.
- a user preference setting indicates that the user prefers to receive a video feed fiom a first camera 140-1 (e.g., an all landscape camera view of FIG. 16) instead of a second camera 140-2 (e.g., a partial landscape camera view of FIG. 17).
- a user preference setting indicates a preference to display a graphical data element 1210 that identifies various information related to a respective subject.
- a user preference setting indicates a preference to display a graphical data element 1220 that identifies a location of a ball (e.g., positional information of a ball).
- a user preference setting indicates a preference to display a graphical data element 1230 that indicates a current ball carrier.
- a user preference setting indicates a preference to display a graphical data element 1240 that indicates a path of travel of a subject (e.g., a path of travel of a ball during a play).
- a user preference setting indicates a preference to display a graphical data element 1304 that provides game state information such as a game clock data element 1304-4, a play clock data element 1304-5, and/or a game state data element (e.g. elements 1304-1, 1304-2, and/or 1304-3).
- a user preference setting indicates a preference to display a graphical data element 1300-B that provides a wagering platform (e.g., wager module 718).
- a user preference setting indicates a preference to display a data element 1306 that provides text based information (e.g., weather information, news, etc.).
- a user is enabled to personalize and interact with a video feed to tailor the viewing experience to their particular preferences. This also allows for the user device to optimize an amount of data received from the computer system by preventing streams of data a user has indicated no interest in from being communicated unnecessarily.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962819428P | 2019-03-15 | 2019-03-15 | |
US16/747,440 US11140328B2 (en) | 2019-01-22 | 2020-01-20 | Systems and methods for partitioning a video feed to segment live player activity |
PCT/US2020/022767 WO2020160563A1 (en) | 2019-01-22 | 2020-03-13 | Systems and methods for customizing and compositing a video feed at a client device |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3939331A1 true EP3939331A1 (en) | 2022-01-19 |
EP3939331A4 EP3939331A4 (en) | 2022-11-16 |
Family
ID=76321145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP20747886.8A Pending EP3939331A4 (en) | 2019-03-15 | 2020-03-13 | Systems and methods for customizing and compositing a video feed at a client device |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3939331A4 (en) |
JP (1) | JP7343588B2 (en) |
CN (1) | CN113574901B (en) |
CA (1) | CA3120594C (en) |
MX (1) | MX2021006250A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117560538A (en) * | 2024-01-12 | 2024-02-13 | 江西微博科技有限公司 | Service method and device of interactive voice video based on cloud platform |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024059895A1 (en) * | 2022-09-23 | 2024-03-28 | Rodd Martin | Systems and methods of client-side video rendering |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7631327B2 (en) * | 2001-08-08 | 2009-12-08 | Accenture Global Services Gmbh | Enhanced custom content television |
JP2003348424A (en) | 2002-05-27 | 2003-12-05 | Sony Corp | Motion tracking apparatus and method thereof |
JP4252324B2 (en) | 2003-01-28 | 2009-04-08 | 三菱電機株式会社 | Receiver, broadcast transmission device, and auxiliary content server |
US8019271B1 (en) * | 2006-12-29 | 2011-09-13 | Nextel Communications, Inc. | Methods and systems for presenting information on mobile devices |
US9510044B1 (en) * | 2008-06-18 | 2016-11-29 | Gracenote, Inc. | TV content segmentation, categorization and identification and time-aligned applications |
US8477046B2 (en) | 2009-05-05 | 2013-07-02 | Advanced Technologies Group, LLC | Sports telemetry system for collecting performance metrics and data |
US8635255B2 (en) * | 2009-06-30 | 2014-01-21 | Verizon Patent And Licensing Inc. | Methods and systems for automatically customizing an interaction experience of a user with a media content application |
JPWO2011021632A1 (en) | 2009-08-19 | 2013-01-24 | 株式会社インターネットテレビジョン | Information provision system |
US9852769B2 (en) * | 2013-05-20 | 2017-12-26 | Intel Corporation | Elastic cloud video editing and multimedia search |
US9440152B2 (en) * | 2013-05-22 | 2016-09-13 | Clip Engine LLC | Fantasy sports integration with video content |
JP2016005015A (en) | 2014-06-13 | 2016-01-12 | 大日本印刷株式会社 | Content delivery system and content delivery device |
US20160191945A1 (en) | 2014-12-24 | 2016-06-30 | Sony Corporation | Method and system for processing video content |
WO2016199527A1 (en) | 2015-06-11 | 2016-12-15 | ソニー株式会社 | Transmission device, transmission method, reception device, and reception method |
US10003847B2 (en) * | 2016-04-22 | 2018-06-19 | Google Llc | Watch-time clustering for improving video searches, selection and provision |
US9965900B2 (en) * | 2016-09-01 | 2018-05-08 | Avid Technology, Inc. | Personalized video-based augmented reality |
US10827220B2 (en) * | 2017-05-25 | 2020-11-03 | Turner Broadcasting System, Inc. | Client-side playback of personalized media content generated dynamically for event opportunities in programming media content |
-
2020
- 2020-03-13 JP JP2021536784A patent/JP7343588B2/en active Active
- 2020-03-13 MX MX2021006250A patent/MX2021006250A/en unknown
- 2020-03-13 CN CN202080007164.0A patent/CN113574901B/en active Active
- 2020-03-13 EP EP20747886.8A patent/EP3939331A4/en active Pending
- 2020-03-13 CA CA3120594A patent/CA3120594C/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117560538A (en) * | 2024-01-12 | 2024-02-13 | 江西微博科技有限公司 | Service method and device of interactive voice video based on cloud platform |
CN117560538B (en) * | 2024-01-12 | 2024-03-22 | 江西微博科技有限公司 | Service method of interactive voice video based on cloud platform |
Also Published As
Publication number | Publication date |
---|---|
MX2021006250A (en) | 2021-09-08 |
CA3120594C (en) | 2023-07-18 |
CN113574901B (en) | 2024-02-13 |
JP7343588B2 (en) | 2023-09-12 |
JP2022519990A (en) | 2022-03-28 |
EP3939331A4 (en) | 2022-11-16 |
CN113574901A (en) | 2021-10-29 |
CA3120594A1 (en) | 2020-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11172248B2 (en) | Systems and methods for customizing and compositing a video feed at a client device | |
US11438637B2 (en) | Computerized system and method for automatic highlight detection from live streaming media and rendering within a specialized media player | |
US11972781B2 (en) | Techniques and apparatus for editing video | |
US20220323871A1 (en) | Interaction Interleaver | |
US20190373315A1 (en) | Computerized system and method for automatically detecting and rendering highlights from streaming videos | |
US20090064017A1 (en) | Tuning/customization | |
JP7174941B2 (en) | digital media system | |
US20090064247A1 (en) | User generated content | |
CN105210373A (en) | Customizable channel guide | |
US20160092034A1 (en) | Kiosk Providing High Speed Data Transfer | |
CA3120594C (en) | Systems and methods for customizing and compositing a video feed at a client device | |
AU2020216550B2 (en) | Systems and methods for customizing and compositing a video feed at a client device | |
JP6978630B1 (en) | Video distribution device, video distribution method, and video distribution program | |
US10628115B2 (en) | Synchronization of digital content consumption | |
CN112307240A (en) | Page display method and device, storage medium and electronic equipment | |
WO2018036493A1 (en) | Information processing method and apparatus, display terminal, and storage medium | |
US9940583B1 (en) | Transmitting content to kiosk after determining future location of user | |
US10237329B1 (en) | Wirelessly preparing device for high speed data transfer | |
US20220224958A1 (en) | Automatic generation of augmented reality media | |
CN115917530A (en) | Aggregating media content using a server-based system | |
CN116171421A (en) | Head-up display gaze tracking based automatic positioning | |
KR20230145715A (en) | System for providing user personalized advertisement in metavers service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20210519 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Free format text: PREVIOUS MAIN CLASS: H04N0021810000 Ipc: H04H0060640000 |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 20221019 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04H 60/46 20080101ALN20221013BHEP Ipc: H04N 21/81 20110101ALI20221013BHEP Ipc: H04N 21/431 20110101ALI20221013BHEP Ipc: H04N 21/2187 20110101ALI20221013BHEP Ipc: H04H 60/64 20080101AFI20221013BHEP |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230605 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20240104 |
|
RAP3 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: INFINITE ATHLETE, INC. |
|
RAP3 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: INFINITE ATHLETE, INC. |