U.S. patent application number 09/921619 was filed with the patent office on 2002-05-02 for method and system for program guide delivery.
Invention is credited to Leech, Douglas K., Perry, Stephen C., Weaver, J. Dewey III.
Application Number | 20020053082 09/921619 |
Document ID | / |
Family ID | 22833750 |
Filed Date | 2002-05-02 |
United States Patent
Application |
20020053082 |
Kind Code |
A1 |
Weaver, J. Dewey III ; et
al. |
May 2, 2002 |
Method and system for program guide delivery
Abstract
Systems and methods are provided for controlling the content
information sent to a user. A database includes content information
and user subscription information. The content information is
organized by a server for each user based on the user subscription
information. The server is in communication with a user terminal
and sends the content information to the user terminal.
Inventors: |
Weaver, J. Dewey III;
(Raleigh, NC) ; Leech, Douglas K.; (Raleigh,
NC) ; Perry, Stephen C.; (Raleigh, NC) |
Correspondence
Address: |
KILPATRICK STOCKTON LLP
3737 GLENWOOD AVENUE
SUITE 400
RALEIGH
NC
27612
US
|
Family ID: |
22833750 |
Appl. No.: |
09/921619 |
Filed: |
August 3, 2001 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60222804 |
Aug 3, 2000 |
|
|
|
Current U.S.
Class: |
725/46 ;
348/E5.004; 348/E5.006; 348/E5.105; 348/E7.056; 348/E7.063;
386/E5.001; 725/44 |
Current CPC
Class: |
H04N 21/4405 20130101;
H04L 9/40 20220501; H04L 65/70 20220501; H04N 5/782 20130101; H04L
65/1101 20220501; H04L 67/306 20130101; H04L 69/329 20130101; H04L
2463/101 20130101; H04N 21/4622 20130101; H04L 63/101 20130101;
H04N 21/4781 20130101; H04L 67/01 20220501; H04L 63/0876 20130101;
H04N 21/25866 20130101; H04L 12/189 20130101; H04L 63/08 20130101;
H04N 21/26283 20130101; H04N 21/8586 20130101; H04N 21/4532
20130101; H04N 5/781 20130101; H04N 21/8166 20130101; H04N 7/1675
20130101; H04N 21/4334 20130101; H04L 63/10 20130101; H04L 12/1859
20130101; H04L 67/62 20220501; H04N 21/25808 20130101; H04N 21/6125
20130101; H04L 63/0428 20130101; H04N 21/43853 20130101; H04N
21/4627 20130101; H04N 21/454 20130101; H04N 21/6581 20130101; H04N
21/4516 20130101; H04N 5/76 20130101; H04L 65/762 20220501; H04N
21/4408 20130101; H04N 21/63345 20130101; H04L 67/75 20220501; H04L
12/1836 20130101; H04N 21/252 20130101; H04L 69/22 20130101; H04N
21/47 20130101; H04N 21/6543 20130101; H04N 7/165 20130101 |
Class at
Publication: |
725/46 ;
725/44 |
International
Class: |
H04N 005/445; G06F
013/00 |
Claims
1. A method for delivering a personal television program guide,
comprising: establishing a database on a first server, wherein the
database includes content information and user subscription
information for one or more users; organizing the content
information for each user based on the user subscription
information; and sending the content information to the user at a
user terminal.
2. The method of claim 1, further comprising: requesting updated
content information from a second server.
3. The method of claim 2, wherein the updated content information
is requested periodically.
4. The method of claim 1, further comprising: receiving a user
request for content information.
5. The method of claim 1, wherein the content information includes
links.
6. The method of claim 1, further comprising: receiving criteria
from a user terminal; and searching the database for content
information matching the criteria.
7. The method of claim 1, wherein the user subscription information
includes access permission indications to the content information,
wherein the access permission indications include either an access
granted flag or an access denied flag; further comprising: sending
the content information to a user terminal if the user subscription
information has an access granted flag to the content
information.
8. The method of claim 7, further comprising: sending content to a
user if the user subscription information has an access granted
flag.
9. The method of claim 7, wherein the access permission indications
include a tag.
10. The method of claim 7, wherein an access granted flag includes
the user serial number.
11. The method of claim 7, further comprising: sending content to a
user; and displaying the content at the user terminal if the user
subscription information includes an access granted flag.
12. A system for delivering a personal television program guide,
comprising: a first server; a database in communication with said
first server, wherein said database includes content information
and user subscription information; and wherein said server is
configured to organize the content information for each user based
on the user subscription information and the content information to
a user at a user terminal.
13. The system of claim 12 wherein said first server is further
configured to request updated content information from a second
server.
14. The system of claim 13, wherein said first server is configured
to request updated content information from a second server
periodically.
15. The system of claim 12, wherein said server is further
configured receive a user request for content information.
16. The system of claim 12, wherein said server is further
configured to receive criteria from a user terminal and search the
database for content information matching the criteria.
17. The system of claim 12, wherein the user subscription
information further comprises: access permission indications to the
content information, wherein the access permission indications
include either an access granted flag or an access denied flag; and
wherein said first server is further configured to send the content
information to a user if the user subscription information has an
access granted flag to the content information.
18. The system of claim 17, wherein said first server is further
configured to send content to a user terminal if the user
subscription information has an access granted flag.
19. The system of claim 17, wherein the access permission
indications include a tag.
20. The system of claim 17, wherein an access granted flag includes
the user serial number.
21. The system of claim 17, wherein the first server is further
configured to send content to a user terminal and display the
content at the user terminal if the user subscription information
includes an access granted flag.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to and claims priority to U.S.
Provisional Application No. 60/222,804, and entitled, "Universal
Digital Tuner System for Personal Computers." This application is
related to two applications filed simultaneously herewith entitled,
"Method and System for Encrypting and Storing Content to a User,"
and "Method and System for Controlling Content to a User." The
above applications are hereby incorporated by reference herein in
their entirety.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The invention relates to a system and method for delivering
content information to a user.
[0004] 2. Description of the Background
[0005] Media content is sent to users in a variety of methods. For
example, terrestrial television signals are broadcast through the
airwaves using a radio frequency signal, which is received by a
user with a receiver connected to a television display. A
terrestrial television receiver includes an antenna for receiving
the signal, which must be placed in a position where it can receive
the signals. Television reception from a radio frequency signal is
often poor if the user is located far from the signal broadcast or
if the user has difficulty placing the antenna in the correct
position to receive the signal. Radio frequency signals received by
a television set are also sent to all television receivers in a
geographic area, and therefore it is not possible to control which
users have access to specific media content. It is also difficult
to monitor what content users are viewing.
[0006] Cable broadcasts employ a path to a user terminal without
many of the interference of terrestrial television. Satellite
offers a digital representation of a signal with more of a
line-of-sight path to the user terminal. As used herein, a "user
terminal" is an electronic device for receiving media content, such
as a television, personal computer ("PC") or set top box. Cable and
satellite broadcasters are also able control which users have
access to specific content. Cable and satellite broadcast signals
may be encrypted, or "scrambled," such that only users with a
de-encryption code or "key" may view the content.
[0007] By controlling which users are allowed to view content,
cable and satellite broadcasters are able to charge users based on
the content that the viewer wishes to receive. For example, cable
and satellite providers often charge a set periodic fee, normally a
monthly fee, for a content package. Each content package contains a
specified number of channels to which the user is given access for
a set fee. In addition, cable and satellite broadcasters can charge
users to see a single program. In other words, if a user wants to
see a specific movie, he or she can order the movie on a
"pay-per-view" basis.
[0008] Such present day conventional televisions use, for example,
National Television Standards Committee ("NTSC") or Phase
Alternating Line ("PAL"), system signals, and provide fairly good
color pictures if receiving conditions are good. Such pictures,
however, do not come close to having the sharpness, realism and
visual impact as might be found, for example, in a motion picture
film or a magazine-quality picture. To provide dramatically better
television picture quality, experimental studies have been
performed and components have been developed in an attempt to
provide digital television pictures that approach the quality of a
35-millimeter color film. Such high-resolution television had been
deemed especially advantageous for use, for example, in wide-screen
theater and home television projection, and for theatrical motion
picture production and projection using magnetic tape instead of
film.
[0009] Several High-definition Digital Television, i.e., "HDTV"
systems have already been proposed, the parameters of which are
generally disclosed in a number of articles. In such systems, the
lines per frame range from 1023 to 2125, the aspect ratios (picture
width to picture height) range from 4:3 to 16:9 and luminance
bandwidths range from 20 to 50 MHz. Recommendations have been made
that an HDTV signal should be capable of standards conversions that
would provide service to NTSC, PAL and Sequential Color with Memory
("SECAM") services.
[0010] Other techniques labeled as either high-definition or
high-resolution television systems have modified the transmission
of the conventional television signal to, for example, provide
increased horizontal line resolution or better luminance resolution
with less objectionable sub-carrier pattern.
[0011] Yet still another technique for improving the horizontal and
vertical definition and reducing low frequency flicker in a
conventional picture involves using digital signal processing
technologies. Offset sampling is used to improve horizontal
definition, and a double-rate stored image readout at the receiver
selects the appropriate signal portions to subjectively increase
the vertical definition and reduce low frequency (25 Hz)
flicker.
[0012] Because of these efforts, high-definition digital television
signals may eventually be delivered as the standard throughout the
United States.
[0013] Like a standard television signal, an HDTV signal may be
broadcast over radio frequency ("RF") airwaves, cable or satellite.
However, to view an HDTV broadcast, users must buy an HDTV display
and HDTV tuner. HDTV sets are prohibitively expensive for many
users when compared to standard television sets.
[0014] Simultaneously with the developments in high definition
television, there has been an explosion in use and delivery of
information, images, etc. through the Internet. As Internet
broadband applications have grown, there has been a convergence
between the Internet and conventional television. Thus, it is
foreseen that eventually conventional television programming and
permutations thereof, will be delivered to consumers through the
Internet directly via broadband connectivity onto their computer
monitor.
[0015] In addition, techniques are being developed to increase user
control over the display of media content. One system currently
available under the brand name "Tivo.TM. receives a standard
television signal, simultaneously stores and displays the signal,
and accepts user inputs such that the broadcast signal may be
paused, rewound, or replayed based on user inputs. The system
converts a standard television signal into Moving Pictures Experts
Group ("MPEG") format and parses the MPEG stream into video and
audio components. The audio and video components are stored and
then reassembled and decoded for delivery to a television receiver
for display. The system accepts inputs from a user which controls
when the stored, disassembled MPEG stream is reassembled, decoded
and displayed. Such a system is described in U.S. Pat. No.
6,233,389, which is hereby incorporated in its entirety by
reference. However, this technique is not applicable to a digital
media environment.
[0016] In addition, current content distribution methods do not
provide adequate control to send specific content information to
specific users and to control the viewing permissions of content
information and content. With increased availability of content, it
has become more difficult for users to search through content to
determine which content is interesting and available to them. These
and other problems are avoided and numerous advantages are provided
by the system and method described herein.
SUMMARY OF THE INVENTION
[0017] In accordance with the invention, systems and methods for
delivering a television program guide are provided. The invention
organizes content information based on user subscription
information and sends the content information to the user.
[0018] In one aspect, a first server establishes a database
including content information and user subscription information.
The term "content" refers to any electronic file or application,
including video, audio, datacast, video games, and other computer
programs. "Content information" includes content titles, times that
the content is available for viewing, descriptions of the content
and trivia or news about the content. The first server organizes
content information for each user based on the user subscription
information and sends the content information to the user
[0019] In another aspect, the first server requests updated content
information from a second server. Preferably, the first server
periodically requests updated content information from the second
server.
[0020] In yet another aspect, the server receives user requests for
content information.
[0021] In still another aspect, the content information includes
links. By "link" it is meant a selectable connection from one word,
picture, or information object to another such as a hypertext
link.
[0022] In another aspect, the user subscription information
includes access permission indications to the content information.
The access permission indications include access granted or access
denied flags for content information for each user. The server
sends the content information to the user terminal if the user has
an access granted flag. In one embodiment, content is sent to the
user terminal if the user subscription information includes an
access granted flag. In another embodiment, the access permission
indications include a tag. In yet another embodiment, content is
sent to a user terminal, including an access permission indication.
If the content includes an access granted flag, the content is
displayed at the user terminal.
[0023] As used herein, the term "tagging" means a marker inserted
or embedded into data or into the packet ID. A packet can be tagged
with various types of information, including the serial number(s)
of users who have the ability to view the content of the packets. A
"packet" is a short block of data transmitted in a packet switching
network environment and includes a packet identifier or "packet
ID." "Packet switching" is a protocol in which data bits are
organized in packets before it is routed. Each packet is then
transmitted individually and can follow different routes to its
destination. Once all the packets forming a message arrive at the
destination, they are recompiled into the original data. The
destination of the data is contained in the packet ID. When
reassembled, the packets include content. A user serial number is
an identification code corresponding to a particular user's
terminal. The user terminal can read the packet if the user serial
number is specified. The packets include a datacast. The packets
may be in motion picture expert group ("MPEG") format. The user
terminal may be a personal computer or a set top box. The packets
may be broadcast by radio frequency ("RF")cable, or satellite.
[0024] The invention provides control over content and content
information sent to a user from a server in communication with a
user terminal by a web portal. The server sends content information
to a user terminal based on the user subscription information.
Access permission indications, including an access granted or
access denied flag, are provided. The content information or the
content itself is sent only if access permission is granted.
Alternatively, the content information or content may be viewed by
the user at the user terminal only if access permission is
granted.
[0025] These and other advantages will become apparent to those of
ordinary skill in the art with reference to the detailed
description and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] FIG. 1 is a block diagram of an embodiment of a system.
[0027] FIG. 2 is a block diagram of a network of user terminals
connected by the Internet to the server.
[0028] FIG. 3 is a block diagram of an embodiment of a system.
[0029] FIG. 4 is a flow diagram of an embodiment of the user
terminal showing steps fro receiving, viewing, and recording
content.
[0030] FIG. 5 is a block diagram of the encryption elements.
[0031] FIG. 6 is a block diagram of the decryption elements.
[0032] FIG. 7 is a block diagram of an embodiment of a system.
[0033] FIG. 8 is a flow diagram of an embodiment of a user
terminal.
[0034] FIG. 9 is a flow diagram of an embodiment of a program
guide.
[0035] FIG. 10 if a flow diagram of an embodiment of a program
guide.
DETAILED DESCRIPTION
[0036] Systems and methods are provided for controlling content
information sent to a user. An embodiment according to the present
invention includes controlling content and content information sent
to a user. Digital content information and content are sent in
packets, which include a packet ID and content. The packet ID is
tagged, or marked with a packet tag by a broadcaster or other
computer server to enable specific users to view the content. The
packets are sent by either a computer server or a broadcaster to
the user terminal. The "packet tag" is an identifier that marks and
identifies the content associated with the packet. The packet tag
may also include information about the user terminal to which it is
sent, such as a user serial number associated with the user
terminal. The packet tag is used by software applications, or
"modules," for controlling the content at the user terminal. The
software applications enable user viewing permissions according to
the packet tags, which may include providing access to a decryption
algorithm if the user serial number is included in the tag, and
recording information about the content if the content is viewed or
read by the user terminal.
[0037] As used herein, a "module" refers to a software program,
application, routine, or subroutine, or a programmable processor or
chip. As would be understood by one of ordinary skill in the art,
modules may be configured in many combinations to accomplish the
same function. For example, an example of a software module is any
block of code that may be logically grouped together and may or may
not use the conventional subroutine interfaces as defined by
typical programming languages. A program routine or subroutine is
generally understood as a stylistic convention of programming, and
thus different routines or subroutines may be written in multiple
combinations and accomplish the same function. As used herein, a
"module" includes any block of code or programmable processor or
chip having a function that may be logically grouped together
regardless of whether conventional subroutine interfaces as defined
by typical programming languages are used or specific processors or
chip configurations are used.
[0038] FIG. 1 is a block diagram of a system according to the
invention. The system includes a broadcast station 11. The
broadcast station 11 sends content to a user terminal 13. The
content is broken into packets, each having a packet ID containing
a destination address, and sent to the user terminal 13. The
content includes any electronic file or application, including
video, audio, datacast, video games, and other computer programs.
Preferably, the content is in motion picture expert group ("MPEG")
format. As used herein, "MPEG" includes any version of MPEG format,
including MPEG2 format.
[0039] The user terminal 13 includes a hardware serial number that
identifies the hardware included in the user terminal 13. The user
terminal 13 is in communication with a web portal to the Internet
15. The user terminal 13 is a personal computer ("PC") or a set top
box or other electronic device for receiving content. In addition,
any computer network such as a local area network ("LAN") or wide
area network ("WAN") may be substituted for the Internet 15.
[0040] The user terminal 13 is in communication with a server 17
through the Internet 15. As will become better understood by the
following discussion, the server contains information about users
such as user serial numbers and subscription information. The
subscription information includes the content ordered by the user,
for example, specific channels, "pay-per-view" programs, or video
games. The subscription information also includes whether the user
has paid for the content or is past due on payments.
[0041] Alternatively, content may be sent by other means, for
example, cable TV ("CATV"), satellite TV ("SATV"), or the world
wide web.
[0042] FIG. 2 is a block diagram of a network of user terminals
13a-13n connected by the Internet 15 to the server 17. The server
17 is in communication with a network console 21. The network
console accepts inputs from an administrator. The inputs include
user information and content information.
[0043] FIG. 3 is a detailed block diagram of an embodiment of a
system in accordance with the invention. The user terminal 13 is in
communication with the server 17 through the Internet 15.
[0044] The server 17 includes a serialization module 45. The
serialization module 45 includes a list of the user serial numbers,
and information about each serialized receiver. The serialization
module 45 performs authorization checks by checking if the user
serial number corresponds to a user that has access to certain
content or content information. The subscription management module
47 contains user information. The user information includes the
subscription ordered or paid for by the user and a corresponding
user serial number. The server 17 also includes a process request
module 49 and an execute request module 51. The process request
module 49 receives requests from a user or an administrator to
enable or disable content viewing permissions. The process request
module 49 includes processing payment information, such as credit
card sales, from the user. The execute request module 51 performs
the users request if the user has properly paid for the requested
service. The execute request module 51 sends information to the
user terminal 13 through the Internet 15. The information sent by
the execute request module 51 includes content schedules and user
viewing permission enablement information. The processing and
execution of requests will be better understood by the following
discussion.
[0045] The server 17 is in communication with a secondary server
31. The execute request module 51 obtains information regarding
schedules and user viewing information from a secondary server 31.
The secondary server 31 may be included in the same physical server
machine as the server 17 or the secondary server 31 may be a
separate machine. The secondary server includes an encryption
control module 31, a remote on/off module 55, a data mining module
57, and an application branding module 59. The secondary server may
include other modules 63.
[0046] The encryption control module 31 sends encryption keys to
the user terminal 13 to enable viewing permissions. For example,
the user requests a specific program ("content"), and sends this
information to the process request module 49. The execute request
module 51 requests the appropriate encryption keys from the
encryption control module 31 to enable the user viewing permission.
The execute request module 51 sends the appropriate encryption key
to the user terminal 13. Preferably, the encryption key includes
the user serial number such that the encryption key only works if
used by the user terminal corresponding to the user serial
number.
[0047] The remote on/off module 55 sends information to the user
terminal 13 to turn viewing permission on or off remotely. For
example, an administrator can terminate a user's viewing permission
by entering the request into the process request module 49. The
execute request module 51 communicates with the remote on/off
module 55 to turn off all of the user's viewing permissions. The
remote on/off module communicates with the user terminal 13 via the
Internet or via a datacast to either delete content files, delete
applications for viewing the content files, or to disable the
encryption keys.
[0048] The data mining module 57 receives information about user
viewing habits and subscription information and searches for
relationships among the data collected. The data mining module 57
may use conventional analysis techniques to monitor data collected.
For example, when the user views specific content from the user
terminal 13, information about the content viewed is sent to the
server 17 by the Internet 15 and stored by the server 17. The
information about the content viewed includes the content and the
time the content was viewed. This information may be collected
about many user terminals. The data mining module 57 receives the
information and analyzes it for relationships. For example, the
data mining module 57 might determine that users who view stock car
races regularly are also likely to view a high number of symphony
concerts. This information could be of interest to advertisers, who
might have been unaware of the correlation between stock car racing
and symphony concert viewers. Based on such a correlation,
advertisers may decide to advertise stock car racing and related
merchandise during symphony concert broadcasts.
[0049] The application branding module 59 communicates branding
information to the user terminal 13. The branding information
includes which commercials should be sent to the user terminal 13
and which advertisements should be displayed on the user terminal
13. The branding information may be based on instructions from an
administrator to the server 17 and can include correlations derived
from the data mining application 57. For example, an administrator
can input a request to the process request module 49 to have a
banner offering stock car racing merchandise for sale displayed on
the user terminal 13 if the user watches more than a predefined
number of stock car races.
[0050] The server may include other modules 63 for processing and
analyzing data received from the user terminal 13.
[0051] The user terminal 13 displays a graphical user interface
("GUI") 33 which displays information to a user and receives inputs
from a user. The user terminal includes a scheduling module 37. The
scheduling module 37 includes information about the content sent to
the user terminal 13 and a display mechanism for showing schedules
of content on the GUI 33. The content information includes the
schedule of content, descriptions of content, and related web
sites. The display mechanism shows a schedule of content on the GUI
33 and may include links to web sites related to the content
displayed.
[0052] The viewing module 39 displays content to the user on a
display or GUI 33. Content, which comprises tagged packets, is
viewed by the viewing module 39, and the packet information is sent
from the user terminal 13 to the server 17 by the Internet 15. As
previously discussed, information about the viewed content may be
analyzed by the server 17, and more specifically, by the data
mining module 57.
[0053] The organizing module 41 organizes content based on user
specifications. For example, the user may enter a request through
the GUI 33 to see a schedule of every stock car race available. The
organizer module 47 would display such a schedule.
[0054] The customizing module 43 customizes the content based on
user specifications. The customizing module accepts inputs from the
user to define search and query functions. For example, a user can
define criteria and the customizing module 43 will search the
content information for content that matches the user-defined
criteria.
[0055] The tuner module 44 tunes broadcasts received by the user
terminal 13. Tuning refers to choosing a particular channel or
specific content to be downloaded or received by the user terminal
13. The tuner module is described in greater detail in FIG. 8 and
the accompanying discussion.
[0056] The user terminal 13 may include additional modules 61 for
controlling and viewing content.
[0057] FIG. 4 is a flow diagram of an embodiment of the user
terminal 13 showing steps for receiving, viewing, and recording
content. The user terminal 13 includes a GUI 33. Analog content 93
is received and decoded at step 95. The analog content 93 is then
viewed at step 97. Digital content 73 is also received by the user
terminal 13. The user can input instruct the GUI to either view the
digital content 73 at step 75, record the digital content 73 at
step 77, "time shift" the digital content 73 at step 79, or
playback the recorded digital content 73 at step 81. The user
chooses the input options from a menu displayed by the GUI. The
user chooses either step 75, 77, 79, or 81 by entering an option
into the menu from a keyboard, touch sensitive screen, or
mouse.
[0058] If the user instructs the GUI 33 to view digital content at
step 75, the signal is decoded at step 91 and viewed at step 97. If
the user instructs the GUI 33 to record digital content at step 77
or to time shift the content at step 79, the content is encrypted
at step 83 and stored as a file in file storage 85. When the user
instructs the GUI 33 to play back the content at step 81, the
content is retrieved from file storage 85 and decrypted at step 87.
The decrypted file is digitally decoded at step 91 and viewed at
step 97. Alternatively, the encryption and decryption at steps 83
and 87, respectively, may be omitted. If the encryption and
decryption steps are omitted, the content is stored as a file in
file storage 85 without being encrypted at step 83. Unlike the
methods and systems described in U.S. Pat. No. 6,233,389, the
content is not parsed into audio and video signals. The file is
decoded at step 91 without being decrypted at step 87 and viewed at
step 97, subject to the user's choice in input options to view the
digital content 73 at step 75, record the digital content 73 at
step 77, "time shift" the digital content 73 at step 79, or
playback the recorded digital content 73 at step 81.
[0059] FIG. 5 is a block diagram of the encryption elements. A
tuner 101 receives content, preferably from a broadcaster. An
example of a tuner for receiving content on a PC is a digital
television PC ("DTVPC") card such as a DTVPC card available under
the trade name Janus. The signal is sent to a demodulator 103 where
it is downloaded into a bit stream. The bit stream is put in a
wrapper 105. A wrapper is data that precedes or frames the main
data or program. The wrapper sets up another program so that the
data can be read or so that the program can run successfully.
[0060] The bit stream is sent as input to a capture filter 107. The
capture filter 107 identifies bits from the demodulator 103 before
sending the bits to the appropriate destination. The bits are
recorded or capture by a capture bit stream module 109. Bits are
removed from the bit stream by a remove bits module 111. By the
term "removed," it is meant that bits are scrambled according to
the encryption algorithm.
[0061] An encryption algorithm module 113 retrieves an encryption
algorithm from electronic programmable read only memory ("EPROM")
115. As would be understood by one of ordinary skill in the art,
EPROM is typically included on a processor. In the embodiment
illustrated in FIG. 5, EPROM is included on the user terminal. The
encryption algorithm module 113 encrypts the files, which are then
sent to a Peripheral Component Interconnect ("PCI") 117 for storage
on a hard drive 119.
[0062] FIG. 6 is block diagram of the elements of the decryption
process. The encrypted files are retrieved from the hard drive 119
through a PCI 117. The wrapper 105 is removed by the following
elements. The encrypted files are sent as input to a capture filter
107. The capture filter 107 identifies bits from the point of
origin, such as a storage medium, before sending the bits to a
destination, such as a decoder. The decryption algorithm
restoration module 121 retrieves the decryption algorithm from the
EPROM 115. The bits are re-inserted by the re-insert bits module
123. By the term "re-insert," it is meant that bits are
unscrambled, or placed back in the order of the bit stream prior to
encryption.
[0063] A DTV decode module 125 decodes the decrypted bits into
audio bits 131,video bits 129 and data bits 127. The audio bits
131,video bits 129 and data bits 127 may be viewed at the user
terminal.
[0064] FIG. 7 is a block diagram of an embodiment of the system.
Content, "video-on-demand" 201, computer games 203, and other types
of software 205 are sent by an Internet connection to a server 17.
Alternatively, the video-on-demand" 201, computer games 203, and
other types of software 205 may be sent to a broadcaster 11. The
video-on-demand" 201, computer games 203, and other types of
software 205 is then sent to the user terminal 13 from the server
17 by an Internet connection, or from the broadcaster 11 by
terrestrial means. Terrestrial means includes cable, satellite, and
radio frequency (RF) signals.
[0065] The server 17 includes a header encryption module for
encrypting the content into encrypted packets. The server 17 and
the broadcaster 11 are in communication by an Internet connection.
Therefore, the encrypted packets may be transferred from the server
17 directly to the user terminal 13, or the encrypted packets may
be sent to the broadcaster 11 and then sent to the user terminal
13.
[0066] The user terminal 13 is in communication with a decryption
module 213. The decryption module 213 decrypts the packets such
that the user can view the "video-on-demand" 201, computer games
203, and other software 205. Preferably, the header encryption
includes a tag with the user serial number. The decryption module
213 checks the header encryption for the tag with the user serial
number. If the user serial number is not included in the tag, the
decryption module 213 does not decrypt the packet. Alternatively,
the decryption module 213 can delete packets that do not include a
tag with the user serial number.
[0067] FIG. 8 is a flow diagram of an example of the user
terminal's processing of content packets through the tuner module.
The relationship of the tuner module 44 in a system is depicted in
FIG. 3. At step 141, the user terminal receives encrypted, tagged
packets. The tag includes the serial numbers for users who have
permission to view the content in the packet. The user terminal
receives user input choosing which content to view or record at
step 143. The user input may be received through conventional
means, such as a GUI, keyboard, mouse, or touch screen. The input
is received by the tuner module.
[0068] The tuner module checks the packet ID tag for the serial
number of the user terminal at step 145. If the user serial number
is not in the packet ID tag, the tuner module ends at step 155
without displaying or recording the content associated with the
packet.
[0069] If the user serial number is in the packet ID tag, the tuner
module de-encrypts the packet at step 147, reassembles the packet
bits at step 149, and displays the packet at step 151. At step 153,
the tuner module sends the user serial number and packet
information to the server. The packet information includes the
information identifying the content associated with the packet and
the time at which the user viewed the content. The tuner module is
finished at step 155.
[0070] FIG. 9 is a flow diagram of an embodiment of a program
guide. A server in communication with a user (such as the server 17
as shown in FIG. 1) has a database of content information. "Content
information" or "data" includes content titles, times that the
content is available for viewing, descriptions of the content and
trivia or news about the content. The content information may be in
the form of web site links. The database also includes subscriber
information. The subscriber information includes subscriber names,
account information, credit card numbers, and whether the
subscription is active and paid up-to-date.
[0071] The server receives a request from a user for a program
guide download at step 301. Preferably, the user request includes
the dates for which the user wishes to receive information. The
user request may also include specific content for which the user
wishes to receive information. The user request may be initiated by
the user, for example, the user may choose information for the
request from a menu. Alternatively, the user request may be sent
periodically by the user terminal without any positive action from
the user. The server checks the database subscriber information at
step 303 for access permission indications. Access permission
indications are information that determine whether the user has
access to specific content. In the embodiment shown in FIG. 9, a
valid account authorization, such as via credit card number and an
active subscription status for the user making the request is
information that determines that the user has access to the
requested content. Access permission indications may include either
an access granted or an access denied flag. An access granted or an
access denied flag is a marker notifying the server that access is
either granted or denied. The access granted or denied flag may be
a packet tag included in content or content information sent to the
user. An access granted or access denied flag may include the user
serial number.
[0072] If the account is unauthorized or invalid or the
subscription is not valid, the user request is rejected at step
305. If the user request is rejected, preferably the server sends
the user a notice, for example, an email message informing the user
that the user does not have access to the requested
information.
[0073] At step 307, the server determines if the information or
data requested is currently available from the server. If the
information is available, the server downloads the requested data
to the user at step 319 and timestamps the user's subscription
information with the date of the download.
[0074] If the information is not available, the server downloads
content information from a third party data source server
periodically at step 309. The data source server is in
communication with the server and contains updated content
information. The data source server may be a secondary server such
as the secondary server 31 shown in FIG. 3. Preferably, the server
updates content from the data source server in six hour increments
at step 309. If new data is not available, a message, such as an
email message, is sent to the user terminal informing the user that
the information is not available.
[0075] If new information is available at step 309, the server
checks at step 313 to see if there are any errors in the data.
Examples of errors in data include: 1) all channels not available,
2) incomplete program data, 3) data in invalid format. If there is
an error in the data, the server stops the retrieval process and
sends a message, such as an email message, to the user at step 315
to inform the user of the error.
[0076] If there are no errors in the data at step 313, the data is
stored on the server. The server sets a flag that the information
is available. The information is then downloaded at step 319.
[0077] FIG. 10 is a flow diagram of data download for a program
guide. A server in communication with a user (such as the server 17
as shown in FIG. 1) has a database of content information. The
database also includes subscriber information.
[0078] The server scans the database of subscribers to determine if
a new subscriber has been added at step 331. If there are no new
subscribers, the server proceeds to step 341, described below. If
there is a new subscriber, the server sends subscription
information to a data source server at step 333. The data source
server may be a secondary server such as the secondary server 31
shown in FIG. 3. The data source server sends content information
to the server. If there is an error in the data at step 335, the
server stops the retrieval process and sends the user a message,
such as an email message, informing the user that an error has
occurred.
[0079] If there are no errors in the data, the server stores the
data on the server for future download to the user terminal and
sets a flag indicating that the data is available at step 339.
[0080] At step 341, the server checks the date when data was last
"fetched" or downloaded from the data source server for each
subscriber to determine if new data is available from the data
source. At step 343, the server retrieves all new available content
information and stores it on the server. The content information
can then be downloaded or sent to the user terminal by the process
described in FIG. 9. The process described in FIG. 10 goes to
"sleep" mode in step 345.
[0081] It will be apparent to those with skill in the art that
there are many alterations that may be made in the embodiments of
the invention described above without departing from the spirit and
scope of the invention. For example, there are many ways that
circuits and electronic elements may be combined to implement the
system and method described herein in various systems and hardware
environments. There are similarly many ways that independent
programmers might provide software to provide the functionality
associated with the present invention as taught herein without
departing from the spirit and scope of the invention.
[0082] Having thus generally described the invention, the same will
become better understood from the following claims in which it is
set forth in a non-limiting manner.
* * * * *