The present invention relates to embedding identification data into a work. More specifically, the invention relates to embedding personalized identification data into a work before the work is presented to a user.
One of the most significant concerns for a business or person that owns or distributes a creative work (e.g. a movie, a sound recording etc.) involves the ease of unauthorized dissemination of the work over a network. Presently, an unscrupulous person can email a file that contains the movie to another person. Alternatively, an unscrupulous person may post the movie on a web site for others to download.
Businesses that distribute audiovisual works or sound recordings lose millions of dollars on an annual basis due to unauthorized copying or dissemination of these works. It is therefore desirable to have a mechanism that addresses this problem.
The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein:
Techniques of the invention help to deter or detect the unauthorized copying or dissemination of a creative work such as a movie. This is accomplished, in part, by embedding personalized identification data into the work before it is sent over a communication link between a distributor of the work and a receiver. A work is created when data is fixed in a copy such as a storage medium. Additionally, a work includes an audiovisual work (e.g., video, movie, cartoon, computer game), an audio work (e.g., sound recording), and a visual work (e.g., picture).
Another embodiment of the invention involves personalized identification data that is automatically embedded into work after the receiver obtains the work from the distributor. By embedding personalized identification data into a work, unauthorized copying or dissemination of the work may be tracked to the individual who received the authorized copy of the work.
Presented below is a description of systems that are used to generate and embed personalized identification data into a work before sending the work over a wireless or a wired communication link relative to
The distributor 110 owns or is able to license at least one copy of a work to a user. The scope of the definition of the distributor 110 includes a network provider 140. The network provider 140 communicates services (e.g., cable services, video-on-demand services, etc.) or products to a receiving device 180 over a communications link 160. The network provider 140 includes cable companies, telephone companies, Internet service providers, satellite companies, or other suitable businesses. The network provider 140 includes communication device 119, the server 120, and the database 125. The communication device 122 is a head-end, a satellite, or other like device capable of communicating a work to the receiver 180. In one embodiment, the network provider 140 is configured to receive data over the communication link 160 that is sent from the receiver 180. Alternatively, the network provider 140 polls the receiver 180 for this data. Polling for data is a form of requesting or checking for information from a device such as the receiver 180.
The data that may be received from the receiver 180 may relate to the receiver 180 itself or to a user of receiver 180. This data is then used to generate personalized identification data that is embedded into a work. Generating the personalized identification data may involve taking a portion or all of the data that is obtained from the receiver 180.
The personalized identification data then is embedded into a work as a watermark or through another suitable mark. One method of generating and embedding personalized identification data into a work is described relative to
The server 120 controls various operations associated with transferring a work to the receiver 180. For example, the server 120 is configured to access a database 125 to link the correct billing information (e.g., name of the consumer, billing address, cost of services for a month, etc.) of a user of the receiver 180 in order to properly bill (or sell) a work that is transferred to the receiver 180. In one embodiment, the server 120 may also store billing information in the database 125 such as whether the work was sold or rented to a user of the receiver 180. Additionally, the server 120 may generate and embed personalized identification data into a work and then transfer the work to the network provider 140.
The network provider 140 transfers a work over a communication link 160 from distributor 110 to a receiver 180. The communication link 160 may be an analog cable network 105 illustrated in
Alternatively, the work may be transferred over a digital cable network 145 and channels as shown in
The POD card could be configured to store personalized identification data associated with a user or receiver 180. The POD module 158 communicates this data as well as other data with the distributor 110 using an in-band channel 164-1 and/or an out-of-band (OOB) channel 164-2 over the cable 164 to a distributor 110. Alternatively, the POD module 158 passes data to the devices such as an STB 150-1, an integrated TV 150-2, a receiver 150-3, or a host 150-4. In this scenario, these devices are able to generate and embed personalized identification data into a work before the work is presented to a user, as described relative to
The STBs 150-0 and 150-1 are electronic devices that are connected to a communication channel and produce output on a conventional television screen. The STB 150-1 is commonly used to receive and decode digital television broadcasts and to interface with a network such as the Internet through the user's television or monitor 154 instead of a PC. The STB 150-1 fall into several categories, from the simplest that receive and unscramble incoming television signals to the more complex that function as multimedia desktop computers that can run a variety of advanced services such videoconferencing, home networking, IP telephony, VOD, games, and high-speed Internet TV services.
The integrated TV 150-2 includes a STB. The STB operates in the same fashion as the STB 150-1. Host 150-4 is an STB or a receiver configured to store and to execute an application such as the OpenCable™ Application Platform implementation.
The audio decoder 420 connects the audio data embedded in an MPEG-2 transport stream packets passed by the TS decoder 450 and outputs the connected data after digital-analog conversion to the speaker 507. The speaker 507 outputs audio signals passed by the audio decoder 420.
The video decoder 430 connects the video data embedded in the MPEG-2 transport stream packets passed by the TS decoder 450 and outputs the data after digital-analog conversion to the display 440. The display 440 is used to output video signals passed by the video decoder 430 and display messages specified by the CPU 405. The display 440 shows the personalized identification data to a user of a receiver 400. The display 440 may be, for example, a plasma display, a field emission display (FED), a cathode ray tube (CRT), or a liquid crystal display (LCD).
The secondary storage unit 510 includes, for example, flash memory and a hard disk, in which data, works, and programs specified by a CPU 405 are saved and/or erased. Data such as personalized identification data and programs saved in the secondary storage unit 510 are referred to by the CPU 405, and are kept in the secondary storage unit 510 after the receiver 400 is powered off. The primary storage unit 500 includes, for example, read access memory (RAM), in which data and programs specified by the CPU 405 are temporarily saved and/or erased.
The ROM 520 is a non-rewritable memory device including, for example, ROM, CD-ROM, and DVD and stores programs executed by CPU 405. The input unit 530 includes, for example, a front panel and/or a remote control that accepts user input.
The VOD 610 includes the playback unit 620, the recording unit 630 and the control unit 640. The playback unit 620 allows the VOD 610 to be viewed on the display 440. The recording unit 630 allows the VOD 610 to be recorded onto a separate recording medium such as a CD, a DVD, or video. The control unit 640 controls the functionality associated with the playback unit 620 and the record unit 630. The control unit 640 also determines when to generate and to embed personalized identification data into a work. Once the control unit 640 determines that the personalized identification data is to be generated, the control unit 640 embeds the personalized identification data into the work using conventional techniques. Embedding the personalized identification data into a work occurs before the work is presented to a user. In one embodiment, the control unit 640 does not activate the playback unit 620 until the personalized identification data is embedded into the work.
The OS 645 includes the kernel 660 and the library 670. The OS 645 is a subprogram such as Linux that is booted up by the CPU. In this embodiment, the kernel 660 of OS 645 executes the control unit 640 and JavaVM 1203 as subprograms, while the library 670 provides these subprograms with multiple functions for controlling the components of the receiver 400.
The service manager 750 sends a channel identifier to the AM 700 within the Java library 680 and asks for data broadcast playback, which means extracting a Java program included in an MPEG-2 transport stream and making JavaVM 760 execute it. The JAVA library 680 includes the JMF 690, the AM 700, the tuner 710, the CA 720, the DVD library 730 and the POD library 740.
The Java virtual machine (JavaVM) 760 then sequentially analyzes and executes programs written in the Java™ language. A Java virtual machine is an interpreter to execute this byte code. The JavaVM 760 is started by the kernel 660 which specifies a Java program that is to be executed. In this embodiment, the kernel 660 specifies the service manager 750 as a Java program to be executed.
The service manager 750 then sends the channel identifier to the tuner 710 contained in the Java library 680 and asks for tuning. The tuner 710 gets tuning information by referring to channel information stored in the secondary storage unit 500. The tuner 710 sends the tuning information through the library 670 in the OS 645 to the QAM demodulator 470, which demodulates signals sent from the network provider 140 in accordance with this tuning information and sends the demodulated signals to POD module 158.
The service manager 750 requests that the CA 720 to descramble the signals. The CA 720 gives information necessary for descrambling through the library 670 in the OS 645 to the POD 540, which descrambles the signals given by the QAM demodulator 470 according to the given information and passes the descrambled signals to the TS decoder 450.
The service manager 750 then provides the JMF 690 with the channel identifier, asking for the playback of audio and video. The JMF 690 specifies the packet ID and the CPU 405 to the TS decoder 450 through the library 670 in the OS 650 in order to get a PAT packet. The TS decoder 450 performs filtering using the packet ID and passes the PAT packets to CPU 405. The JMF 690 then collects the PAT packets.
The JMF 690 provides the TS decoder 450 through the library 670 of the OS 645 with a set of the audio packet ID and the audio decoder 506 as an output destination as well as the video packet ID and the video decoder 508 as an output destination. The TS decoder 450 performs filtering according to the provided packet IDs and output destinations. In this example, packets are sent to the audio decoder 506, and other packets to the video decoder 508. The audio decoder 506 converts those packets from digital to analog and plays audio using the speaker 507. The video decoder 508 converts the packets from digital to analog and displays video on the display 509.
Referring back to
Connected to recorder 190 is a server 195. The server 195 controls various devices connected to a network such as a local area network (LAN). The server 195 controls software, access to peripherals and other parts of the network 185.
A content provider 230 is any party that provides a completed work to another party. For example, a video or DVD supplier such as Blockbuster is a content provider 230. The VOD provider 240 may be nCUBE, Concurrent, or other suitable business.
In addition to the network illustrated in
The first and the second clients 310, 313 are computers (e.g., laptop computer, a personal digital assistant, a cellular phone or other like device) that are able to perform either wireless or wired communication to connect with the network 302. At least one of the first and the second clients 310, 313 generates and embeds the personalized identification data into a work before sending the work to the other client.
There are numerous methods that may be used to embed personalized identification data into a visual media such as image, video, cartoon, cartoon character, or game etc. One such process of hiding identification data into visual media involves several operations. Identification data includes a watermark signal and other similar types of signals that identify the contents of the image file, the owner, and other such information (e.g., copyright information). The process includes a frequency domain masking operation, an edge-block detection operation, and an operation for identifying blocks adjacent to smooth region. These process operations analyze an image data with respect to three different block region types: a smooth block region, a texture block region, and an edge block region.
A smooth block region is defined as a uniform region with relatively low DCT coefficient values. A non-smooth block region is divided into a texture block region and an edge block region.
Undesirable artifacts are more likely to be revealed in an edge block than in a texture block due to the random artifacts tending to be disguised by a random structured pattern. A visual hiding process then attenuates preliminary embedability and just-noticeable-difference (JND) values via a process for each block which are computed during the aforementioned three operations. Embedability involves a coefficient able to be changed by a certain amount that is large enough to carry hidden data without causing visible artifacts, and the term just-noticeable difference (JND) is the amount of changes performed on a coefficient which is just on the level to be noticed. The embedability and JND values for each block are computed by the preliminary operation, i.e., the frequency mask operation which does not consider the ringing and/or other artifacts depending on the type of block region and are used to hide identification data.
The identification data that is personalized may be embedded in any location within the work. Typically, however, the personalized identification data is embedded at the beginning of the work. This ensures that the user who views the work sees a personalized screen.
At operation 820, the audiovisual work is sent from the distributor to the receiver. In another embodiment, the personalized identification data is embedded into the work before being presented to a user of a receiver, a television, a computer, stereo, player, or other suitable device. In particular, the work is transferred to, for example, to a receiver and then the personalized identification data is automatically embedded into the work.
It will be appreciated that more or fewer processes may be incorporated into the method illustrated in