Apparatus and methods for indicating the identity of a device for receiving and retransmitting programming information. The device, which may be a set-top box or suitable communication network receiver, may be configured to receive a broadcast signal from an antenna, which may be a satellite, a cable, an electronic communication network or any other suitable source. The programming information may be any type of audio or video data, or any other suitable type of data. The broadcast signal may have multiple channels that include the programming information. Each of the channels may include a distinct watermark. The device may splice between the channels to generate a signature that the device may embed in an output data stream that may be used to display or perform the programming information.
|
1. A method for identifying a communication network receiver, the method comprising:
receiving at the communication network receiver, over a network, a transport stream, the transport stream comprising a first data stream and a second data stream, the first data stream including a sequence of frames having a first watermark, and the second data stream including the sequence of frames having a second watermark;
identifying a location of the communication network receiver;
generating an identifier for the communication network receiver by outputting, to a display or a recorder, a modified sequence of frames selected from the first data stream and the second data stream that is based on:
the first watermark;
the second watermark;
and the location; and
wherein generating the identifier comprises, before the outputting, generating the modified sequence of frames by selecting frames from the transport stream by splicing between a first packet identifier (“PID”) and a second pid, the first and second pids corresponding to the first and second data streams, respectively.
21. A method for encoding a signature in a new data frame, the method comprising:
receiving a first data stream and a second data stream at a network communication receiver, the first data stream and the second data stream each comprising a contiguous sequence of programming information;
splicing between the first data stream and the second data stream to select a first watermark corresponding to the first data stream and a second watermark corresponding to the second data stream;
identifying a geographic location of the network communication receiver
generating the new data frame including the first watermark, the second watermark and the geographic location in the new data frame to form the signature; and
combining a first portion from a first frame of the first data stream and a second portion of a second data from of the second data stream to generate the new data frame, wherein the first portion is selected from the first frame based on a first packet identifier associated with the first data stream and the second portion is selected from the second frame based on a second packet identifier associated with the second data stream.
25. An apparatus for applying a signature to an output signal of a communication network receiver, the apparatus comprising:
the communication network receiver configured to receive, from a broadcasting station, a first data stream and a second data stream, the first data stream and the second data stream having a duplicate sequence of programming information, the first data stream including frames having a first watermark, and the second data stream including frames having a second watermark; and
an output module configured to output the output signal, the output module being operable to generate a sequence of frames by splicing between a first packet identifier (“PID”) and a second pid, the first and second pids corresponding to the first and second data streams, respectively, the output signal including the sequence of frames selected from the first data stream and the second data stream, the sequence of frames including a signature sequence that is based on:
the first watermark;
the second watermark; and
a location of the communication network receiver;
wherein the signature sequence identifies the communication network receiver and the location of the communication network receiver.
12. A method for identifying a communication network receiver for receiving and outputting programming information, the method comprising:
receiving a first data stream, from a broadcasting station, at the communication network receiver, the first data stream including the programming information, the first data stream including a first frame having a first watermark;
identifying a location of the communication network receiver;
receiving a second data stream, from the broadcasting station, at the communication network receiver, the second data stream including the programming information, the second data stream including the first frame having a second watermark; and
transmitting to a display or a recorder a second frame that includes the first watermark, the second watermark and the location;
wherein the first and second frames correspond to the same programming information and before the transmitting to a display device or a recorder, selecting for inclusion in the second frame, portions of the first frame having the first watermark and the second frame having a second water mark by splicing between a first packet identifier (“PID”) and a second pid, the first and second pids corresponding to the first and second watermarks, respectively.
8. The method of
10. The method of
11. The method of
13. The method of
14. The method of
15. The method of
16. The method of
17. The method of
19. The method of
22. The method of
designating for a first portion of the new frame: (a) the first watermark, and (b) the contiguous sequence of programming information that, in the first data stream, is adjacent the first watermark; and
designating for a second portion of the frame: (a) the second watermark, and (b) the contiguous sequence of programming information that, in the second data stream, is adjacent the second watermark.
23. The method of
24. The method of
26. The apparatus of
27. The apparatus of
|
The present invention relates generally to programming information security.
Content providers have been increasingly concerned regarding unauthorized retransmission and reproduction of their video content. In some instances, the content is pirated, posted on the Internet, or otherwise misappropriated. Some content providers have been evaluating methods of using set-top boxes to create video watermarks that uniquely identify the set-top box as a device through which content passed before the content was misappropriated.
Typically, creating a set-top-box-unique watermark requires access to decoded video stream. However, this poses several challenges. A first is that high video data commensurate with high-density (“HD”) video programming consumes a massive amount of memory and is transmitted and processed at a high rate. Processing such data in real time using an embedded CPU on a set-top box consumes valuable processor cycles, and may interfere with content delivery to an output device, such as a television monitor. A second is that many content providers do not allow a set-top CPU to access video data in decrypted form (compressed or uncompressed).
Another method being analyzed by various companies is creating a watermark in the compressed video stream. This overcomes the CPU usage problems with the conventional watermark technique, but does not help prevent or deter unauthorized retransmission or reproduction.
It would be desirable, therefore, to provide apparatus and methods for deterring individuals from engaging in unauthorized retransmission or reproduction of video stream content.
A system and/or method for using transport stream splicing to support watermarking of programming information, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
The objects and advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
Apparatus and methods for indicating the identity of a device for receiving and retransmitting programming information are provided. The device, which may be a set-top box or suitable communication network receiver, may be configured to receive a broadcast signal from an antenna, which may be a satellite, a cable, an electronic communication network or any other suitable source. The programming information may be any type of audio or video data, or any other suitable type of data.
The device may also be configured to decompress, decode and output the programming information in a suitable format. For example, the device may output the programming information to a television, a personal video recorder or an electronic communication network. The apparatus and methods may encode the identity of the device into the output. A broadcasting station that transmits to the programming information to the device may prearrange the programming information in such a way that the apparatus and methods may encode the output without requiring unrestricted access to decrypted programming information.
The device identity may be represented by a serial number, a signature based on the serial number, or any other suitable identification information.
A data stream will be discussed below in the context of satellite television broadcasting for the purpose of illustration. For example, a data stream may be a packetized elementary stream that corresponds to a portion of a television show. Packetized elementary streams are discussed in International Standard No. 13818, which is available from the ISO/IEC (International Standards Organization and International Electrotechnical Commission, both located in Geneva, Switzerland), and is hereby incorporated by reference herein in its entirety.
The programming information may be prearranged by a broadcaster by duplicating a data stream that includes the programming information. One version of the data stream may have frames that are encoded with a first watermark. Another version of the data stream may have frames that are encoded with another watermark. Frames of additional versions may be encoded with corresponding watermarks. The versions are assigned packet identifiers (“PID”s) and are multiplexed into a data transfer stream, which may be a data transport stream. The data transport stream is then broadcast to the device and, perhaps, other receivers. Such a data transport stream may be structured in accordance with aforementioned International Standard No. 13818, which sets forth standards for MPEG-2 TS communications.
Supporting information also may be broadcast to the device. The supporting information may include, for example, splicing information, watermark encoding information (indicating which watermark (such as a “1” or a “0”) is associated with each watermarked PID, and the location of content frames within the data stream. The supporting information may include any of the parameters, or information based on the parameters that may be part of an MPEG-2 TS adaptation field (defined by International Standard No. 13818, section 2.4.3.4, e.g.) and may be used to instruct the set-top box how to switch back and forth between packets associated with different PIDs to properly demultiplex the transport stream and thus deliver the programming information to a display device, such as a television.
The device may use the supporting information to splice between the one or more versions of the programming information to generate an output data stream that includes a signature that is made up of the different signatures that are present, respectively, in the different versions. The device may use one, two or more different versions to compose a signature. The signature may be based on the device's identity.
The frequency with which a signature may be encoded into an output data stream may be selected based upon factors such as content value, available bandwidth, and time. In some embodiments of the invention, the signature in the output data stream may be preceded and/or followed by a training sequence that may be used to signify the start and/or end of the device unique identifier (e.g., a set-top box serial number). Some embodiments of the invention may be compatible with numerous varieties of set-top boxes that support MPEG-2 TS splicing, including those that support MPEG-2 TS splicing based on a set-top software upgrade. Those embodiments may be backward-compatible with numerous combinations of set-top boxes and head-ends. Those embodiments may also be compatible with numerous forms of video compression and security.
Any suitable watermark detector may be used to determine the identity of a device that created a rebroadcast or reproduction. An owner or controller of the programming information may thereby identify the device as the source of a rebroadcast or reproduction of the programming information and take suitable steps to prevent further rebroadcast or reproduction or to seek compensation for past rebroadcast or reproduction.
Countermeasures to circumvent detection of unauthorized activities involving the device may be overcome by modifying the unique identifier of device. For example, instead of encoding the device serial number into an output data stream, an encrypted version of the device serial number may be encoded into the output data stream. Any suitable encryption scheme may be used. The encryption scheme may be changed as appropriate to prevent detection of the data transport stream encoding.
In some embodiments of the invention, the device may receive or compute geographic location information. The geographic information may include a zip code, geodetic coordinates, range and township designations or any other suitable geographic information. The device may encode the geographic information into the output data stream.
By encoding the unique identifier, the geographic information, or both, into the output data stream, the device can be identified in connection with any retransmission or reproduction of the programming information. Such identification may deter individuals from engaging in unauthorized retransmission and reproduction, because a content owner may be able to identify an individual based on the watermark.
As will be appreciated by one of skill in the art upon reading the following disclosure, various aspects described herein may be embodied as a method, a data processing system, or a computer program product. Accordingly, those aspects may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, such aspects may take the form of a computer program product stored by one or more computer-readable storage media having computer-readable program code, or instructions, embodied in or on the storage media. Any suitable computer readable storage media may be utilized, including hard disks, CD-ROMs, optical storage devices, magnetic storage devices, and/or any combination thereof.
In addition, various signals representing data or events as described herein may be transferred between a source and a destination in the form of electromagnetic waves traveling through signal-conducting media such as metal wires, optical fibers, and/or wireless transmission media (e.g., air and/or space).
Antenna 118 may transmit signal 106 to device 104. Device 104 may process signal 106 and, following processing, may output a signal based on signal 106 to output device 124, which may be any suitable output device, such as a visual or audio output device, such as a display screen or speaker. Users of output device 124 receive the benefit of signal 106 when they view or hear output from output device 124.
The geographic location of site 114 may be detected by identifying the location of device 104 using a location-detecting module in, or in communication with, device 104. The location-detecting module may communicate, via antenna 126, for example, with one or more beacons such as one or more of satellites 128 and 130, which are representative of other beacons that may be accessible and may be used to calculate the actual position of device 104 using known methods, such as those used by devices that utilize the Global Positioning System.
In some embodiments, device 104 may transmit to broadcast station 102, via antenna 118, the geographic location of device 104. If appropriate, broadcast station 102 may transmit disable signal 132 that may instruct device 104 to disable a function of device 104 and thereby prevent a user at site 114 from receiving the benefit at output device 124 from signal 106. The disable signal may be sent, for example, based on unauthorized reproduction or retransmission of signal 106 by a user of device 104 or for any other suitable reason.
Device 104 may include position identifier module 314, which may be in communication with antenna 126 (shown also in
I/O module 316 may be in communication with port 318, which may receive signal 106 from antenna 118 (shown in
I/O module 316 may be in communication with port 324, which may exchange content or control data over an Ethernet-based communication network or any other suitable communication network. I/O module 316 may exchange content or control data with a wireless transceiver (not shown) via port 326. The wireless transceiver may operate using Bluetooth, IR, or any other suitable protocols. The content may be any form of audio, video or text content. The control data may include program guide information, program selections, control data for controlling the functionality, or for disabling, device 104, or any other suitable data. I/O module 316 may be in communication with port 328 to output information to output device 124, thereby delivering a benefit of signal 106 to a user of device 104.
Control module 329 may be present to interface between I/O module 316 and other modules present in device 104.
Device 104 may operate in a networked environment supporting connections to one or more remote computers (not shown). The network connections may include a local area network (not shown) and a wide area network (not shown), but may also include other networks. It will be appreciated that the network connections shown are illustrative and other means of establishing a communications link between the computers may be used. The existence of any of various well-known protocols such as TCP/IP, Ethernet, FTP, HTTP and the like is presumed, and device 104 can be operated as a server in a client-server configuration to permit a user to retrieve web pages from device 104. Any of various conventional web browsers can be used to display and manipulate data on web pages.
Device 104 may support the implementation of computer executable instructions for invoking user functionality related to communication, such as email, short message service (“SMS”), and voice input and speech recognition applications.
Step 401 illustrates a video frame. Step 402 shows applying a first watermark, watermark A, to the video frame of step 401. Step 404 shows compressing the frame and packetizing the frame in a first PID, PID X, for transmission. Step 406 shows applying a second watermark, watermark B, to the video frame of step 401. Step 408 shows compressing the frame and packetizing the frame in a second PID, PID Y, for transmission. Preferably, version 1 and version 2 include identical programming information and/or other non-watermark data.
Step 410 shows multiplexing version 1 and version 2 into a data transport stream. Thereafter, the data transport stream may be broadcast, as shown in step 412.
Step 502 shows receiving the data transport stream, preferably from the head-end or other suitable data transport stream provider. Step 504 shows splicing between PID X and PID Y such that watermarks A and B express an identifier that identifies the receiving device. Step 506 shows decoding the spliced stream bearing the identifier using the device. Step 508 shows outputting the decoded stream of step 506 to a display device or to a recording device.
Step 610 shows applying watermark B to all or some version 2 portions. Step 612 shows designating PID Y for version 2.
Step 610 shows multiplexing version 1 and version 2 streams into a data transport stream. The data transport stream is broadcast in step 612.
Step 702 shows receiving the data transport stream using a device. Step 704 shows identifying a frame that is for marking. Step 706 shows selecting portions of the identified frame from PID X and PID Y and combining the selected portions into a new frame that expresses an identifier that identifies the receiving device. Step 708 shows decoding the spliced stream bearing the identifier using the device. Step 710 shows outputting the decoded stream of step 708 to a display device or to a recording device. The new packetized elementary stream preferably bears the identifier. The new packetized elementary stream is preferably output to a display device or to a recording device.
The head-end preferably creates multiple versions 1004 (for transmission as PID X) and 1006 (for transmission as PID Y) of video frame 1002. The video frames in each PID are preferably broken into multiple portions. Each portion is encoded with a watermarked value—e.g., 1 or 0. These sections and frames are then multiplexed into a transport stream with splicing information for each portion of the frame, as shown in box 1008.
Thus, apparatus and methods for indicating the identity of a device for receiving and retransmitting programming information have been provided.
Aspects of the invention have been described in terms of illustrative embodiments thereof. A person having ordinary skill in the art will appreciate that numerous additional embodiments, modifications, and variations may exist that remain within the scope and spirit of the appended claims. For example, one of ordinary skill in the art will appreciate that the steps illustrated in the figures may be performed in other than the recited order and that one or more steps illustrated may be optional. The methods and systems of the above-referenced embodiments may also include other additional elements, steps, computer-executable instructions, or computer-readable data structures. In this regard, other embodiments are disclosed herein as well that can be partially or wholly implemented on a computer-readable medium, for example, by storing computer-executable instructions or modules or by utilizing computer-readable data structures.
Patent | Priority | Assignee | Title |
10284463, | Sep 23 2013 | Calix, Inc. | Distributed system and method for flow identification in an access network |
9240938, | Sep 23 2013 | Calix, Inc. | Distributed system and method for flow identification in an access network |
9319293, | Jul 31 2013 | CALIX, INC | Methods and apparatuses for network flow analysis and control |
9391903, | Jul 15 2013 | CALIX, INC | Methods and apparatuses for distributed packet flow control |
9516359, | Apr 07 2015 | DivX CF Holdings LLC; DIVX, LLC | Session based watermarking of media content using encrypted content streams |
9680760, | Jul 16 2013 | Cisco Technology, Inc. | Adaptive marking for WRED with intra-flow packet priorities in network queues |
9906821, | Aug 23 2016 | Cisco Technology, Inc. | Packet reordering system |
Patent | Priority | Assignee | Title |
5621793, | May 05 1995 | PHILIP A RUBIN AND ASSOCIATES, INC | TV set top box using GPS |
5982436, | Mar 28 1997 | Pendragon Wireless LLC | Method for seamless splicing in a video encoder |
6430301, | Aug 30 2000 | VOBILE INC | Formation and analysis of signals with common and transaction watermarks |
20020095582, | |||
20020162118, | |||
20050254364, | |||
20060110005, | |||
20070250901, | |||
20070291978, | |||
20090136081, | |||
20090150676, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 05 2008 | Broadcom Corporation | (assignment on the face of the patent) | / | |||
Mar 05 2008 | KELLLERMAN, MARCUS | Broadcom Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020607 | /0567 | |
Feb 01 2016 | Broadcom Corporation | BANK OF AMERICA, N A , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 037806 | /0001 | |
Jan 19 2017 | BANK OF AMERICA, N A , AS COLLATERAL AGENT | Broadcom Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS | 041712 | /0001 | |
Jan 20 2017 | Broadcom Corporation | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041706 | /0001 | |
May 09 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | MERGER SEE DOCUMENT FOR DETAILS | 047230 | /0910 | |
Sep 05 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384 ASSIGNOR S HEREBY CONFIRMS THE MERGER | 049248 | /0558 | |
Sep 05 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910 ASSIGNOR S HEREBY CONFIRMS THE MERGER | 047351 | /0384 |
Date | Maintenance Fee Events |
Mar 30 2018 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 25 2022 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Sep 30 2017 | 4 years fee payment window open |
Mar 30 2018 | 6 months grace period start (w surcharge) |
Sep 30 2018 | patent expiry (for year 4) |
Sep 30 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 30 2021 | 8 years fee payment window open |
Mar 30 2022 | 6 months grace period start (w surcharge) |
Sep 30 2022 | patent expiry (for year 8) |
Sep 30 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 30 2025 | 12 years fee payment window open |
Mar 30 2026 | 6 months grace period start (w surcharge) |
Sep 30 2026 | patent expiry (for year 12) |
Sep 30 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |