AUDITOR FOR MONITORING SPLICING OF DIGITAL CONTENT
Field of the Invention
The present invention relates to a method of auditing splicing of digital content provided from two or more digital streams and an auditing device from conducting the method.
Background of the Invention
Digital broadcasts often have time slots identified which are available for insertion of other content, such as advertising and local television programs. These time slots are used either directly by a master provider to insert content, or offered to a local or regional re- broadcaster to insert their own content. This enables the local re-broadcaster to earn revenue through local advertising sales. To ensure the master provider fulfills its contracts with the retailers it must be sure that the local broadcaster will not replace the retailer's advertisements inserted by the master program provider with local advertisements. Additionally, regional re- broadcasters must ensure the master provider fulfils its obligations to provide adequate time slots to it.
There is therefore a need for a convenient way of auditing digital content to identify erroneous advertisements or program insertions or for other auditing purposes.
Summary of the Present Invention
The present invention is designed to provide a simple method of auditing digital content inserted (spliced) into time slots in a master digital program.
According to a first aspect of the present invention there is provided a method of auditing digital content spliced into a master program digital stream comprising the steps of: receiving a master program digital stream including program insertion information; extracting the program insertion information from the received master program digital stream; identifying a time slot in which splicing should occur from the extracted program insertion information; receiving a digital stream with spliced digital content during the identified time slot; and recording either or both of the spliced content and an identifier of the spliced content against the identified time slot for confirming whether the spliced content matches content scheduled for the time slot .
Preferably the program insertion information is recorded against the identified time slot.
Preferably the method further includes the step of comparing the recorded program insertion information and spliced content and/or an identifier therefor with a schedule of content .
Preferably in the event that the spliced content does not match with the scheduled content then an alert is raised.
Preferably in the event that the program insertion information does not match with the scheduled insertion then an alert is raised.
Preferably in the event that the program insertion information does not conform to a predefined format then an alert is raised.
Preferably the received master program digital stream includes the spliced content and an identifier thereof.
Also according to the present invention there is provided an auditor for monitoring digital content spliced into a master program digital stream comprising: a receiver for receiving a master program digital stream including program insertion information; a processor for extracting program insertion information from the received master program digital stream and identifying a time slot in which splicing should occur from the extracted program insertion information; a receiver for receiving a digital stream with spliced digital content; a recorder for storing either or both of the spliced content and/or an identifier of the spliced content at the identified time slot against the identified time slot for confirming whether the spliced content matches content scheduled for the time slot.
Preferably the recorder stores the program insertion information against the identified time slot.
Preferably the auditor further comprises a comparator for comparing the recorded program insertion information and spliced content and/or an identifier therefor with a schedule of content .
Preferably the auditor includes an alert generator for generating an alert when the spliced content does not match with the scheduled content.
Preferably the alert generator also generates an alert when the program insertion information does not match with the scheduled insertion.
Preferably the alert generator also generates an alert when the program insertion information does not conform to a predefined format .
Preferably the receiver for receiving the master program digital stream is also for receiving the digital stream with the spliced digital content.
Preferably the receiver is configured to receive the master program digital stream after the spliced digital content has been inserted into the master program digital stream.
Brief Description of the Drawings
In order to provide a better understanding of the present invention preferred embodiments will now be described in greater detail, by way of example only, in which:
Figure 1 is a schematic representation of a digital broadcast network in which the method of the present invention can be employed;
Figure 2 is a schematic representation of a system for creating of a digital broadcast network in which the splicing occurs and an auditor to ensure the splicing is valid;
Figure 3 is a schematic diagram of the system architecture of the auditor of the present invention;
Figure 4 is a schematic block diagram of an auditing system of the present invention; and
Figure 5 is a schematic flow chart of analysis methodology of the present invention.
Referring to Figure 1, there is shown a digital broadcast network 10. The digital broadcast network 10 includes a source of a digital broadcast in the form of server 12 , a multiplexor 30, a modulator 32, a telecommunications medium 26, a splicing device 40 of a local content provider, local content server 14, headend 42 and local cable network 20. An alternative/additional route of the digital broadcast is from the telecommunications medium 26 to a second splicing device 50 of a second local content provider, second local content server 16, second headend 52 and second local cable network 22.
The master digital content provider provides a digital program from master program server 12. The content includes information relating to the timing of inserted material, typically time slots for advertisements/commercials. Timeslots may also be available for local programs. An example timing is shown as 15. The time slots labeled with NM are commercials that must be included. The time slots labeled with NO are commercials that are optional. Time slots with L are available for the local provider to insert their own advertising. The master digital program provider may be contracted to provide the NM time slots and will want to ensure they are delivered to end consumers 24 of the local cable networks 20 and 22. The digital content provided by the server 12 is multiplexed by multiplexor 30, modulated by modulator 32 and then forwarded to digital telecommunications medium 26. This may be transmitted by Asynchronous Transfer Mode, Internet Protocol, etc. The transmitted digital program is received by the local provider splicers 40 and 50.
A local provider (in this case the top (first) one) can use the splicer 40 to insert digital content from the local server 14 into the digital broadcast sent to consumers 24 of the local provider's cable network 20.
Ordinarily the local provider will splice the local content into the master digital program according to the timing information 15. The spliced digital broadcast is then provided to headend 42, which is distributed via cable network 20 to end consumers 24. The splicing of the digital broadcast may be performed, for example, according to the method described in US patent application 2002/0196850 Al . Standards for digital program insertion are described in ANSI/SCTE 30 2001 and ANSI/SCTE 35 2001 (formerly SCTE DVS-253) .
An auditing probe 60 is patched into the digital feed provided to the headend 42 of the cable network 20. Likewise another probe 61 is patched into the digital broadcast provided to the headend 52 of the second cable network 22. Both probes 60 and 61 report via a telecommunications network 26 (which may be the same network as used to transmit the master digital broadcast) to a computer 62. The computer 62 maintains a database 64 of logs and reporting. The probe 60 or 61 receives the spliced digital program (including inserted segments from the local server 14 or 16) . The spliced digital program still includes program insertion information and in particular information relating to the timeslots 15.
Components of the probe 60 are shown in Figure 4. The digital broadcast received by an interface 112 of the probe is usually in the form of an MPEG-2 transport stream 110. The interface 112 provides the digital broadcast to a microprocessor 114 of the probe 60.
The processor 114 in the probe 60 extracts the program insertion information from the spliced digital program and identifies timeslots in which splicing should have occurred, such as the timing of and type of insertion that is allowed. The probe is also able to receive and record the digital broadcast during the timeslot in which the
insertion should occur. Alternatively or as well, the probe can record information on the actual digital content inserted during the timeslot in which an insertion should occur. This may be conducted by capturing still images of the video stream component of the broadcast. The probe 60 conducts a comparison between the information relating to the type of insertion that may be made and the actual insertion that was made. If the insertion does not match that specified in the program insertion information then an alert may be created and sent to computer 62.
Alternatively all of the information obtained by the probe 60 is logged and then sent back to the computer 62 over the network 26 via network interface 116. A comparison between the insertion information and the actual insertion may be conducted by the computer 62 or by a person using the computer 62.
A network interface 118 receives the data sent by the probe 60, which is provided to a microprocessor 120 of the computer 62 which conducts the comparison. Computer 62 has a display 122 for displaying of information to a user and file storage interface (to database 64) and a further local network interface 126.
The probe 60 can also verify that the program insertion information is in the correct format and that the insertion has been conducted in the correct manner.
Referring to Figure 3, the auditing system architecture is shown. An auditing probe 60 has a signal processing interface 100 which taps into the digital broadcast over the network 20. A processing layer 102 conducts the processing of the data received from the digital broadcast and a user interface layer 104 allows a user to receive and interact with the analysis.
Referring to Figure 5, a flowchart of the analysis is shown. The broadcast is received by the network interface 100 and from this the program insertion information is extracted. From this a table assembly process is conducted at 130 to produce assembled splice message tables 132. The tables 132 are parsed by table parsing engine 134 using a syntax description file 136. The resulting information is compared to the schedule file 92 by comparator 138. The comparitor 128 produces a missing event log 140. The table parsing engine 134 also produces a splice event log 142 and a format error report 144. It will be appreciated that the standards relating to digital broadcast splicing may evolve. New messages/descriptors/functions, or changes to existing messages/descriptors/functions may occur. The following examples are intended to reflect current standard and are not intended to limit the nature of the present invention.
ANSI/SCTE 35 2001 specifies that program insertion may be conducted in one of two ways- program splice mode (where all Program Identifiers (PIDs) are spliced) or component splice mode (where specified PIDs are spliced) . To splice a program its PID must be registered within a Program Map Table (PMT) via a registration description section of the program insertion information. A PMT is a master index table that identifies the location of all programs within a digital broadcast stream.
The registration description is usually formatted as follows :
registration descriptor()
{ descriptorjag descriptorjength SCTE_spIice_format_identifier
}
Another part of the program insertion information is a splice information section. The splice information section is usually formatted as follows:
5 splice_info_section() { tablejd section_syntax_indicator privatejndicator o reserved sectionjength protocol_version encrypted_packet encryption_algorithm5 pts_adjustment cwjnde reserved splice_command_type if(splice_command_type == 0x00) o splice_null() if(splice_command_type == 0x04) splice_schedule() if(splice_command_type == 0x05) splice_insert() 5 descriptorjoopjength for(i=0; i<N; i++) splice_descriptor() for(i=0; i<N; i++) alignment_stuffing o if(encrypted_packet) E_CRC_32 CRC_32 }
5 Within the splice information section there are three splicing commands: Null - does nothing; Schedule - indicated a future event; and Insert - is sent once for every event .
0 Also contained in the program insertion information is a splice schedule command. The splice schedule command allows a schedule of splice commands to be conveyed in
advance. The splice schedule command is usually formatted as follows: splice_schedule() { 5 splice_count for (i=0; i<spϋce_count; i++) { splice_event_id splice_event_canceIJndicator reserved0 if (splice_event_cancel_indicator == '0') { out_of_network_indicator program_splice_flag duration lag reserved5 if (program_splice_f lag == '1 ') utc_splice_time if (program_splice_flag == '0') { component_count for{j=0;j<component_count;j++) { o componentjag utc_splice_time } } if (durationjlag) 5 break_duration() unique_program_id avail avail_count }0 } }
If Component Splicing is used, the component_tag contains a list of PIDs to splice.5 A splice insert command is sent at least once for every splice event. The splice insert command is usually formatted as follows:
o splice_insert() { splice_event_id splice_event_cancel_indicator reserved if(splice_event_cancel_indicator == '0') {5 out of network indicator
program_splice_flag durationjlag splicejmmediatejlag reserved if((program_spliceJlag == '1') && (splicejmmediatejlag == '0')) splice Jime() if(program_spliceJlag == '0') { component_count for(i=0;i<component_count;i++) { component Jag if(splicejmmediatejlag == '0') splice Jime() } } if (duration Jlag == '1') break_duration() unique_programJd avail avail count
}
The splice point may be at a specified time or immediate. If Component Splicing is used, the component_tag contains a list of PIDs to apply the splice to. Avail provides an identification for a specific available time slot (an avail) within one unique_j?rogram_id.
Still further information in the program insertion information is a splice time, which specifies the time of the splice event; break duration, which specifies the duration of a commercial break and may be used to give the splicer an indication of the when the break will be over and when the network In Point will occur; and splice descriptor, which allows the addition of new fields to the splice_info_section. The splice descriptor is usually formatted as follows:
splice_descriptor() { splice_descriptorJag splice_descriptorJength identifier
for(i=0; i<N; i++) { private jyte } }
The identifier code allows the addition of private information to be added. Receiving equipment should skip any descriptors with unknown identifiers or unknown descriptor tags.
Referring to Figure 2, a schematic representation of the control of the splicing of a digital broadcast is shown. A master program provider 70 uses a scheduling system 72 to build a second-by-second schedule of the content for that broadcast day. The scheduling system outputs the daily schedule as a file 86 conforming to a variety of vendor specific formats or alternatively in the form of an XML format file. The schedule file 86 is provided to an automation system 74, which controls tape players, servers and other playout equipment to provide content to the transmission system. The schedule file 86 is also provided to a splice message generator 76 which creates the program insertion information. This information is encoded along with the digital content 80 from the server 12 by an encoder 78. The actual broadcast 84 therefore includes the actual master program and splicing information. As described above the broadcast is received by the local provider 90 at the splicing unit 40.
The splicing unit 40 inserts the local content from the server 14 according to the splicing information, which is then multiplexed and provided to the local cable network 20.
A translator 82 takes the proprietary schedule file 86 and translates it into a common format 92 useable by the auditor 60.
In this case auditing probe 60 is in the form of a DVStation manufactured by the Pixelmetrix Corporation configured to operate according to the method of the present invention. It will be appreciated that alternative data processing units programmed to perform the method of the present invention will also be suitable.
Such a unit will have a receiver (digital broadcast interface) , a processor, a network interface 116 and preferably a storage unit (such as a hard disk drive) .
The probe 60 is configured to receive the spliced digital broadcast 88 from the multiplexor (MUX) . The auditor 60 firstly confirms the format/schedule of splice messages actually received at the local broadcaster. Secondly, by utilizing the schedule from the master provider, the auditor 60 can also determine if a scheduled splice message either was not transmitted by the master provider, or was not received by the local operator. This confirmation is further aided by the translation the translator 82 provides to the auditor 66.
The skilled addressee will realise that the present invention provides the following advantages. A program content provider or local operator can audit the insertion of digital content into a master digital broadcast to ensure that the content spliced into the digital program is according to the timeslots available. This can be useful for billing verification or to resolved contract disputes .
Modifications and variations may be made to the present invention without departing from the basic inventive concept. Such modifications are intended to fall within the scope of the present invention, the nature of which is
to be determined from the foregoing description and appended claims .