U.S. Pat. No. 11,115,721
METHODS AND APPARATUS FOR MONITORING VIDEO GAMES
AssigneeThe Nielsen Company (US), LLC
Issue DateAugust 29, 2019
Illustrative Figure
Abstract
Methods and apparatus for monitoring video games are disclosed. Example video game monitors disclosed herein include a network analyzer to communicatively couple with a communication interface of a video game console, the network analyzer to detect communication packets transferred over the communication interface of the video game console. Disclosed example video game monitors also include a processor to decode the communication packets detected by the network analyzer to determine an identity of a game being played by the video game console, and report the identity of the game to a data collection facility.
Description
DETAILED DESCRIPTION In the following patent, a video game console is defined to be any device capable of playing a video game. Such a device may include a standard dedicated game console, a portable dedicated gaming device, a personal digital assistant (PDA), a personal computer, a digital video disk (DVD) player, a digital video recorder (DVR), a personal video recorder (PVR), a set-top box, a cable or satellite receiver, a cellular/mobile phone, and the like. Similarly, as used in this patent, a video game medium is defined to be any medium capable of storing and/or providing video game content, which may include game disks, game cartridges, DVDs, CD-ROMs, memory cards, an Internet gaming server, a peer-to-peer or closed gaming network such as Nokia N-Cage, and the like. Also, as used in this patent, a video game is defined to be any game designed to be played via a video game console (as defined above) and displayed on a monitor, such as a television screen, a dedicated game display (e.g., an arcade console, a handheld gaming device such as Nintendo's GameBoy SP) or on a personal computer (PC) monitor. Thus, a video game may be an arcade game, a PC-based game, a game for use with a home-based game system (e.g., a game coded for playing on Microsoft's XBOX, Nintendo's GameCube, Sony's PlayStation, etc.) or a game for use with a portable gaming system game (e.g., a game coded for playing on Nintendo's GameBoy handheld gaming device, etc.). A block diagram of an example local metering system100capable of providing viewing and metering information for video games played via an example home entertainment system102is illustrated inFIG. 1. The example home entertainment system102includes a broadcast source104, a set-top box (STB)108, a video game console112, signal splitters116,118and a television120. The example local metering system100includes ...
DETAILED DESCRIPTION
In the following patent, a video game console is defined to be any device capable of playing a video game. Such a device may include a standard dedicated game console, a portable dedicated gaming device, a personal digital assistant (PDA), a personal computer, a digital video disk (DVD) player, a digital video recorder (DVR), a personal video recorder (PVR), a set-top box, a cable or satellite receiver, a cellular/mobile phone, and the like. Similarly, as used in this patent, a video game medium is defined to be any medium capable of storing and/or providing video game content, which may include game disks, game cartridges, DVDs, CD-ROMs, memory cards, an Internet gaming server, a peer-to-peer or closed gaming network such as Nokia N-Cage, and the like. Also, as used in this patent, a video game is defined to be any game designed to be played via a video game console (as defined above) and displayed on a monitor, such as a television screen, a dedicated game display (e.g., an arcade console, a handheld gaming device such as Nintendo's GameBoy SP) or on a personal computer (PC) monitor. Thus, a video game may be an arcade game, a PC-based game, a game for use with a home-based game system (e.g., a game coded for playing on Microsoft's XBOX, Nintendo's GameCube, Sony's PlayStation, etc.) or a game for use with a portable gaming system game (e.g., a game coded for playing on Nintendo's GameBoy handheld gaming device, etc.).
A block diagram of an example local metering system100capable of providing viewing and metering information for video games played via an example home entertainment system102is illustrated inFIG. 1. The example home entertainment system102includes a broadcast source104, a set-top box (STB)108, a video game console112, signal splitters116,118and a television120. The example local metering system100includes a home unit124and a video game monitor128. The components of the home entertainment system102and the local metering system100may be connected in any well-known manner including that shown inFIG. 1. For example, in a statistically selected household having one or more home entertainment systems102, the home unit124may be implemented as a single home unit and one or more site units. In such a configuration, the single home unit performs the functions of storing data and forwarding the stored data to a central facility (such as the central facility211ofFIG. 2discussed below) for subsequent processing. Each site unit is coupled to a corresponding home entertainment system102and performs the functions of providing one or more interfaces to facilitate the collection of viewing/metering data, processing such data (possibly in real-time) and sending the processed data to the home unit for that home. The home unit receives and stores the data collected by the site units and subsequently forwards that collected data to the central facility.
The broadcast source104may be any broadcast media source, such as a cable television service provider, a satellite television service provider, a radio frequency (RF) television service provider, an Internet streaming video/audio provider, etc. The broadcast source104may provide analog and/or digital television signals to the home entertainment system102, for example, over a coaxial cable or via a wireless connection.
The STB108may be any set-top box, such as a cable television converter, a direct broadcast satellite (DBS) decoder, a video cassette recorder (VCR), etc. The STB108receives a plurality of broadcast channels from the broadcast source104. Typically, the STB108selects one of the plurality of broadcast channels based on a user input, and outputs one or more signals received via the selected broadcast channel. In the case of an analog signal, the STB108tunes to a particular channel to obtain programming delivered on that channel. For a digital signal, the STB108decodes certain packets of data to obtain the programming delivered on a selected channel. For some home entertainment systems102, for example, those in which the broadcast source104is a standard RF analog television service provider or a basic analog cable television service provider, the STB108may not be present and its function may instead be performed by a tuner in the television120.
An output from the STB108is fed to a signal splitter116, such as a single analog y-splitter in the case of an RF coaxial connection between the STB108and the television120or an audio/video splitter in the case of a direct audio/video connection between the STB108and the television120. (For configurations in which the STB108is not present, the broadcast source104may be coupled directly to the signal splitter116.) In the example home entertainment system102ofFIG. 1, the signal splitter116produces two signals indicative of the output from the STB108. Of course, a person of ordinary skill in the art will readily appreciate that any number of signals may be produced by the signal splitter116.
The STB108may also be coupled to a back-channel connection130to provide a return communication path to the broadcast provider corresponding to the broadcast source104. The STB108may use the back-channel connection130to send billing and/or status information to the broadcast provider. The back-channel connection130may also allow a subscriber to use the STB108to request/order content for viewing on the television120(e.g., pay-per-view movies, video-on-demand programming, etc.), purchase goods and/or services, modify the subscription package associated with the STB108, request/order video games and/or video game components for playing via the video game console112, etc.
In the illustrated example, one of the two signals from the signal splitter116is fed to the television120and the other signal is delivered to the home unit124. The television120may be any type of television or television display device. For example, the television120may be a television and/or display device that supports the National Television Standards Committee (NTSC) standard, the Phase Alternating Line (PAL) standard, the Système Électronique pour Couleur avec Mémoire (SECAM) standard, a standard developed by the Advanced Television Systems Committee (ATSC), such as high definition television (HDTV), a standard developed by the Digital Video Broadcasting (DVB) Project, or may be a multimedia computer system, etc.
The second of the two signals from the signal splitter116(i.e., the signal carried by connection136inFIG. 1) is coupled to an input of the home unit124. The home unit124is a data logging and processing unit that may be used to generate viewing/metering records and other viewing information useful for determining ratings and other metering information based on a group of statistically selected households. The home unit124typically collects a set of viewing/metering records and transmits the collected viewing records over a connection140to a central office or data processing facility (not shown) for further processing or analysis. The connection140may be a telephone line, a return cable television connection, an RF or satellite connection, an Internet connection or the like. As mentioned above, in instances where multiple viewing sites are present within a household, site units may be used as intermediaries to collect and forward data to the home unit124.
The video game console112may be any type of game console as described above. The video game console may also include an STB connection142to couple the video game console112to the STB108. The STB connection142may be used, for example, to download video games to the video game console112via the STB108based on a request transmitted over the back-channel connection130. The video game console112may also include a connection144to allow the video game console112to interface with other devices, such a network server, another game console, etc. The connections142and144may be implemented using any type of network connection, such as a serial port cable, a parallel port cable, a Universal Serial Bus (USB) cable, an Ethernet connection, a phone line connection, an 802.11 wireless connection, a Bluetooth wireless connection, etc.
The output from the video game console112is fed to a signal splitter118, such as a single analog y-splitter in the case of a coaxial connection between the video game console112and the television120or an audio/video splitter in the case of a direct audio/video connection between the video game console112and the television120. In the example home entertainment system102, the signal splitter produces two signals indicative of the output from the video game console112. Of course, a person of ordinary skill in the art will readily appreciate that any number of signals may be produced by the signal splitter118. In the illustrated example, one of the two signals from the signal splitter118is fed to the television120and the other signal is delivered to the home unit124(i.e., the signal carried by connection148).
The home unit124may be configured to determine identifying information based on the signal corresponding to the broadcast program content and/or the video game content being output by the STB108and/or the video game console112. For example, the home unit124may be configured to decode an embedded ancillary code in the signal received via connections136and/or148that corresponds to the content currently being output by the STB108and/or video game console112, respectively, for display on the television120. Alternatively or additionally, the home unit124may be configured to generate a program signature based on the signal received via connections136and/or148that corresponds to the content currently being output by the STB108and/or the video game console112, respectively, for display on the television120. The home unit may then add this program identifying information to the viewing records corresponding to the currently displayed program and/or the metering record corresponding to the currently played video game.
To facilitate the determination of program identifying information (and game identifying information, if supported) and the generation of viewing records for the currently displayed broadcast program and/or metering records for the currently displayed video game content, the home unit124may also be provided with one or more sensors146. For example, one of the sensors146may be a microphone placed in the proximity of the television120to receive audio signals corresponding to the content being displayed. The home unit124may then process the audio signals received from the microphone146to decode any embedded ancillary code(s) and/or generate one or more audio signatures corresponding to a broadcast program and/or a video game being displayed. Another of the sensors146may be an on-screen display reader (OSDR) for capturing images displayed on the television120and processing regions of interest in the displayed image. The regions of interest may correspond, for example, to a broadcast channel associated with the currently displayed program, a broadcast time associated with the currently displayed program, a viewing time associated with the currently displayed program, a title of a currently played game (if the home unit124is configured to monitor video game content), the active level for the currently played game (if the home unit124is configured to monitor video game content), etc. An example OSDR is disclosed by Nelson, et al. in U.S. Provisional Patent Application Ser. No. 60/523,444 which is hereby incorporated by reference. Yet another of the sensors146could be a frequency detector to determine, for example, the channel to which the television120is tuned. One having ordinary skill in the art will recognize that there are a variety of sensors146that may be coupled with the home unit124to facilitate generation of viewing records and/or metering records containing sufficient information for the central office to determine a set of desired ratings and/or metering results.
To determine information specific to the video game console112and the game content output thereby (in addition or as an alternative to any information generated by the home unit124), the example local metering system100includes a video game monitor128. The video game monitor128is coupled to the video game console112via a device interface150and is also coupled to the home unit124via a home unit interface152. The device interface150may be, for example, a digital bus interface that allows the video game monitor128to determine the state of and/or examine/modify the operation of the video game console112. Alternatively or additionally, the video game monitor128may receive video game metering data (or the contents thereof) over the device interface150that correspond to the game content currently being output by the video game console112. The video game metering data (or the contents thereof) may contain information regarding the game content currently being output by the video game console112, including, for example, the video game title, the active video game state (e.g., level of progress within the game, health, score, level of difficulty selected for play, etc.), the elapsed playing time, etc.
To create the video game metering data, an example video game console112may include a software meter. The software meter determines information regarding the video game state and the content being displayed based on the video game data being processed by the video game console112. Alternatively or additionally, the example video game console112may be configured to allow the video game monitor128to examine the internal state/operation of the video game console112and/or process the actual data packets corresponding to the video game being played. Also, the software meter may be configured to implement all or portions of the video game monitor128and/or all or portions of the home unit124within the video game console112. The video game monitor128may then use the resulting information to create the information packet or packets corresponding to the played video game.
The home unit interface152may be, for example, a bus interface that allows the video game monitor128to provide, for example, video game metering data (or the contents thereof) to the home unit124for inclusion in one or more separate metering records and/or one or more viewing records being created for the content currently being displayed on the television120. Alternatively or additionally, the home unit124may use the home unit interface152to direct the video game monitor128to query the video game console112to provide metering data corresponding to the video game content currently being displayed on the television120.
The video game monitor128may also be coupled to one or more sensors156. For example, one of the sensors156may be an optical reader capable of reading an image embossed on the face of a video game disk to determine the title of the corresponding video game. Other example sensors156include a barcode reader and a radio frequency identification (RFID) reader capable of reading a barcode and/or an RFID tag, respectively, attached to the video game medium (e.g., disk or cartridge). One having ordinary skill in the art will recognize that there are a variety of sensors156that may be coupled with the video game monitor128to determine additional information regarding the operation of the video game console112.
In a first example local metering system100, the home unit124may be configured to generate a viewing/metering record or records based on the state of the television120as measured by a sensor or sensors146. In this case, the home unit124may include video game metering data (or contents thereof) provided by the video game monitor128in the metering record or records being generated. In a second example local metering system100, the video game monitor128may be configured to trigger the home unit124to generate a metering record or records based on the state of the video game console112as measured by a sensor or sensors156. One having ordinary skill in the art will recognize that various combinations of triggers may be used to cause the generation of the metering records corresponding to the game content currently being displayed on the television120. For example, a combination of one of the sensors146determining that the television120is turned ON and one of the sensors156determining that the video game console112is turned ON may serve as such a trigger.
The example home entertainment system102also includes a remote control device160to transmit control information that may be received by any or all of the STB108, the video game console112, the television120, the home unit124and the video game monitor128. One having ordinary skill in the art will recognize that the remote control device160may transmit this information using a variety of techniques, including, but not limited to, infrared (IR) transmission, radio frequency transmission, wired/cabled connection, and the like.
The example local metering system100also includes a people meter164to capture information about the audience. The example people meter164may have a set of input keys, each assigned to represent a single viewer, and may prompt the audience members to indicate that they are present in the viewing audience by pressing the appropriate input key. The people meter164may also receive information from the home unit124to determine a time at which to prompt the audience members. Moreover, the home unit124may receive information from the people meter164to modify an operation of the home unit124(such as causing the home unit to generate one or more viewing/metering records based on a change in the viewing audience). As will be appreciated by one having ordinary skill in the art, the people meter164may receive and/or transmit information using a variety of techniques, including, but not limited to, infrared (IR) transmission, radio frequency transmission, wired/cabled connection, and the like. As will also be appreciated by one having ordinary skill in the art, the people meter164may also be implemented by a combination of the remote control device160and one or more of the STB108, the video game console112, the video game monitor128, and/or the home unit124. In such an implementation, the STB108, the video game console112, the video game monitor128, and/or the home unit124may be configured to output prompting information and/or other appropriate people meter content for display directly on the television120. Correspondingly, the remote control device160and/or a game controller (such as the game controller308discussed inFIG. 3below) may be configured to accept inputs from the viewing audience and transmit these user inputs to the appropriate device responsible for generating the people meter display on the television120.
FIG. 2illustrates an example monitoring system200to monitor viewing of program and/or playing of game content provided by an example broadcast system201, as well as local video gaming content being played at a local home site210. The example broadcast system201ofFIG. 2includes a broadcast station202that receives audio/video content from a plurality of content providers204and206. The audio/video content providers204and206may provide audio and/or video programs or information, such as television programs, advertisements, audio (e.g., radio) programs, still image information (e.g., web pages), etc., in known manners to the broadcast station202.
The example monitoring system200ofFIG. 2includes one or more reference sites208, a plurality of local metering systems209(for example, a set of systems similar or identical to the local metering system100ofFIG. 1) located at a plurality of home sites210(which may be statistically selected to represent a larger population) and a central facility211to compile and process data collected by the local metering systems209. For ease of reference, only one home site210, one reference site208and one central facility211are shown inFIG. 2. However, persons of ordinary skill in the art will appreciate that any number of home sites210, reference sites208and/or central data collection and processing facilities211may be employed.
The broadcast station202transmits one or more signals containing digital and/or analog audio/video content and/or game information. These signals are received by at least one reference site208and at least one statistically selected home site210via communication paths or links212and214, respectively. The communication paths or links212and214may include any combination of hardwired or wireless links, such as satellite links, wireless land-based links, cable links, etc. The signals conveyed via the links212and214may contain multi-program analog signals and/or digital data streams which are commonly employed within existing broadcast systems.
In the example monitoring system200, the reference site208includes a plurality of receivers (e.g., set-top boxes or the like)216,217and218that simultaneously demodulate, demultiplex and/or decode audio, video and/or other information received from the broadcast station202. In the illustrated example, each of the receivers216,217and218provides audio and/or video information associated with a different program that is currently being broadcast to a reference site processor222. In other words, the receiver216may provide audio and/or video information associated with a program A while the receivers217and218provide audio and/or video information associated with respective programs B and C. In addition, the reference site processor222is configured to control each of the receivers216,217and218and/or has information indicating a program to which each of the receivers216,217and218is tuned at any given time.
Some reference sites208may also include a plurality of game processors219,220,221that may be used to generate reference metering information corresponding to a set of video games. Such information may include ancillary audio/video codes, generated audio/video signatures, video watermarks, game disk/cartridge memory maps, game disk reference images, reference barcodes, reference RFID information, etc. One or more of the game processors219,220,221may be implemented to generate the reference information by directly processing the data stored on the game medium (e.g., disk or cartridge) rather than through actual game play. For example, in the case of a game disk (e.g., CD or DVD), a special-purpose software program may be written to process the file system of a game disk inserted into an existing or special-purpose disk drive of a computer system. In the case of a game cartridge, for example, a special-purpose software program may be written to process each memory location of a game cartridge inserted into a special-purpose reader (e.g., a PROM reader) coupled to a computer system. In either case, the special-purpose program may be configured to scan the game medium to identify game content of interest stored therein. For example, the special-purpose program may scan the file system of a game disk to identify filenames and/or file header information having a format corresponding to game content of interest. In another example, the special-purpose program may scan each memory location of a game cartridge to identify header data having a format corresponding to game content of interest. Such game content may include audio data/files (e.g., in a known format, such as PCM or MPEG), video data/files (e.g., in a known format, such as MPEG), textures, sprites, etc. Moreover, the special-purpose program may be configured to automatically identify any game content of interest found on a game medium being analyzed. Additionally or alternatively, the program may display a graphical interface corresponding to the game medium file system, memory map, etc. Such a graphical interface allows a user to quickly identify potential game content of interest more quickly and efficiently than playing the game in a standard linear fashion. One having ordinary skill in the art will appreciate that the approach used to implement the special-purpose software program described above will depend on the type of game medium being analyzed and the data format employed by the game medium manufacturer/producer.
In the illustrated example, each of the game processors219,220and221may also be coupled to the reference site processor222to provide reference metering data associated with a different video game. In other words, the game processor219may provide metering information associated with a video game A while the game processors220and221provide metering information associated with respective video games B and C. In addition, the reference site processor222may be configured to control each of the game processors219,220and221and/or has information indicating a video game that each of the game processors219,220and221is analyzing at any given time.
The reference site processor222may decode reference ancillary code information and/or generate reference signature information for a plurality of simultaneously broadcast audio/video content and/or analyzed video game content. The reference site processor222sends the reference code and/or signature information to a central facility processor224which stores the original reference code and/or signature information, as well as any other collected reference metering data, in a database226. Of course, because the generation of game data may not require receivers to tune to broadcasted programs/games, but instead such data may be gathered directly from the game media, there is no need to locate the game processors at the reference site. The game processors may instead be located at the central facility211or at another dedicated game processing site. Similarly, although a single database226that combines program codes/signatures and video game codes/signature is shown inFIG. 2, persons of ordinary skill in the art will appreciate that it is likewise possible to maintain a separate database for programming content and a separate database for video games.
The home site210could be, for example, a statistically selected home containing a television, a radio, etc. The home site210includes an output device228(e.g., a video display, speaker, etc., such as the television120ofFIG. 1). The home site210also includes a receiver, such as the STB108which may be similar or identical to the receivers216,217,218, and/or a game console, such as the video game console112ofFIG. 1which may be similar or identical to the game processors219,220,221. The receiver and the video game console may be combined in a single device230as shown inFIG. 2, or may comprise two or more components in two or more housings. The receiver and/or video game console230provides audio and/or video signals232to the output device228. The output device presents the program and/or video game currently selected for consumption. Receivers and/or video game consoles230are well-known and, thus, are not described in greater detail herein.
To monitor the use of the receiver and/or video game console230, the home site210is provided with a local metering system209, such as the local metering system100ofFIG. 1. The local metering system209may include, for example, a home unit and/or a video game monitor such as the home unit124and the video game monitor128. The receiver and/or video game console230provides an audio and/or a video signal234containing audio and/or video information associated with the currently displayed program to the local metering system209. The local metering system209uses the signal234to determine viewing/metering information (e.g., by decoding ancillary code information and/or generating signature information) corresponding to the broadcast program and/or video game currently being displayed on the output device228. The local metering system209stores and periodically conveys this viewing/metering information to the central facility processor224, for example, in the form of a viewing/metering record or set of records.
The central facility processor224, in addition to being able to perform a variety of other processing tasks, is configured to compare the viewing/metering information (e.g., possibly including code and/or signature information) generated at the home site210to the corresponding reference viewing/metering information stored in the database226to identify the broadcast program and/or video game content that was displayed at the home site210.
A block diagram of an example video game system300that may be used to implement the video game console112ofFIG. 1is shown inFIG. 3. The example video game system300includes a game console304and a game controller308. Also shown for reference is the remote control device160ofFIG. 1.
The game controller308may be any type of appropriate input device, such as a keypad, a joystick, a mouse, a keyboard, etc. The game controller308may be coupled to the game console304via a controller port312, such as a special purpose serial or parallel port, a wireless interface adaptor, etc. The game console304may also include additional interface ports316for connection to other external devices. Examples of additional interface ports316include serial ports, USB ports, Ethernet ports, etc.
The game console304may also include a remote control device detector320, such as an infrared (IR) detector, to receive signals transmitted by the remote control device160.
The game console304ofFIG. 3also includes one or more game ports324to receive one or more game disks, cartridges or the like. The game port324may also be used to interface to another device that may emulate the data stored on and/or the operation of the game disk, cartridge, etc.
As mentioned previously, existing broadcast program content metering techniques may not be suitable for monitoring audience participation in video games. For example, a broadcast programming guide (or equivalent mapping of displayed content to broadcast time) is generally not applicable in the case of video games. Moreover, the type of metering information desired for video game content may be significantly different from the type of metering data desired for broadcast programs. For example, and as mentioned above, the types of metering data collected for video game usage may include: A) the identity of the game being played, B) the times at which the game is actively played (instead of, for example, operating in a demo mode), C) the duration of game play, D) the game content (e.g., area, location, level, etc.) that is active (e.g., cached) at a specific point during game play, E) the game content (e.g., area, location, level, etc.) that is actually being presented to the user (e.g., displayed and/or audible) at a specific point during game play, F) the identity/identities and/or the number of players who are participating in the game locally and/or remotely, G) whether the game is being played across a communications network (e.g., the Internet, a local area network (LAN), a direct cable connection, a dial-up connection, etc.), H) any content that may have been downloaded to the game from an external source (e.g., a network server, and Internet site, a memory card, etc.), as well as any other information of interest. These classifications of video game measurements are discussed in greater detail in the following paragraphs.
An example type of video game metering data to collect is the identity of the game being played, which includes the title and possibly the manufacturer of the video game. Additionally, the game platform corresponding to the currently played game may be reported, especially in cases in which the game may be available for play on multiple different types of game consoles/platforms. For example, the identity of the game may be reported as: “Game Title” by “Game Manufacturer” for use on “Game Console/Platform.”
Another example type of video game metering data to collect is a set of times during which the game is actively played. This set of times may be different than a set of times for which the game console112is enabled (e.g., turned ON). For example, many video games start-up in a demo mode that displays example game play content. In such a scenario, the actual playing times (e.g., game start, game end, game pause, game resume, etc.) should be identified separately from times corresponding to the display of an introductory demo, a video trailer, start/setup menus, etc. In this way, active game play modes may be distinguished from other game operating modes and metering data for either or both types of modes may be collected and reported. Additionally, the duration of actual game play may be reported or determined from the reported actual game start, end, pause and resume times.
Yet another example type of video game metering to collect is the game content (e.g., the area, location, level, etc.) that is active (e.g., cached) at a specific point during game play. This category of data describes the active content of the game, for example, the content that has been locally cached for possible or actual use. Cached game content, such as a trailer, a menu, a game level, a region, a map, a stadium, a track, an audio track, an audio sample, a video sample, a video texture, etc., may be identified as being in use by the video game console. One having ordinary skill in the art will recognize that this category of information identifies only that the content is active/cached and not necessarily being presented to the player. For example, a texture (e.g., a sign) could be cached by the game console for possible use, but the player may never actually be able to see the texture depending on, for example, the player's selected point-of-view
Another example type of video game metering data to collect is the presented game content (e.g., the area, location, level, etc.) that is actually being presented (e.g., displayed and/or audible) at a specific point during game play. This category describes the content of the game that is actually being presented to the player, for example, either visually or audibly. Presented game content, such as a trailer, a menu, a game level, a region, a map, a stadium, a track, an audio track, an audio sample, a video sample, a video texture, etc., may be identified as being presented to the user either visually, audibly and/or through tactile feedback. Additionally, presented game content may include content that is not actually presented to the user but impliedly present based on the game context (e.g., a racecar in a driving game where the player selected the racecar's make and model but has chosen a forward view such that the racecar itself is not visible).
Still another example type of video game metering data to collect is the number of players who are participating in the game locally and/or remotely. This category of information may also include determining the identities of the one or more individuals participating in the game. Also, identifying the number of players participating in the game may include determining whether any remote players are participating in the game through a communications interface (e.g., a local network or Internet). Additionally, the player information may distinguish between players who are real people and players who are simulated as part of the video game itself.
Another example type of video game metering data to collect is information indicating whether the game is being played across a communications network (e.g., the Internet, a local area network (LAN), a direct cable connection, a dial-up connection, etc.). Some games may operate only in a local mode or only in a network mode. Other games, however, can be played both locally and over some sort of network. In the latter case, the type of network should be reported if network play is detected.
Yet another example type of video game metering data to collect is information indicating whether any game content may have been downloaded to the game from an external source (e.g., a network server, and Internet site, a memory card, etc.). Some games support the inclusion of additional, external content to the game, for example, at game start-up and/or during game play. This content may also be identified as having been actually presented to the user. For example, games may support the inclusion of new maps, levels, content, etc. that may be downloaded from the Internet, added from a memory card and/or another disk or cartridge, etc.
Methods and apparatus to address the collection of game play/viewing/metering data for video games are discussed below. A particular method and/or apparatus may be preferred depending on the capabilities and/or the characteristics of the equipment used to implement the video game system, the degree of access to data stored in the game disk/cartridge, the degree of access to data and/or operational information corresponding to the video game console (e.g., the video game console112ofFIG. 1), etc. The methods and/or apparatus described below may also be grouped into categories based on the techniques used by the method/apparatus to collect the game play/viewing/metering data. These categories include: 1) techniques based on ancillary codes, content (e.g., audio and/or video) signatures, video watermarks and/or content (e.g., audio and/or video) trends, 2) techniques based on monitoring the internal data and/or operation of the video game console, 3) techniques based on monitoring the game medium (e.g., disk or cartridge), 4) techniques based on network monitoring and 5) diary-based techniques.
The methods and apparatus based on ancillary codes, content signatures, watermarks and/or content trends may employ techniques based on embedded audio/video codes in the video game content, audio/video signatures derived from the presented video game content, video watermarks embedded in the video game content and/or long-term audio/video trends derived from the video game content. For example, and referring to the previous list of types of video game metering data, content (e.g., audio and/or video) signatures and/or content (e.g., audio and/or video) trends may be derived from the presented video game content and compared to a reference database of signatures/trends to determine metering information, such as, A) the identity of the game being played, D) the cached game content that is active at a specific point during game play, and E) the presented game content that is actually being presented (displayed and/or audible) at a specific point during game play. Audio codes may also provide such information and additionally may provide F) the identity/identities and/or the number of players who are participating in the game locally and/or remotely and H) information to describe audio content (e.g., audio soundtracks, audio special effects, etc.) that may have been downloaded to the game from an external source. Video codes/watermarks may be able to provide information similar to that available from the audio/video signatures and audio codes, as well as additional information, such as, B) the times at which the game is actively played, C) the duration of game play, G) whether the game is being played across a communications network and H) information to describe the game content (e.g., maps, textures, audio special effects, audio soundtracks, etc.) that may have been downloaded to the game from an external source.
The methods and apparatus based on monitoring the internal data and/or operation of the video game console may employ techniques based on collecting metering data from a memory/bus sniffing device and/or a software meter running on the video game console, collecting information obtained by mapping memory accesses to/from a game medium (e.g., disk or cartridge), monitoring one or more game controllers, etc. As described in greater detail below, and referring to the previous list of types of video game metering data, techniques based on game medium access mapping may be able to determine, for example, A) the identity of the game being played and D) the cached game content that is active at a specific point during game play. Techniques based on memory/bus sniffing may be able to provide similar information, as well as B) the times at which the game is actively played, C) the duration of game play and F) the identity/identities and/or the number of players who are participating in the game locally. Techniques based on game controller monitoring may also be able to determine information regarding B) the times at which the game is actively played, C) the duration of game play and F) the identity/identities and/or the number of players who are participating in the game locally. Finally, techniques based on software metering of the video game console may be able to provide all categories of information A) through H) described above.
The methods and apparatus based on monitoring the game medium (e.g., disk or cartridge) may employ techniques based on game medium visual image scanning, barcode marking of the game medium, RFID tagging of the game medium, etc. Referring to the previous list of types of video game metering data, techniques based on barcode marking and/or RFID tagging may be used to determine information regarding, for example, A) the identity of the game being played. Techniques based on game medium (e.g., disk) visual image scanning may also be able to identify A) the identity of the game being played, as well as, D) the cached game content that is active at a specific point during game play.
The methods and apparatus based on network monitoring may employ techniques based on network communication monitoring (sniffing) and/or server-side monitoring. Referring to the previous list of types of video game metering data, such techniques may able to provide information regarding, for example, A) the identity of the game being played, B) the times at which the game is actively played, C) the duration of game play, D) the cached game content that is active at a specific point during game play, F) the identity/identities and/or the number players who are participating in the game locally and/or remotely, G) whether the game is being played across a communications network (e.g., the Internet, a local area network (LAN), a direct cable connection, a dial-up connection, etc.) and H) any content that may have been downloaded to the game from an external source.
Finally, methods/apparatus based on the use of a diary may employ techniques based on logging information into a written diary and/or an electronic diary. Such techniques may be able to provide all categories of information A) through H) described above. However, one having ordinary skill in the art will appreciate that diary-based techniques may be prone to collecting and/or reporting inaccurate and/or erroneous information.
FIGS. 4 and 5are block diagrams illustrating example video game monitoring systems400and500which use audio/video codes to monitor game usage. In the example system400ofFIG. 4, the audio/video codes are added to the game content by the game producer when the content is produced. In the example system of500ofFIG. 5, the audio/video codes are embedded in the game content at run-time. For example, the audio codes may be embedded at inaudible frequencies of the audio content. Video codes may be embedded in a non-viewable vertical blanking interval (VBI) or horizontal overscan of the game console's output video signal. Example audio and video coding techniques that could be adapted for use in the example systems herein are described in, for example, U.S. Pat. No. 5,481,294, entitled “Audience Measurement System Utilizing Ancillary Codes and Passive Signatures” and filed on Oct. 27, 1993. Example techniques that could be adapted to embed audio codes such that the codes are inaudible are described in, for example, U.S. Pat. No. 6,272,176, entitled “Broadcast Encoding System and Method” and filed on Jul. 16, 1998, and PCT Application Serial No. PCT/US01/10790, entitled “Multi-Band Spectral Audio Encoding” and filed on Apr. 3, 2001. Example techniques for embedding video codes that could be adapted for use in the example systems herein are described in, for example, U.S. Pat. No. 5,629,739, entitled “Apparatus and Method for Injecting an Ancillary Signal into a Low Energy Density Portion of a Color Television Frequency Spectrum” and filed on Mar. 6, 1995, and U.S. Pat. No. 5,737,025, entitled “Co-Channel Transmission of Program Signals and Ancillary Signals” and filed on Feb. 28, 1995. U.S. Pat. Nos. 5,481,294, 6,272,176, 5,629,739, 5,737,025 and PCT Application Serial No. PCT/US01/10790 are hereby incorporated by reference in their entirety.
The audio/video codes may contain information to identify the game content that is actively being played. Background music tracks, special sounds and/or the real time audio coming from an opponent in a multi-player game could be encoded with identifiers. Due to the overlaid nature of the presented game audio and video, codes from various audio and/or video sources may be superimposed. Thus, encoding methods, such as orthogonal codes, diversity codes, etc., may be used to allow uncorrupted decoding of each superimposed code. The identifiers used to represent the game content may include identifiers for the game title, the current level of play, specific presented content, a time offset from a clock, an offset in the memory map of the game medium (e.g., disk or cartridge), etc. Codes could also be generated by the game console as directed by the game content when a significant event occurs, such as game start-up, a level/scene change, playback of a particular track of background music, etc. The source of the audio/video could be included in the embedded audio/video codes to determine whether the presented content resides on the local game medium or was provided by an external source, such as a game server.
Turning toFIG. 4, the example system400illustrated therein includes a content preparation device404to embed ancillary codes with a set of game content data408stored on a game medium412. The content preparation device404may be located, for example, at a game provider/manufacturing site. As discussed above, the ancillary codes may be embedded, for example, in the audio and/or video portions of the presented game content. Additionally or alternatively, the ancillary codes may be embedded in the digital streams (e.g., MPEG or AC3 data streams) used to carry the audio and/or video content. To embed the ancillary codes, the content preparation device404includes an identifier generator416to provide the identification information to be associated with the given game content data408being encoded. For example, the identifier generator416may be coupled with a database (not shown) from which identifiers are selected corresponding to the type of game content408being encoded. Next, an encoder420is included to encode the game content data408with the information provided by the identifier generator416. For example, in the case of audio coding of audio content, the encoder420may be configured to embed the information from the identifier generator416at non-audible frequencies of the game content data408. In the case of video coding of video content, the encoder420may be configured to embed the information from the identifier generator416into non-viewable portions of the game content data408(e.g., in the vertical blanking interval, horizontal overscan, etc.). The output of the encoder420is then provided to a game storage interface424to store the prepared, encoded game content onto the game medium412.
At a user site, the example system400includes a game console428, such as the game console112ofFIG. 1, to play the game medium412. The game console428is coupled to a decoder432to decode the ancillary code information embedded in the prepared game content stored on the game medium412and presented by the game console428. The decoder432may be included, for example, in a game monitor, such as the video game monitor128ofFIG. 1, which may be coupled to the game console428via a device interface, such as the device interface150. Alternatively, the decoder432may be a separate device coupled to the game console428via an external interface port of the game console428, such as the external interface ports316of the example game console304ofFIG. 3. In either case, the example system400ofFIG. 4includes an identifier collector436to receive the decoded information from the decoder432. The identifier collector436may be configured to provide the decoded information to a central facility for processing and crediting, such as the central facility211ofFIG. 2.
Turning toFIG. 5, the example system500illustrated therein is similar to the example system400ofFIG. 4. The example system500includes content preparation functionality similar to that of system400, but with such functionality embedded in a game console504rather than implemented as a separate, production site device. In the system500, an identifier generator508is included in the game console504to provide information to be embedded by an encoder512as ancillary codes into the game content data516provided by the game medium520being played by the game console504. The encoder512embeds such ancillary codes directly into the content (e.g., audio and/or video) output by the game console504. Additionally or alternatively, the ancillary codes may be embedded directly into the digital streams (e.g., MPEG or AC3 data streams) used to carry the audio and /or video content. The identifier generator508is not associated with a particular game medium (as may be the case for the identifier generator416ofFIG. 4) and, as such, the type of identifying information generated by the identifier generator508may be generic in nature and applicable to a wide variety of video games. For example, and as described previously, the encoder512may embed codes containing, for example, identifying information based on predetermined types of game content516that cause certain events in the game console504to occur, such as content that causes game start-up, a level/scene change, playback of a particular track of background music, etc. Moreover, the game console504may be configured to output a code look-up table, for example, at start-up to assist the decoder524described below to determine the game content516and/or internal events of the game console504that correspond to an embedded code. As much of the functionality of the identifier generator508and the encoder512is similar to that of the identifier generator416and encoder420, a more detailed description of this functionality may be found in the preceding description ofFIG. 4.
The example system500also includes a decoder524, which may be substantially similar or identical to the decoder432ofFIG. 4, to decode the ancillary code information embedded by the encoder512into the game content data516. The decoder524may be included, for example, in a game monitor, such as the game monitor128ofFIG. 1, which may be coupled to the game console504via a device interface, such as the device interface150. Alternatively, the decoder524may instead be a separate device coupled to the game console504via an external interface port of the game console504, such as the external interface ports316of the example game console304ofFIG. 3. In either case, the example system500includes an identifier collector528, which is similar to the identifier collector436ofFIG. 4, to receive the decoded information from the decoder524. The identifier collector528may be configured to provide the decoded information to a central facility for processing and crediting, such as the central facility211ofFIG. 2.
FIG. 6illustrates a block diagram of an example video game monitoring system600based on the use of video watermarks. In the illustrated example system600, the video game console604watermarks the active output video signal to embed codes and/or information concerning the game identity and possibly the game content currently being presented to the user. This approach is different from approaches that use video coding techniques in that the watermarks are embedded into the active (viewable) portions of the video (rather than non-viewable portions of the video). However, the watermarks are constructed and embedded so that they are not easily viewable to the user and/or are not located in a pre-determined fixed location of the displayed video output. As such, embedded video watermarks may be detected by an external sensor, such as an OSDR being used as one of the sensors146ofFIG. 1. Because most games perform significant transforms on the video content and game textures, the watermarking will typically be performed on the final video frame buffer to be displayed to the user. Example watermarking techniques that could be adapted for use in the example systems herein are described in, for example, U.S. Pat. No. 6,208,735, entitled “Secure Spread Spectrum Watermarking for Multimedia Data” and filed on Jan. 28, 1999, and U.S. Pat. No. 6,353,672, entitled “Steganography Using Dynamic Codes” and filed on Mar. 8, 2000. U.S. Pat. Nos. 6,208,735, 6,353,672 are hereby incorporated by reference in their entirety.
Turning toFIG. 6, the example system600illustrated therein includes a game console604to play game content data608stored on a game medium612. The game console includes an identifier generator616, which is similar to the identifier generators416and508ofFIGS. 4 and 5, respectively. The identifier generator616provides the identification information to be associated with the given game content data608. Such identification information is embedded into the presented game content via a watermark encoder620. As mentioned above, the watermark encoder620may use any well-known technique to embed the identification information as one or more watermarks into the active video output of the game console604.
The example system600also includes a watermark locator624to locate positions in the video output of the game console604that may contain one or more watermarks embedded by the watermark encoder620. For example, the watermark locater624may be configured to process a small portion of the video display output that may be used to display embedded watermarks at a rate not noticeable to the human eye. In another example, the watermark locator624may be configured to process sudden background color changes that occur in adjacent, interlaced video frames and, as such, are not noticeable to the human eye but may be used to encode identification information. In any case, the output of the watermark locator624is provided to a watermark decoder628to decode the ancillary codes embedded by the watermark encoder620. The watermark decoder628may be included, for example, in a game monitor, such as the game monitor128ofFIG. 1, which may be coupled to the game console604via a device interface, such as the device interface150. Alternatively, the watermark decoder628may instead be a separate device coupled to the game console604via an external interface port of the game console604, such as the external interface ports316of the example game console304ofFIG. 3. In either case, the example system600includes an identifier collector632, which is similar to the identifier collectors436and528ofFIGS. 4 and 5, respectively, to receive the decoded information from the watermark decoder628. The identifier collector632may be configured to provide the decoded information to a central facility for processing and crediting, such as the central facility211ofFIG. 2.
FIG. 7illustrates a block diagram of an example video game monitoring system700based on the use of content (e.g., audio and/or video) signatures. As discussed above in connection withFIG. 2, reference content signatures corresponding to a set of games702could be generated and stored in a reference library/database704. Then, when a particular game medium708is played, signatures corresponding to the presented content may be generated via a signature generator712. The content signatures (e.g., audio and/or video signatures) may then be cross-referenced via a comparator716against the reference library database704to determine, for example, the identity of the game being played. Moreover, the content signatures may be matched, for example, to game content presented at a particular point in the game. For some game media types, it may be possible to generate the reference content signatures by processing the content of the game medium (e.g., disk/cartridge) directly by, for example, a special-purpose software program and not through playing the game in a linear fashion. For game devices with digital outputs, signatures may be created from an output digital audio/video stream (e.g., the CRC fields in an AC3 audio data stream). U.S. Pat. No. 5,481,294, discussed above and incorporated herein, describes example audio and video signaturing techniques that could be adapted for use in the example systems herein. Additional example audio signaturing techniques that could be adapted for use in the example systems herein are described in, for example, U.S. Pat. No. 5,918,223, entitled “Method and Article of Manufacture for Content-Based Analysis, Storage, Retrieval, and Segmentation of Audio Information” and filed on Jul. 21, 1997, and U.S. application Ser. No. 10/200,034, entitled “Automatic Identification of Sound Recordings” and filed on Jul. 22, 2002. Additional example video signaturing techniques that could be adapted for use in the example systems herein are described in, for example, U.S. Pat. No. 6,633,651, entitled “Method and Apparatus for Recognizing Video Sequences” and filed on Nov. 1, 1999, and U.S. Pat. No. 6,577,346, entitled “Recognizing a Pattern in a Video Segment to Identify the Video Segment” and filed on Jan. 24, 2000. U.S. Pat. Nos. 5,481,294, 5,918,223, 6,633,651, 6,577,346 and U.S. application Ser. No. 10/200,034 are hereby incorporated by reference in their entirety.
Turning toFIG. 7, at one or more reference sites, such as the reference sites208ofFIG. 2, the example system700illustrated therein includes a reference signature storage database704, as discussed above, to store a set or reference content signatures (e.g., audio and/or video signatures) corresponding to a set of reference games702. The reference games702may be processed by one or more reference signature generators724, which may be substantially similar or identical to the game processors219,220,221ofFIG. 2, to generate the set of reference content signatures. As mentioned above, the reference signature generator724may be implemented to process the content of the game medium (e.g., disk/cartridge) directly by, for example, a special-purpose software program and not through playing the game.
At a user site, the example system700includes a game console728, which may be similar to the game console112ofFIG. 1, to play the game stored on the game medium708. The signature generator712is provided to generate content signatures (e.g., audio and/or video signatures) corresponding to the presented game content (e.g., audio and/or video) output from the game console728. The signature generator712may be included in or implemented by, for example, the home unit124ofFIG. 1. Moreover, the signature generator712may receive the presented content from the game console728using one or more sensors (e.g., the sensors146), such as an audio microphone, a video framegrabber, an OSDR, etc.
At, for example, a central facility site such as the central facility211ofFIG. 2, the example system700includes a comparator716to cross-reference the content signatures generated by the signature generator712with the set of reference signatures stored in the reference signature storage database704. If a match is found, a data processor732is used to meter/credit the played game based on the reference signature(s) that matched the signature(s) generated by the signature generator712.
FIG. 8illustrates a block diagram of an example video game monitoring system800that uses long-term content (e.g., audio and/or video) trends to monitor video game usage. In many cases, content trends may be distinguished from content signatures in that content trends are based on broad content (e.g., audio and/or video signal) characteristics processed over a period of time significantly longer than that typically used to generate content signatures. However, in some cases, content trends may be substantially similar to content signatures. In either case, reference content trends corresponding to a set of games802could be generated and stored in a reference library/database804. Then, when a particular game808is played, content trends that correspond to the presented content may be determined by a trend analyzer812. The content (e.g., audio and/or video) trends may then be cross-referenced via a comparator816against the reference library database804to determine, for example, the identity of the game being played. Moreover, the content trends may be matched, for example, to game content presented at a particular point in the game. For some game media types, it may be possible to generate the reference audio/video trends by processing the content of the game medium (e.g., disk/cartridge) directly by, for example, a special-purpose software program and not through playing the game
In the example ofFIG. 8, the example system800includes a reference trend storage database804at one or more reference sites, such as the reference sites208ofFIG. 2, to store a set or reference content trends (e.g., audio and/or video trends) corresponding to a set of reference games802as discussed above. The reference games802may be processed by one or more reference trend analyzers824, which may be substantially similar or identical to the game processors219,220,221ofFIG. 2, to generate the set of reference content trends. As mentioned above, the reference trend analyzer824may be implemented to process the content of the game medium (e.g., disk/cartridge) directly by, for example, a special-purpose software program and not through playing the game.
At a user site, the example system800includes a game console828, which may be similar to the game console112ofFIG. 1, to play the game stored on the game medium808. The trend analyzer812is provided to generate content trends (e.g., audio and/or video trends) corresponding to the presented game content (e.g., audio and/or video) output from the game console828. The trend analyzer812may be included in or implemented by, for example, the home unit124ofFIG. 1. Moreover, the trend analyzer812may receive the presented content from the game console828using one or more sensors (e.g., the sensors146), such as an audio microphone, a video framegrabber, an OSDR, etc.
At a central facility site, such as the central facility211ofFIG. 2, the example system800includes a comparator816to cross-reference the content trends generated by the trend analyzer812with the set of reference trends stored in the reference trend storage database804. If a match is found, a data processor832is used to meter/credit the played game based on the reference trend(s) that matched the trend(s) generated by the trend analyzer812.
FIG. 9illustrates a block diagram of an example video game monitoring system900which employs a memory/bus analyzer904(also known as a memory/bus “sniffer”) to monitor game usage. A memory/bus analyzer904may be used to monitor/probe the memory and/or the internal state of the video game console908to determine, for example, the identity of the game medium912being played, the current location within the game, the game content being displayed, etc. Depending on the game console hardware, such game content information may be probed from existing ports on the game console908(e.g., the interface ports316ofFIG. 3), for example, an external memory port, a USB port and/or an expansion port. For game consoles908in which no existing port suffices, an interface tap may be placed on one or more of the internal busses of the game console908. A reference library/database916corresponding to various video games of interest920may include the memory locations on the various game media that correspond to metering information to be collected and reported (e.g., game titles, game levels, soundtracks, etc.). Examples of memory/bus sniffers that could be adapted for use in the example systems herein are described in, for example, U.S. Pat. No. 5,488,408, entitled “Serial Data Channel Metering Attachment for Metering Channels to Which a Receiver is Tuned” and filed on Mar. 22, 1994, and PCT Application Serial No. PCT/US2002/038012, entitled “Apparatus and Methods for Tracking and Analyzing Digital Recording Device Event Sequences” and filed on Nov. 27, 2002. U.S. Pat. No. 5,488,408 and PCT Application Serial No. PCT/US2002/038012 are hereby incorporated by reference in their entirety.
In the example ofFIG. 9, the example system900includes a reference database916at one or more reference sites such as the reference sites208ofFIG. 2, to store a set or reference game medium information (e.g., memory maps, bus transactions, etc.) corresponding to a set of reference games920as discussed above. The reference games920may be processed by one or more reference medium analyzers924, which may be substantially similar or identical to the game processors219,220,221ofFIG. 2, to generate the set of reference game medium information. As mentioned above, the reference medium analyzer924may be implemented to process the content of the game medium (e.g., disk/cartridge) directly by, for example, a special-purpose software program and not through playing the game.
At a user site, the example system900includes a game console908, which may be similar to the game console112ofFIG. 1, to play the game stored on the game medium912. The memory/bus analyzer904is provided to generate game medium information (e.g., memory read/write locations, captured bus transactions, etc.) corresponding to the game medium912as it is played on the game console908. The memory/bus analyzer904may be included in or implemented by, for example, the game monitor128ofFIG. 1and coupled to the game console908via a device interface (e.g., the device interface150) and/or an external interface port of the game console908(e.g., the interface ports316ofFIG. 3). The memory/bus analyzer904may instead be a separate device coupled to the game console908via an external interface port of the game console908, such as the external interface ports316of the example game console304. One having ordinary skill in the art will appreciate that many substantially equivalent implementations may be used to provide memory/bus analyzer functionality in the example system900. The output of the memory/bus analyzer904is stored in a data buffer928, which may be implemented as a standalone device and/or by any or all of the game monitor128and the home unit124.
At, for example, a central facility site such as the central facility211ofFIG. 2, the example system900includes a comparator932to cross-reference the game medium information generated by the memory/bus analyzer904with the set of reference game medium information stored in the reference database916. One having ordinary skill in the art will appreciate that the cross-referencing process may be simplified if such processing focuses on determining the game identity first (e.g., based on a sequence of memory accesses performed at game startup) and then analyzes the remaining game medium information. In any case, if a match is found, a data processor936is used to meter/credit the played game based on the reference information that matched the information generated by the memory/bus analyzer904.
FIG. 10illustrates a block diagram of an example video game monitoring system1000which employs a game console software meter1004to perform video game monitoring. In the illustrated example, the game console1008and/or game content stored on the game medium1012are configured to output information regarding the play of the current game through an interface, for example, to a separate information collection unit1016and/or directly to a data processor1020, such as the central facility211ofFIG. 2. In the case of an external collection unit1016(e.g., implemented via the video game monitor128and/or the home unit124ofFIG. 1), the collection unit1016could be connected to a standard port of the game console1008and/or may be coupled to an existing device already coupled to an interface port of the game console1008. For example, video game producers could cause the play of the game stored on the game medium1012to directly output metering data via a predetermined game console interface port (e.g. one or more of the external interface ports316of the example game console304ofFIG. 3). Game console manufacturers could add similar capability to game consoles1008to output such information based on game play without the need to modify the game content stored on the game medium1012. Additionally, the game console1008may be configured to block the reporting of metering data/information unless instructed to do so by the collection unit1016(e.g., the video game monitor128) and/or the data processor1020(e.g., the central facility211). An example software meter that could be adapted for use in the example systems herein is described in, for example, PCT Application Serial No. PCT/US98/14286, entitled “Audience Measurement System for Digital Television” and filed on May 12, 1998. PCT Application Serial No. PCT/US98/14286 is hereby incorporated by reference in its entirety.
FIG. 11is a block diagram of an example video game monitoring system1100which employs game medium access mapping to monitor video game usage. In this example, a storage device analyzer1104(also known as a storage device “sniffer”) is used to monitor accesses of the game storage medium1108(e.g., CD-ROM, hard disk, cartridge) made by the game console1112. For example, the storage device analyzer1104may be coupled between the physical media reader1116and the reader controller1120of the game console1112to copy and record the memory addresses requested by the controller1120. In the case of a game console1112for use with a game disk1108(e.g., CD-ROM), the storage device analyzer1104may be coupled between a CD reader arm1116in the game console1112and a corresponding reader arm controller1120(e.g., a special purpose microcontroller) in the game console1112to copy and record the coordinates of the disc requested by the controller1120. In such a configuration, the storage device analyzer1104may determine the CD track and/or sector that the reader arm controller1120is commanding the reader arm1116to access. In the case of a game console1112for use with a game cartridge1108, the storage device analyzer1104may be coupled between the game cartridge1108and a corresponding game console cartridge port (e.g., the game port324of the example game console304ofFIG. 3) to copy and record the addresses of the cartridge memory cells accessed by the game console1112.
In either of the two previous examples, a pattern of memory accesses at the startup of the game may be used as a reference identifier (or memory “signature”) to determine the identity of the game being played. Moreover, the game location and the current game content being presented to the user may also be determined based on cross-referencing the accessed memory locations to a reference memory map corresponding to the game medium1108of the monitored video game. Therefore, the example system1100includes a data buffer1124to store the output of the storage device analyzer1104and provide such output to a data processor1128(such as the central facility211ofFIG. 2). The data processor1128analyzes the information provided by the storage device analyzer1104, for example, to determine the memory signature corresponding to the game being played. The data processor1128may compare the processed information from the storage device analyzer1104to a corresponding set of information in a reference database1132to determine, for example, the identity of the game based on the memory signature, the presented game content based on the memory locations accessed by the reader controller1120/media reader1116, etc.
For the case of a game disk1108, in addition to looking at the memory locations being accessed, it may be possible to examine (via a positioning sensor) the control arm1116of the CD drive unit to determine its positioning relative to the disk1108. This relative position may be cross-referenced against a physical layout of the disk1108to determine the content being accessed at any given time.
FIG. 12illustrates a block diagram of an example video game monitoring system1200which employs game controller monitoring to monitor video game usage. In the example system1200, a game controller analyzer1204(also known as a game controller “sniffer”) may be coupled between a game controller1208and a corresponding game port (e.g., the port312of the example game console304ofFIG. 3) of the video game console1212. The game controller sniffer1204output is provided to a data buffer1216for storage and transmission to a data processor1220(such as the central facility211ofFIG. 2). The data processor1220may use the results provided by the game controller sniffer1204to determine, for example, whether the game is being played based on monitoring the activity between the game controller1208and the game console1212. The data processor1220may also combine game controller activity with other memory/bus sniffer information to determine, for example, the identity of the game currently being played. U.S. Pat. No. 5,488,408 and PCT Application Serial No. PCT/US2002/038012, discussed above and incorporated herein, describe example memory/bus sniffers that could be adapted for use as game controller sniffers for use in the example systems described herein.
FIGS. 13 and 14are block diagrams of example video game monitoring systems1300and1400which employ game medium visual image scanning to monitor video game usage. In the case of game consoles for use with game disks (e.g., CD-ROMs), an optical sensor may be placed inside the game console and positioned to read the top of the disk when the disk is inserted into the game console. In the case of game consoles for use with game cartridges, an adaptor device may be coupled between the game cartridge and the game console cartridge port. The adaptor device may include an optical sensor to read a side of the cartridge when the cartridge is inserted into the adaptor device. In either example system, the optical sensor may be configured, for example, to read a code attached to the top of the disk (such as a barcode in the example system ofFIG. 13). Additionally or alternatively, the optical sensor may be configured to read an image embossed on the top/side of the disk/cartridge and transform such image into a “game medium visual signature” (as in the example system ofFIG. 14). A game medium visual signature may be represented, for example, as a sequence of data generated by sampling an image embossed on the game medium at a set of predetermined locations. If the game medium is a game disk (e.g., CD-ROM), the “disk” visual signature may also be based on a predetermined sampling rate use to sample the image embossed on the spinning disk. In any case, the processed barcode and/or generated game medium visual signature may be used to cross-reference a library of such barcodes/signatures to look-up the identity of the game from a database/look-up table.
Turning toFIG. 13, the example system1300illustrated therein includes a game console1304for playing a game stored on a game medium1308. The game console1304is provided with a barcode reader1312to read a barcode1314placed on the game medium1308. The game console1304is coupled to a barcode collection unit1316to receive the output of the barcode reader1312. The barcode collection unit1316may be included, for example, in a game monitor, such as the game monitor128ofFIG. 1, which may be coupled to the game console1304via a device interface, such as the device interface150. The barcode collection unit1316may instead be a separate device coupled to the game console1304via an external interface port of the game console1304, such as the external interface ports316of the example game console304ofFIG. 3. In any case, the barcode collection unit1316sends the read barcode information to a data processor1320, such as the central facility211ofFIG. 2. In the example system1300, the data processor1320uses the barcode information to index a reference barcode database1324to determine the identity of the game currently being played on the game console1304. Alternatively or additionally, based on the density of the barcode1314, the data processor1320may be able to determine the game identity, manufacturer, etc. directly from the barcode information without the reference barcode database1324. Additionally, the data processor1320may provide the read barcode information to the reference barcode database1324, for example, to allow a previously unidentified barcode1314to be added to the database.
Turning toFIG. 14, the example system1400illustrated therein includes a game console1404for playing a game stored on a game medium1408. The game console1404is provided with a visual signature reader1412to determine a game medium visual signature corresponding to the game medium1408. As discussed above, the visual signature reader1412may construct such a signature based on, for example, scanning an image embossed on the game medium1408or sampling an image embossed on the game medium1408at a predetermined rate. The game console1404is coupled to a visual signature collection unit1416to receive the output of the visual signature reader1412. The visual signature collection unit1416may be included, for example, in a game monitor, such as the game monitor128ofFIG. 1, which may be coupled to the game console1404via a device interface, such as the device interface150. The visual signature collection unit1416may instead be a separate device coupled to the game console1404via an external interface port of the game console1404, such as the external interface ports316of the example game console304ofFIG. 3. In either example case, the visual signature collection unit1416sends the generated signature to a combination of a comparator1420and data processor1422, which may be implemented in the central facility211ofFIG. 2. In the example system1400, the comparator cross-references the generated game medium visual signature with a reference signature database1424that includes a set of reference signatures corresponding to a set of games to be monitored. If a match is found, the data processor1422uses the reference game medium visual signature that matches the generated game medium visual signature to, for example, identify the game currently being played by the game console1404, etc.
FIG. 15illustrates a block diagram of an example video game monitoring system1500based on RFID tagging of a game medium1504. In the example system1500, an RFID tag1508is placed on the game medium1504(e.g., disk or cartridge). In one example, an RFID reader1512may be coupled to or included in a game console1514. In another example, the RFID reader1512may be coupled to or included in a video game monitor (e.g., the video game monitor128ofFIG. 1). The RFID reader1512is configured to detect the presence and identity of the game medium1504based on the reception of information from the RFID tag1508.
In the example system1500, the RFID reader1512is included in the game console1514. The game console1514, in turn, is coupled to an RFID collection unit1516to receive the output of the RFID reader1512. The RFID collection unit1516may be included, for example, in a game monitor, such as the game monitor128ofFIG. 1, which may be coupled to the game console1514via a device interface, such as the device interface150. The RFID collection unit1516may instead be a separate device coupled to the game console1514via an external interface port of the game console1514, such as the external interface ports316of the example game console304ofFIG. 3. In any case, the RFID collection unit1516sends the detected RFID information to a data processor1520, such as the central facility211ofFIG. 2. In the example system1500, the data processor1520uses the RFID information to index a reference RFID database1524to determine the identity of the game currently being played on the game console1514. Alternatively or additionally, based on the memory size of the RFID tag1508, the data processor1520may be able to determine the game identity, manufacturer, etc. directly from the RFID information without the reference barcode database1524. Additionally, the data processor1520may provide the RFID information to the reference RFID database1524, for example, to allow a previously unidentified RFID tag1508to be added to the database.
Due to the motion associated with placing the game medium1504(e.g., disk or cartridge) into the game console1514, low cost, low-power inductive RFID systems may be used to implement the RFID tag1508and the RFID reader1512. As the game medium1504is inserted into the game console1514, the motion of the RFID tag1508through a magnetic field generated by the RFID reader1512will energize the RFID tag1508, thereby allowing the tag to transmit information to the RFID reader1512. In the case of the game medium1504being a game disk1504, the spinning of the disk1504in the game console1514(especially upon startup) may induce an electric field in the RFID tag1508as it passes through a magnetic field generated by the RFID reader1512, thereby allowing the RFID tag1508to transmit its information to the RFID reader1512.
FIG. 16illustrates a block diagram of an example video game monitoring system1600which employs network communication monitoring. A network analyzer1604(also known as a network “sniffer”), such as any well-known suitably-adapted network analyzer, may be coupled to a local game console1608to monitor information transferred over a communications interface1612between the monitored game console1608and another game console1616and/or a communications network (e.g., the Internet). The monitored information may be used by a data processor1620, such as the central facility211ofFIG. 2, to determine the identity of the game, as well as the game content that is currently active within the game. Information about the number of players, their location and/or their identities may also be determined by the data processor1620. For example, the data processor1620may decode the communication packets (e.g., IP packets) transferred over the communication interface1612to determine text data stored therein that identifies the title of the game, the network identities (e.g., network addresses) corresponding to the game consoles1608,1616(and, thus, the game users), the content that is currently active (e.g., a game level or map), etc.
FIG. 17illustrates a block diagram of an example video game monitoring system1700which employs server-side monitoring to monitor game usage. A server analyzer1704may be coupled to an authentication server1708and/or a game server1708for games that are played over private networks and/or over the Internet. The server analyzer1704may be used to monitor the information transferred between the game server1708and a local game console1712. Alternatively or additionally, the server analyzer1704may be used to monitor the information transferred between the game server1708and one or more remote game consoles1716. The monitored information may be used by a data processor1720, such as the central facility211ofFIG. 2, to determine the identity of the game, as well as the game content that is currently active within the game. Information about the number of players, their location and/or their identities may also be determined by the data processor1720. For example, the server analyzer1704could be configured to receive and process information from a software meter running in the game server1708that is similar to a software meter designed to run in a game console (e.g., software meter1004ofFIG. 10). Alternatively, the game server1704could be configured to send metering data directly to the data processor (e.g., the central facility211) without the need for a server analyzer1704.
FIG. 18illustrates a block diagram of an example video game monitoring system1800which employs a diary1804to monitor video game usage. The example system includes a game console1808for playing a game stored on a game medium1812. The diary1804may be a written diary1804and/or an electronic diary1804. The diary1804could be customized to exhibit a preference for games owned by a selected user (e.g., by configuring the diary to present a first menu of entries corresponding to only the owned games) and have a fallback capability to support additional games not previously identified as belonging to the user's collection (e.g., by configuring the diary to present a second, generic menu of entries corresponding to non-owned games). The contents of the diary1804are then provided to a data processor1816, such as the central facility211ofFIG. 2, for processing and crediting.
A flowchart representative of example machine readable instructions for implementing the video game monitor128and at least portions of the home unit124ofFIG. 1is shown inFIGS. 19A-19C. In this example, the process represented by the flowchart may be implemented by a set of machine readable instructions that may comprise one or more programs for execution by a processor, such as the processor2112shown in the example computer2100discussed below in connection withFIG. 21. The one or more programs may be embodied in software stored on a tangible medium such as a CD-ROM, a floppy disk, a hard drive, a DVD, or a memory associated with the processor2112, but persons of ordinary skill in the art will readily appreciate that the entire program and/or portions thereof could alternatively be executed by a device other than the processor2112and/or embodied in firmware or dedicated hardware in a well-known manner. For example, any or all of the video game monitor128and the home unit124could be implemented by any combination of software, hardware, and/or firmware. Further, although the example programs are described with reference to the flowchart illustrated inFIGS. 19A-19C, persons of ordinary skill in the art will readily appreciate that many other methods of implementing the example methods and apparatus described herein may alternatively be used. For example, with reference to the flowchart illustrated inFIGS. 19A-19C, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, combined and/or subdivided into multiple blocks.
An example program1900to implement the video game monitor128and the home unit124(or portions thereof) ofFIG. 1is shown inFIGS. 19A-19C. The program1900may be executed on a periodic basis (e.g., at fixed time intervals via a program loop) or may be executed in response to a change in state of one or more devices in the home entertainment system102and/or the local metering system100ofFIG. 1. The example program1900begins at block1902ofFIG. 19Aat which the video game monitor128determines if the video game console112is active, for example, based on one or more inputs from the sensors156(e.g., a sensor to detect a power-on LED of the video game console112, a game controller analyzer1204to detect that a game controller1208has been activated, a current meter to determine that the game console112is drawing power, etc.). If the video game console112is active (block1902) control proceeds to block1904. Otherwise, control returns to block1902causing the program1900to iterate at block1902until the video game console112becomes active.
At block1904, the video game monitor128determines whether a game medium (e.g., disk or cartridge) has been inserted into the video game console112. The video game monitor128may make this determination based on, for example, game medium visual image scanning using a barcode reader (e.g., the barcode reader1312ofFIG. 13) and/or a memory signature reader (e.g., the memory signature reader1412ofFIG. 14). Additionally or alternatively, the video game monitor128may use an RFID reader (e.g., the RFID reader1512ofFIG. 15) to read an RFID tag, if present, placed on the game medium. The video game monitor128and/or the home unit124could also determine the presence of a game medium based on monitoring the display of the television120, for example, for the presence of ancillary codes and/or signatures indicative of displayed game content. If the video game monitor128determines that a game medium has been inserted into the game console112(block1904), control proceeds to block1906. Otherwise, control returns to block1902causing the program1900to iterate at block1902and1904until the game medium is inserted in the game console112.
If the game console112is active (block1902) and the game medium is present (block1904), control proceeds to block1906at which the video game monitor128may initiate the monitoring of times associated with the enablement (e.g., power ON) of the video game console112and/or the presence of a game medium in the game console112. Next, control proceeds to block1908at which the video game monitor128determines whether sufficient information is available to identify the current game (e.g., based on information determined at block1904, such as a barcode, a memory signature compared to a reference signature, an RFID tag, etc.). If sufficient identification (ID) information is available (block1908), control proceeds to block1910at which the video game monitor128determines the game ID and includes such ID in the metering record corresponding to the current game. After the processing at block1910completes or if no game ID information is present (block1908), control proceeds to block1912.
At block1912, the video game monitor128determines if any user/player input is being provided to the video game console112via a game controller, such as the game controller1208ofFIG. 12. Such information may be determined, for example, by monitoring the game controller interface via a game controller analyzer1204, by monitoring the internal memory/bus of the video game console112via a memory/bus analyzer904and/or from information provided by a software meter1004, as described previously in connection withFIGS. 12, 9 and 10, respectively. User input information may be used to indicate that the video game is actively being played rather than in a demo mode of operation. As such, if game controller data is detected (block1912), control proceeds to block1914at which the video game monitor128begins monitoring a set of times associated with active game use (e.g., game start, game pause, game resume, etc.). After processing at block1914completes, or if game controller data is not detected (block1912), control proceeds to block1916ofFIG. 19B.
At block1916, the video game monitor128determines if game content is accessible and, thereby, supporting the generation and/or determination of the corresponding metering data. If such game content is available (block1916), control proceeds to block1918. For example, the video game monitor128may determine that access to game content data is possible based on the presence of any or all of the following: data provided by one or ports, such as ports316ofFIG. 3, from the game console112; data from one or more sensors156monitoring the presented game content; data from a memory/bus analyzer, such as the memory/bus analyzer904ofFIG. 9; data from a network analyzer, such as the network analyzer1604ofFIG. 16, data from a server analyzer, such as the server analyzer1704ofFIG. 17; etc. If the game content is not accessible (block1916) and, thus, no additional metering data may be generated/determined, control proceeds to block1920ofFIG. 19Cat which the video game monitor128generates one or more metering reports that include the metering data generated/determined at the preceding blocks of the example program1900. Control then proceeds to block1922at which the video game monitor128and/or the home unit124sends the metering report(s) to a central facility, such as the central facility211ofFIG. 2, for processing and subsequent crediting of the current game based on the provided metering reports. The example program1900then ends.
If access to game content data is available as determined at block1916, control proceeds to block1918at which the video game monitor128determines the game ID corresponding to the current game. The video game monitor128may make this determination based on, for example, reading memory locations in the game console112via a memory/bus analyzer904to identify data corresponding to the title of the current game, decoding an embedded ancillary code (audio and/or video) from game content presented via the television120and detected/measured via one or more sensors156(e.g., a microphone, an OSDR, etc.), etc. The game ID determined at block1918may be in addition to the game ID determined at block1910such that both IDs may be used to cross-validate the game ID determined for the current game. After processing at block1918completes, control proceeds to block1924.
At block1924, the video game monitor128uses the available game content data to refine and/or update the set(s) of monitored times corresponding to game console enablement, active game use, etc. The video game monitor128may refine and/or update such set(s) of times based on, for example, memory bus transactions monitored via a memory/bus analyzer904that correspond to starting, stopping, pausing and/or resuming the currently played game, decoding ancillary codes and/or determining content signatures that indicate a change in game activity (e.g., a code and/or signature that does not change over a predetermined period of time may be used to indicate that the game is paused), etc. After processing at block1924complete, control proceeds to blocks1926and1928.
At blocks1926and1928, the video game monitor128determines/generates metering data corresponding to the active game content and the presented game content, respectively. As discussed above, presented game content corresponds to contact that is actually presented to the user, e.g., visually and/or audibly. Active game content corresponds to game content that may be locally cached by the video game console112for possible use and/or presentation to the user. Thus, presented game content may be considered a subset of active game content. At block1926, the video game monitor128may determine the active game content, for example, by monitoring the data stored in a cache of the video game console112via a memory/bus analyzer904; by processing the information provided by a software meter, such as the software meter1004ofFIG. 10; by determining the memory location accessed by the game console112via a storage device analyzer, such as the storage device analyzer1104ofFIG. 11, etc. Additionally or alternatively, at block1928the video game monitor128and/or the home unit124may decode ancillary codes, generate content signatures and/or generate content trends that correspond to the presented game content (and, thus, the active game content as well). After the processing at blocks1926and1928completes, control proceeds to block1930.
At block1930, the video game monitor128determines whether any game content has been received by an external, local device (e.g., a memory card) and monitors such content if present. The video game monitor128may make this determination by, for example, monitoring game content storage locations in a memory of the video game console112via a memory/bus analyzer904and/or by processing content source information provided by a software meter, such as the software meter1004ofFIG. 10. Control then proceeds to block1932at which the video game monitor128determines the number of local users playing the current game. The video game monitor128may make this determination by, for example, monitoring the number of active game controllers via one or more game controller analyzers1204, monitoring game controller transactions on an internal bus of the video game console112via a memory/bus analyzer904and/or by processing game controller information provided by a software meter1004. Control then proceeds to block1934ofFIG. 19C.
At block1934ofFIG. 19C, the video game monitor128(via, for example, a network analyzer, such as the network analyzer1604ofFIG. 16) and/or the central facility211(via, for example, information received from a server analyzer, such as the server analyzer1704ofFIG. 17) determines whether a network connection is in use by the game console112. If a network connection is active (block1934), control proceeds to blocks1936and1938at which the video game monitor128and/or the central facility211determine the number and identities, respectively, of any remote users playing the currently monitored game. The video game monitor128and/or the central facility211may make such determinations based on the data received by the network analyzer1604and/or the server analyzer1704. Control then proceeds to block1940at which the video game monitor128and/or the central facility211determine whether any game content has been downloaded from an external source (e.g., a remote game server, an Internet web site, etc.) and monitors such content if present. Such a determination may be made from the network analyzer1604and/or the server analyzer1704discussed above, by a memory/bus analyzer904and/or software meter1004used to monitor the source of game content, etc. After the processing at block1940completes, or if a network connection is not active (block1934), control proceeds to block1942.
At block1942, the video game monitor128determines whether the current game has ended (e.g., by removing the game medium, by disabling/turning OFF the game console112, etc.). If the game has not ended (block1942) control returns to block1924ofFIG. 19Band blocks subsequent thereto at which the video game monitor128, the home unit124and/or the central facility211continue to monitor the currently played game. If the game has ended (block1942), control proceeds to block1920and subsequent blocks thereto at which metering records are generated and reported to the central facility211. The processing associated with blocks1920and1922was already described in detail above and, thus, for brevity is not re-described here.
As discussed above, for scenarios in which ancillary codes and/or watermarks are embedded in the game content, the coded data from various audio and/or video sources may be superimposed to create the final audio and/or video output. Thus, in such scenarios, encoding methods that support the uncorrupted decoding of each superimposed code/watermark may be advantageous. Block diagrams of an example encoder2000and a corresponding example decoder2050for orthogonally superimposing codes from multiple sources are illustrated inFIGS. 20A-20B. The example encoder2000ofFIG. 20Ais configured to orthogonally encode data from four (4) sources2002,2004,2006,2008. To orthogonally encode the source data, the source data is first replicated by a set of data replicators2010,2012,2014,2016. The data replicators2010,2012,2014,2016are configured to replicate their respective source data inputs a number of times equal to the number of data sources, which is four (4) in the instant example. For example, for source2004, if the source data has a value of “B,” then the output of the corresponding data replicator2012is “(B, B, B, B).”
The outputs of the data replicators2010,2012,2014,2016are provided to corresponding orthogonal mappers2018.2020,2022,2024. Each orthogonal mapper2018.2020,2022,2024multiplies (or “covers”) its input replicated data sequence with a predetermined mapping sequence that is orthogonal to the predetermined mapping sequences for the other orthogonal mappers2018.2020,2022,2024. For example, the set of predetermined orthogonal mapping sequences used by the orthogonal mappers2018,2020,2022,2024of the example encoder2000are given by:
Orthogonal mapper 2018: (1,1,1,1)
Orthogonal mapper 2020: (1,1,−1,−1)
Orthogonal mapper 2022: (1,−1,1,−1)
Orthogonal mapper 2024: (1,−1,−1,1).
Thus, for an example scenario in which the source data from the four sources2002,2004,2006,2008is A, B, C, and D, respectively, the corresponding outputs of the four orthogonal mappers2018,2020,2022,2024are:
(A,A,A,A),(B,B,−B,−B),(C,−C,C,−C) and (D,−D,−D,D).
To create the output of the encoder2000, the outputs from the orthogonal mappers2018,2020,2022,2024are summed by a combiner2026. Thus, continuing with the example scenario described above, the corresponding, orthogonally encoded output sequence from the encoder2000is:
(A+B+C+D),(A+B−C−D),(A−B+C−D),(A−B−C+D).
The example decoder2500ofFIG. 20Bis configured to orthogonally decode an encoded data sequence generated by the corresponding example encoder2000ofFIG. 20A. The example decoder2500may include one or more orthogonal demappers2052to multiply (or cover) the input encoded data sequence with a predetermined demapping sequence provided via a reference input2054and corresponding to the desired source data to recover. Continuing with the above example, for the case of decoding an original source data B from the source2004ofFIG. 20A, the corresponding predetermined demapping sequence is (1, 1, −1, −1). One having ordinary skill in the art will recognize that the predetermined demapping sequence is equivalent to the predetermined mapping sequence used by the corresponding orthogonal mapper2018,2020,2022,2024to orthogonally encode the desired source data. Thus, for the case of decoding the source data provided by source2004, the output of the orthogonal demapper2052would be:
(A+B+C+D),(A+B−C−D),−(A−B+C−D),−(A−B−C+D).
Next, the output of the orthogonal demapper2052is provided to a summer2056. The summer2056adds the individual sequence elements output form the orthogonal demapper2052to form a single data output. Continuing with the previous scenario, the output of the summer2056corresponding to decoding the source data provided by the source2004would be:
(A+B+C+D)+(A+B−C−D)+(A−B+C−D)+(A−B−C+D)=4B.
Finally, the output of the summer2056is provided to a normalizer2058to yield the output of the example decoder2050. The normalizer2058is configured to scale the output2056by a scale factor to compensate for the gain factor resulting from the processing performed by the encoder2000and decoder2050. The scale factor is equivalent to the reciprocal of the number of sources2002,2004,2006,2008supported by the example encoder2000. Thus, in the instant example, the normalizer2058applies a scale factor of (¼) to its input. For the example scenario described above, the output of the decoder2050corresponding to the source2004is B, which is identical to the original source data produced by the source2004.
One having ordinary skill in the art will appreciate that many other types of encoders and decoders, in addition to or as alternatives to the example encoder2000and decoder2050, may be used to create ancillary codes and/or watermarks that may be superimposed and subsequently recovered. The type of encoder and decoder employed may depend on the number of possible data sources, the type of data to be encoded, the data rate of the data to be encoded, the amount of processing available to decode the ancillary codes, etc.
FIG. 21is a block diagram of an example computer2100capable of implementing the apparatus and methods disclosed herein. The computer2100can be, for example, a server, a personal computer, a personal digital assistant (PDA), an Internet appliance, or any other type of computing device.
The system2100of the instant example includes a processor2112. For example, the processor2112can be implemented by one or more Intel® microprocessors from the Pentium® family, the Itanium® family or the XScale® family. Of course, other processors from other families are also appropriate. A processor such as processor2112may be used to implement any or all of the video game monitor128and the home unit124(or portions thereof) ofFIG. 1and/or the central facility processor224(or portions thereof) ofFIG. 2.
The processor2112is in communication with a main memory including a volatile memory2114and a non-volatile memory2116via a bus2118. The volatile memory2114may be implemented by Static Random Access Memory (SRAM), Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory2116may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory2114,2116is typically controlled by a memory controller (not shown) in a conventional manner.
The computer2100also includes a conventional interface circuit2120. The interface circuit2120may be implemented by any type of well-known interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a third generation input/output (3GIO) interface.
One or more input devices2122are connected to the interface circuit2120. The input device(s)2122permit a user to enter data and commands into the processor2112. The input device(s) can be implemented by, for example, a keyboard, a mouse, a touchscreen, a track-pad, a trackball, an isopoint and/or a voice recognition system.
One or more output devices2124are also connected to the interface circuit2120. The output devices2124can be implemented, for example, by display devices (e.g., a liquid crystal display, a cathode ray tube display (CRT)), by a printer and/or by speakers. The interface circuit2120, thus, typically includes a graphics driver card.
The interface circuit2120also includes a communication device such as a modem or network interface card to facilitate exchange of data with external computers via a network2126(e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.). The interface circuit2120and the network2126may implement the connection140ofFIG. 1.
The computer2100also includes one or more mass storage devices2128for storing software and data. Examples of such mass storage devices2128include floppy disk drives, hard drive disks, compact disk (CD) drives and DVD drives. The mass storage device2128and/or the volatile memory2114may be used to store metering data (or the contents thereof) in the video game monitor128ofFIG. 1and/or the viewing/metering records in the home unit124ofFIG. 1.
As an alternative to implementing the methods and/or apparatus described herein in a system such as the device ofFIG. 21, the methods and or apparatus described herein may be embedded in a structure such as a processor, a field programmable gate array (FPGA), dedicated circuitry and/or an ASIC (application specific integrated circuit).
From the foregoing, persons of ordinary skill in the art will appreciate that the example methods, apparatus and articles of manufacture described herein allow for monitoring of video game usage. For example, the disclosed example methods, apparatus and articles of manufacture support the generation and/or collection of metering information corresponding to the playing of a video game. Such information may regard any or all of the following: A) the identity of the game being played, B) times at which the game is actively being played (instead of in a demo mode of operation), C) the duration of game play, D) the content (e.g., area, location, level, etc.) that is active (e.g., cached) at a specific point during game play, E) the content (e.g., area, location, level, etc.) that is actually being presented to the user (e.g., displayed and/or audible) at a specific point during game play, F) the identity/identities and/or the number of players who are participating in the game locally and/or remotely, G) whether the game is being played across a communications network (e.g., the Internet, a local area network (LAN), a direct cable connection, a dial-up connection, etc.), H) any content that may have been downloaded to the game from an external source (e.g., a network server, an Internet site, a memory card, etc.), as well as any other information of interest.
Although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.
Claims
- A video game monitor comprising: a network analyzer to communicatively couple with a communication interface of a video game console, the network analyzer to detect communication packets transferred over the communication interface of the video game console;and a processor to: decode the communication packets detected by the network analyzer to determine an identity of a game being played by the video game console;determine, based on the communication packets detected by the network analyzer, whether game content has been downloaded from a source external from the video game console;and report the identity of the game to a data collection facility.
- The video game monitor of claim 1 , wherein the processor is to: decode data from the communication packets detected by the network analyzer;and determine the identity of the game based on the data decoded from the communication packets.
- The video game monitor of claim 2 , wherein the data includes text data, and the processor is to identify a title of the game based on the text data.
- The video game monitor of claim 2 , wherein the processor is further to: identify active game content based on the data decoded from the communication packets;and report the identified active game content to the data collection facility.
- The video game monitor of claim 2 , wherein processor is to identify at least one of an active game level or an active game map based on the data decoded from the communication packets.
- The video game monitor of claim 1 , wherein the video game console is a first video game console, and the processor is to: decode the communication packets to determine a first network identity of the first video game console and a second network identity of a second video game console in communication with the first video game console via the communication interface of the video game console;and report the first network identity and the second network identity to the data collection facility.
- A video game monitor comprising: means for communicatively coupling with a communication interface of a first video game console to detect communication packets on the communication interface of the first video game console, the communication interface to communicatively couple the first video game console with at least one of a second video game console or a network;and means for decoding the communication packets detected on the communication interface of the first video game console to determine an identity of a game being played by the first video game console, the means for decoding to report the identity of the game to a data collection facility, the means for decoding to determine, based on the communication packets detected on the communication interface of the first video game console, whether game content has been downloaded from a source external from the first video game console.
- The video game monitor of claim 7 , wherein the means for decoding is to: decode data from the communication packets detected on the communication interface of the first video game console;and determine the identity of the game based on the data decoded from the communication packets.
- The video game monitor of claim 8 , wherein the data includes text data, and the means for decoding is to identify a title of the game based on the text data.
- The video game monitor of claim 8 , wherein the means for decoding is further to: identify active game content based on the data decoded from the communication packets;and report the identified active game content to the data collection facility.
- The video game monitor of claim 8 , wherein the means for decoding is to identify at least one of an active game level or an active game map based on the data decoded from the communication packets.
- The video game monitor of claim 7 , wherein the means for decoding is to: decode the communication packets to determine a first network identity of the first video game console and a second network identity of the second video game console in communication with the first video game console via the communication interface of the video game console;and report the first network identity and the second network identity to the data collection facility.
- A storage device or storage disk comprising computer readable instructions that, when executed, cause a processor to at least: access communication packets detected on a communication interface of a first video game console, the communication interface to communicatively couple the first video game console with at least one of a second video game console or a network, the communication packets detected by a network analyzer communicatively coupled with the communication interface of the first video game console;decode the detected communication packets to determine an identity of a game being played by the first video game console;determine, based on the detected communication packets, whether game content has been downloaded from a source external from the first video game console;and report the identity of the game to a data collection facility.
- The storage device or storage disk of claim 13 , wherein the instructions, when executed, cause the processor to: decode data from the communication packets detected on the communication interface of the first video game console;and determine the identity of the game based on the data decoded from the communication packets.
- The storage device or storage disk of claim 14 , wherein the data includes text data, and the instructions, when executed, cause the processor to identify a title of the game based on the text data.
- The storage device or storage disk of claim 14 , wherein the instructions, when executed, cause the processor further to: identify active game content based on the data decoded from the communication packets, the active game content including at least one of an active game level or an active game map;and report the identified active game content to the data collection facility.
- The storage device or storage disk of claim 13 , wherein the instructions, when executed, cause the processor to;decode the communication packets to determine a first network identity of the first video game console and a second network identity of the second video game console in communication with the first video game console via the communication interface of the video game console;and report the first network identity and the second network identity to the data collection facility.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.