Abstract:
Methods and apparatus to verify consumption of media content are disclosed herein. An example method includes populating a data structure stored at a media device with first identifying data associated with media received at the media device in connection with a first content stream and not presented by the media device in real time; determining whether an audience member was exposed to the media in a time-shifted manner by comparing the first identifying data of the data structure stored at the media device to second identifying data obtained from a second content stream received at the media device subsequent to the first content stream; and when the first and second identifying data match, verifying time-shifted exposure of the audience member to the media by sending an index identifier assigned to the media to a data collection facility.

Description:
RELATED APPLICATION 
       [0001]    This patent arises from a continuation of U.S. patent application Ser. No. 12/580,835, filed Oct. 16, 2009, now U.S. Pat. No. ______, which is a continuation of U.S. patent application Ser. No. 11/608,495, filed on Dec. 8, 2006, which is a continuation of International Patent Application Serial Number PCT/US2004/017879, filed on Jun. 8, 2004. U.S. patent application Ser. No. 12/580,835, U.S. patent application Ser. No. 11/608,495 and International Application Serial Number PCT/US2004/017879 are hereby incorporated herein by reference in their entireties. 
     
    
     TECHNICAL FIELD 
       [0002]    The present disclosure relates generally to verification systems, and more particularly, to methods and apparatus to verify consumption of programming content. 
       BACKGROUND 
       [0003]    With the advances in today&#39;s technology, audience measurement companies are presented with greater challenges to collect viewing data to determine viewing habits of viewers. For example, personal video recorders (PVR) present such a challenge to collect viewing data because PVRs allow viewers to play back and view programming at a later time (i.e., in a time-shifted manner). Typically, however, methods to collect viewing data depend on the programming being viewed at the time of broadcast (i.e., real-time). To illustrate this concept, signatures of a program taken at a household are either collected with broadcast timestamp information or associated with a time at which they were received at the household receiver (e.g., a set top box). The signatures are then compared to either reference signatures having the same broadcast time stamp or reference signatures that were broadcasted at or around the same time to identify a match. Comparing broadcast time reduces the amount of signature comparisons that are required to identify a match. However, PVRs allow viewers to skip programming content such as commercials at their discretion to avoid consumption of the programming content. Thus, audience measurement companies are researching different ways to verify programming content is shown to viewers. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]      FIG. 1  is a block diagram representation of an example television system. 
           [0005]      FIG. 2  is a block diagram representation of an example programming content verification system. 
           [0006]      FIG. 3  is a block diagram representation of an example programming content index that may be used by the example programming content verification system of  FIG. 2 . 
           [0007]      FIG. 4  is a flow diagram representation of example machine readable instructions that may be executed to implement the example programming content verification system of  FIG. 2 . 
           [0008]      FIG. 5  is a flow diagram representation of example machine readable instructions that may be executed to implement a content library generation process of the example programming content verification system of  FIG. 2 . 
           [0009]      FIG. 6  is a flow diagram representation of example machine readable instructions that may be executed to implement a content identifier comparison process of the example programming content verification system of  FIG. 2 . 
           [0010]      FIG. 7  is a block diagram representation of an example processor system that may be used to implement the example programming content verification system of  FIG. 2 . 
       
    
    
     DETAILED DESCRIPTION 
       [0011]    Although the following discloses example systems including, among other components, software executed on hardware, it should be noted that such systems are merely illustrative and should not be considered as limiting. For example, it is contemplated that any or all of the disclosed hardware and software components could be embodied exclusively in dedicated hardware, exclusively in software, exclusively in firmware or in some combination of hardware, firmware, and/or software. 
         [0012]    In addition, while the following disclosure is made with respect to example television systems, it should be understood that the disclosed system is readily applicable to many other media systems. Accordingly, while the following describes example systems and processes, persons of ordinary skill in the art will readily appreciate that the disclosed examples are not the only way to implement such systems. 
         [0013]    In the example of  FIG. 1 , an example television system  100  including a television service provider  110 , a television  120 , a remote control device  125 , and a personal video recorder (PVR)  130 , is metered using an audience measurement system. The components of the television system  100  may be coupled in any well known manner. The television  120  is positioned in a viewing area  150  located within a house occupied by one or more people, referred to as household members  160 , all of whom have agreed to participate in an audience measurement research study. The viewing area  150  includes the area in which the television  120  is located and from which the television  120  may be viewed by one or more household members  160  located in the viewing area  150 . Based on the viewing of the household members  160 , the PVR  130  may be configured to send viewing data to a data collection facility  180 . For example, the PVR  130  may transmit content information such as which programming content was displayed and when it was displayed on the television  120  for viewing by the household members  160 . The data collection facility  180  may be configured to process and store data received from the PVR  130 . 
         [0014]    The television service provider  110  may be implemented using any television service provider such as, for example, a cable television service provider  112 , a radio frequency (RF) television service provider  114 , and/or a satellite television service provider  116 . The television  120  receives a plurality of television signals transmitted via a plurality of channels by the television service provider  110  and may be adapted to process and display television signals provided in any format such as a National Television Standards Committee (NTSC) television signal format, a high definition television (HDTV) signal format, an Advanced Television Systems Committee (ATSC) television signal format, a phase alteration line (PAL) television signal format, a digital video broadcasting (DVB) television signal format, an Association of Radio Industries and Businesses (ARIB) television signal format, etc. The user-operated remote control device  125  allows a user to cause the television  120  to tune to and receive signals transmitted on a desired channel, and to cause the television  120  to process and present the programming content contained in the signals transmitted on the desired channel. The processing performed by the television  120  may include, for example, extracting a video and/or an audio component delivered via the received signal, causing the video component to be displayed on a screen/display associated with the television  120 , and causing the audio component to be emitted by speakers associated with the television  120 . The programming content contained in the television signal may include, for example, a television program, a movie, an advertisement, a video game, and/or a preview of other programming content that is currently offered or will be offered in the future by the television service provider  110 . 
         [0015]    While the components shown in  FIG. 1  are depicted as separate functional blocks within the television system  100 , the functions performed by some of these blocks may be integrated within a single unit or may be implemented using two or more separate components. For example, although the television  120  and the PVR  130  are depicted as separate functional blocks, persons of ordinary skill in the art will readily appreciate that the television  120  and the PVR  130  may be integrated into a single unit. 
         [0016]    In the example of  FIG. 2 , a programming content verification system  200  includes a content provider  210 , a broadcast device  220 , and a PVR  230 . In general, the content provider  210  (e.g., the television service provider  110 ) provides the PVR  230  with content streams to display on the broadcast device  220  (e.g., the television  120 ). The PVR  230  includes a content library generator  232 , a memory  234 , and a comparator  236 . The content library generator  232  generates a content library  240  as described in detail below and stores the content library  240  in the memory  234 . Alternatively, the content library generator  232  may store the content library  240  in a mass storage device  250 . Examples of such mass storage device(s)  250  include floppy disks and drives, hard disk drives, compact disks and drives, and digital versatile disks (DVD) and drives. As noted above, the PVR  230  receives content streams from the content provider  210 . In particular, the comparator  236  extracts a broadcast content identifier associated with programming content from a content stream currently being broadcasted to the PVR  230 . To verify consumption of the insertable content, the comparator  236  compares the broadcast content identifier to the content identifiers previously stored in the content library  240  and/or the mass storage device  250 . 
         [0017]    To illustrate the concept of verifying consumption of programming content, a content stream sent to the PVR  230  from the content provider  210  may include programming content which is insertable into content streams. For example, the insertable content may be an advertisement, a program, an interactive television application, and/or an alternate portion of a program. The PVR  230  may receive the insertable content via an in-band transmission. That is, the insertable content may be merged with data of the content stream prior to transmission to the PVR  230 . For example, a local advertisement may be inserted into the content stream of a nationally televised program prior to transmission of the content stream to the PVR  230 . Thus, the PVR  130  receives the insertable content and the content stream from the content provider  210  over the same link (e.g., same cable). 
         [0018]    Alternatively, the insertable content may be sent to the PVR  230  via an out-of-band transmission (i.e., the insertable content is transmitted separate from the content stream). In particular, the content stream and the insertable content may be transmitted physically over separate set of wires to the PVR  230 . For example, the content stream (e.g., a nationally televised program) may be transmitted to the PVR  230  via a cable whereas the insertable content (e.g., a local advertisement) may be transmitted to the PVR  230  via a dial-up modem. In contrast to an in-band transmission of the insertable content (i.e., the insertable content is merged with data of the content stream prior to transmission to the PVR  230 ), the insertable content of an out-of-band transmission is merged with data of the content stream at the PVR  230 . 
         [0019]    To identify the insertable content received via either an in-band transmission or an out-of-band transmission, the PVR  230  generates a content library  240 . For example, the content library  240  may be stored locally in the memory  234  of the PVR  230 . As another example, the content library  240  may be stored on a remote storage device such as the mass storage device  250 . If the insertable content is transmitted via an in-band transmission, the PVR  230  extracts the insertable content from the content stream and stores the insertable content in the content library  240 . On the other hand, if the insertable content is transmitted via an out-of-band transmission, the PVR  230  directly stores the insertable content (i.e., without having to extract the insertable content from the content stream). To conserve size of the storage devices, the PVR  230  (e.g., via the processor  232 ) may store a portion of the insertable content into the memory  234  and/or the mass storage device  250  rather than storing the insertable content in its entirety. Alternatively, the PVR  230  may store a content identifier associated with the insertable content to identify the insertable content. For example, the content identifier may be an audio signature, a video signature, an audio code, a digital identifier (e.g., an audience measurement packet, or a cyclical redundancy code (CRC)) and/or a video code of the insertable content. The PVR  230  may be coupled to a serial data channel metering attachment as 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 issued on Jan. 30, 1996 to identify the content identifier of the insertable content. The subject matter of U.S. Pat. No. 5,488,408 is hereby incorporated by reference. In addition to identifying the insertable content using the examples of content identifier mentioned above, the PVR  230  may use blank frame detection technology as described in, for example, International PCT Patent Application No. PCT/US04/09910 entitled “Methods and Apparatus to Detect a Commercial in a Video Broadcast Signal” and filed on Mar. 29, 2004, to identify a blank image associated with the insertable content. The subject matter of International PCT Patent Application No. PCT/US04/09910 is hereby incorporated by reference. Based on the content identifiers stored in the content library  240 , the PVR  230  may verify consumption of programming content when a content stream including the programming content is received by the PVR  230  as described in detail below. 
         [0020]    Further, the PVR  230  may receive a data structure (e.g., the index  300  of  FIG. 3 ) from the content provider  210  to identify the insertable content as described in detail below. The data structure may be an index, a list, a table, a database and/or any other suitable data configuration that includes information such as an identifier corresponding to an insertable content. In the example of  FIG. 3 , the index  300  may include index numbers  305  such as index # 1   310  corresponding to a car commercial  315 , index # 2   320  corresponding to an airline commercial  325 , index # 3   330  corresponding to a beverage commercial  335 , index # 4   340  corresponding to a football game  345 , and index # 5   350  corresponding to local news  355 . Thus, the PVR  230  may identify a programming content with the index numbers  305  and transmit the index number corresponding to the programming content to the data collection facility  180  after verifying consumption of the programming content. The index numbers  305  may be used to indicate which insertable content was displayed to viewers. 
         [0021]    Because the PVR  230  allow viewers to play back and view programming content in a time-shifted manner and/or skip programming content such as a television advertisement, the PVR  230  measures the actual display of the programming content at a later time by storing the content identifier associated with the programming content in the content library  240  upon receipt of the programming content. Thus, the PVR  230  may determine whether the programming content was actually displayed (i.e., rather than being skipped) regardless of whether the programming content was viewed either in real-time or in a time-shifted manner. 
         [0022]    While the components shown in  FIG. 2  are depicted as separate functional blocks within the programming content verification system  200 , the functions performed by some of these blocks may be integrated within a single unit or may be implemented using two or more separate components. For example, although the PVR  230  and the broadcast device  220  are depicted as separate functional blocks, persons of ordinary skill in the art will readily appreciate that the PVR  230  and the broadcast device  220  may be integrated into a single unit. 
         [0023]    A flow diagram  400  representing machine readable instructions that may be executed by a processor (e.g., the processor  1020  of  FIG. 7 ) to verify consumption of programming content is illustrated in  FIG. 4 . Persons of ordinary skill in the art will appreciate that the instructions may be implemented in any of many different ways utilizing any of many different programming codes stored on any of many computer-readable mediums such as a volatile or nonvolatile memory or other mass storage device (e.g., a floppy disk, a CD, and a DVD). For example, the machine readable instructions may be embodied in a machine-readable medium such as an erasable programmable read only memory (EPROM), a read only memory (ROM), a random access memory (RAM), a magnetic media, an optical media, and/or any other suitable type of medium. Alternatively, the machine readable instructions may be embodied in a programmable gate array and/or an application specific integrated circuit (ASIC). Further, although a particular order of actions is illustrated in  FIG. 4 , persons of ordinary skill in the art will appreciate that these actions can be performed in other temporal sequences. Again, the flow diagram  400  is merely provided and described in conjunction with the example programming content verification system of  FIGS. 2 and 3  as an example of one way to verify consumption of programming content. 
         [0024]    In the example of  FIG. 4 , the flow diagram  400  begins with the content library generator  232  generating the content library  240  within the memory  234  (block  410 ). Alternatively, the content library generator  232  may generate the content library  240  within the mass storage device  250 . The content library  240  includes at least one content identifier associated with an insertable content to serve as a reference. Referring to FIG.  4 , for example, the content provider  210  adds markers and/or flags in a content stream indicating locations within the content stream where insertable contents may be inserted (i.e., the markers and/or flags serve as place holders within the content stream) (block  510 ). For example, a content stream of a nationally televised program may include markers and/or flags to indicate where within the content stream that a local advertisement may be inserted. In another example, a content stream of a movie may include markers and/or flags to indicate where an alternative and/or additional scene may be inserted within the content stream. 
         [0025]    As noted above, the insertable content may be transmitted to the PVR  230  via either an in-band transmission or an out-of-band transmission. Accordingly, the content provider  210  determines whether to merge the insertable content into the content stream (block  520 ). For an in-band transmission of the insertable content, the content provider  210  merges the insertable content into the content stream prior to transmission (block  530 ) so that the insertable content is sent over the same channel as the data of the content stream to the PVR  230  (block  540 ). To generate the content library  240 , the PVR  230  extracts a content identifier associated with the insertable content from the merged content stream (block  550 ) and stores the content identifier in the content library  240  (block  560 ). For example, the content identifier may be an audio signature, a video signature, an audio code, a video code, and/or a portion of the insertable content. 
         [0026]    Referring back to block  520 , if the content provider  210  decides to transmit the insertable content via an out-of-band transmission, then the content stream is transmitted separately from the insertable content to the PVR  230  (block  570 ). In particular, the insertable content is transmitted to the PVR  230  via a link separate from the link carrying data of the content stream. For example, the content stream of the nationally televised program may be transmitted over cable link whereas a local advertisement may be transmitted over a dial-up link. The content provider  210  determines whether to deliver the insertable content to the PVR  230  (block  580 ). If the content provider  210  decides not to deliver the insertable content to the PVR  230  then controls return to block  510 . Otherwise, the content provider  210  transmits the insertable content to the PVR  230  separate from the content stream (block  590 ) so that the PVR  230  may determine whether to merge the insertable content with data of the content stream. Further, PVR  230  may store the content identifier associated with the insertable content in the content library (block  560 ). As a result, the content library may include a plurality of content identifiers to serve as references when the PVR  230  verifies consumption of the insertable content as described in further detail below. 
         [0027]    As noted above, the PVR  230  is configured to receive content streams from the content provider  210 . Referring back to  FIG. 4 , the comparator  236  may extract a broadcast content identifier associated with programming content from a content stream currently being broadcasted to the PVR  230  (block  420 ). To verify consumption of the insertable content, the comparator  236  compares the broadcast content identifier to the content identifiers previously stored in the content library  240  (block  430 ). In the example of  FIG. 6 , the comparator  236  accesses the content identifiers previously stored in the content library  240  (block  610 ) and determines whether the broadcast content identifier matches one of the content identifiers previously stored in the content library  240  (block  620 ). For example, the comparator  236  may compare an audio signature, a video signature, an audio code, and/or a video code of an advertisement to the content identifiers stored in the content library  240 . In another example, the comparator  236  may compare a portion of a program to the content identifiers stored in the content library  240 . 
         [0028]    As noted above, the PVR  230  includes the index  300  to identify the programming content upon detecting a match between the broadcast content identifier and at least one content identifier stored in the content library  240 . For example, the PVR  230  may detect that the car commercial  315  was consumed by the viewer. Thus, the PVR  230  identifies the car commercial  315  is index # 1   310  and verifies that the insertable content was consumed by the viewer. In response to detecting a match between the broadcast content identifier and at least one content identifier stored in the content library  240 , the PVR  230  provides content information associated with the insertable content to the data collection facility  180  (block  630 ). In particular, the PVR  230  may provide information such as which insertable content and when it was displayed to a viewer. Following the example described above, the PVR  230  may transmit index # 1   310  to the data collection facility  180  to indicate that the car commercial  315  was consumed. Otherwise if a match is not found, the PVR  230  updates and continues to build the content library  240  by storing the broadcast content identifier in the content library  240  (block  640 ) so that PVR  230  may verify consumption of programming content of content streams received in the future. 
         [0029]    As noted above, the PVR  230  is configured to time-shift and/or to skip programming content (e.g., a television advertisement). By storing the content identifier associated with the programming content in the content library  240  upon receipt of the programming content, the PVR  230  may measure the actual display of the programming content at a later time even if the programming content is skipped. Thus, the PVR  230  may collect viewing data regardless of whether the programming content was viewed either in real-time or in a time-shifted manner. 
         [0030]    While the methods and apparatus disclosed herein are particularly well suited for use to verify consumption of content with a PVR, the teachings of the disclosure may be implemented by other electronic devices such as a VCR without departing from the scope or spirit thereof. 
         [0031]      FIG. 7  is a block diagram of an example processor system  1000  adapted to implement the methods and apparatus disclosed herein. The processor system  1000  may be a desktop computer, a laptop computer, a notebook computer, a personal digital assistant (PDA), a server, an Internet appliance or any other type of computing device. 
         [0032]    The processor system  1000  illustrated in  FIG. 7  includes a chipset  1010 , which includes a memory controller  1012  and an input/output (I/O) controller  1014 . As is well known, a chipset typically provides memory and I/O management functions, as well as a plurality of general purpose and/or special purpose registers, timers, etc. that are accessible or used by a processor  1020 . The processor  1020  is implemented using one or more processors. The processor  1020  includes a cache  1022 , which may be implemented using a first-level unified cache (L1), a second-level unified cache (L2), a third-level unified cache (L3), and/or any other suitable structures to store data as persons of ordinary skill in the art will readily recognize. 
         [0033]    As is conventional, the memory controller  1012  performs functions that enable the processor  1020  to access and communicate with a main memory  1030  including a volatile memory  1032  and a non-volatile memory  1034  via a bus  1040 . The volatile memory  1032  may be implemented by 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 memory  1034  may be implemented using flash memory, Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), and/or any other desired type of memory device. 
         [0034]    The processor system  1000  also includes an interface circuit  1050  that is coupled to the bus  1040 . The interface circuit  1050  may be implemented using any type of well known interface standard such as an Ethernet interface, a universal serial bus (USB), a third generation input/output interface (3GIO) interface, and/or any other suitable type of interface. 
         [0035]    One or more input devices  1060  are connected to the interface circuit  1050 . The input device(s)  1060  permit a user to enter data and commands into the processor  1020 . For example, the input device(s)  1060  may be implemented by a keyboard, a mouse, a touch-sensitive display, a track pad, a track ball, an isopoint, and/or a voice recognition system. 
         [0036]    One or more output devices  1070  are also connected to the interface circuit  1050 . For example, the output device(s)  1070  may be implemented by display devices (e.g., a light emitting display (LED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, a printer and/or speakers). The interface circuit  1050 , thus, typically includes, among other things, a graphics driver card. 
         [0037]    The processor system  1000  also includes one or more mass storage devices  1080  to store software and data. Examples of such mass storage device(s)  1080  include floppy disks and drives, hard disk drives, compact disks and drives, and digital versatile disks (DVD) and drives. 
         [0038]    The interface circuit  1050  also includes a communication device such as a modem or a network interface card to facilitate exchange of data with external computers via a network. The communication link between the processor system  1000  and the network may be any type of network connection such as an Ethernet connection, a digital subscriber line (DSL), a telephone line, a cellular telephone system, a coaxial cable, etc. 
         [0039]    Access to the input device(s)  1060 , the output device(s)  1070 , the mass storage device(s)  1080  and/or the network is typically controlled by the I/O controller  1014  in a conventional manner. In particular, the I/O controller  1014  performs functions that enable the processor  1020  to communicate with the input device(s)  1060 , the output device(s)  1070 , the mass storage device(s)  1080  and/or the network via the bus  1040  and the interface circuit  1050 . 
         [0040]    While the components shown in  FIG. 7  are depicted as separate blocks within the processor system  1000 , the functions performed by some of these blocks may be integrated within a single semiconductor circuit or may be implemented using two or more separate integrated circuits. For example, although the memory controller  1012  and the I/O controller  1014  are depicted as separate blocks within the chipset  1010 , persons of ordinary skill in the art will readily appreciate that the memory controller  1012  and the I/O controller  1014  may be integrated within a single semiconductor circuit. 
         [0041]    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.