U.S. patent application number 12/769028 was filed with the patent office on 2012-05-10 for method and system for authenticating a data stream.
This patent application is currently assigned to ELOY TECHNOLOGY, LLC. Invention is credited to Scott Curtis, Gregory M. Evans, Kunal Kandekar.
Application Number | 20120117632 12/769028 |
Document ID | / |
Family ID | 46019709 |
Filed Date | 2012-05-10 |
United States Patent
Application |
20120117632 |
Kind Code |
A1 |
Curtis; Scott ; et
al. |
May 10, 2012 |
METHOD AND SYSTEM FOR AUTHENTICATING A DATA STREAM
Abstract
A method and apparatus for obtaining digital content. A
credential is extracted from a first data stream that corresponds
to a media item. The credential is provided to a content provider.
If the credential is authenticated, the content provider sends a
second data stream that corresponds to the media item.
Inventors: |
Curtis; Scott; (Durham,
NC) ; Evans; Gregory M.; (Raleigh, NC) ;
Kandekar; Kunal; (Jersey City, NJ) |
Assignee: |
ELOY TECHNOLOGY, LLC
Wilmington
DE
|
Family ID: |
46019709 |
Appl. No.: |
12/769028 |
Filed: |
April 28, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61173628 |
Apr 29, 2009 |
|
|
|
Current U.S.
Class: |
726/7 |
Current CPC
Class: |
G11B 2020/10537
20130101; H04N 21/440218 20130101; H04N 21/4135 20130101; G11B
20/10527 20130101; H04N 21/4325 20130101; G11B 27/105 20130101;
H04N 21/43615 20130101; H04N 5/76 20130101; H04N 5/765 20130101;
H04N 21/4363 20130101; H04N 21/44016 20130101; H04N 21/4542
20130101; H04N 9/7921 20130101; H04N 21/4334 20130101; H04N 21/4583
20130101 |
Class at
Publication: |
726/7 |
International
Class: |
G06F 21/20 20060101
G06F021/20; H04L 29/06 20060101 H04L029/06 |
Claims
1. A method for obtaining digital content, comprising: obtaining a
credential from a first data stream that corresponds to a media
item; providing the credential to a content provider; and in
response to providing the credential to the content provider,
receiving from the content provider a second data stream, wherein
the second data stream corresponds to the media item.
2. The method of claim 1, further comprising combining the second
data stream with the first data stream to generate a combined data
stream, and causing the presentation of the combined data
stream.
3. The method of claim 1, further comprising receiving the first
data stream from the content provider, and wherein obtaining the
credential from the first data stream that corresponds to the media
item further comprises extracting the credential from the first
data stream.
4. The method of claim 3, further comprising extracting a digital
watermark from the first data stream, and wherein extracting the
credential from the first data stream comprises extracting the
credential from the digital watermark.
5. The method of claim 1, wherein obtaining the credential from the
first data stream that corresponds to the media item further
comprises receiving on a second device the credential from a first
device that had extracted the credential from the first data
stream.
6. The method of claim 5, wherein providing the credential to the
content provider comprises providing, by the second device, the
credential to the content provider.
7. The method of claim 5, further comprising causing the
presentation of the second data stream on the second device.
8. The method of claim 7, further comprising receiving the first
data stream from the first device, combining the first data stream
with the second data stream to generate a combined data stream, and
causing the presentation of the combined data stream on a display
communicatively coupled to the second device.
9. An apparatus for obtaining digital content, comprising: a
network interface adapted to communicate with a network; and a
control system comprising a processor coupled to the network
interface and adapted to: obtain a credential from a first data
stream that corresponds to a media item; provide the credential to
a content provider; and in response to providing the credential to
the content provider, receive from the content provider a second
data stream, wherein the second data stream corresponds to the
media item.
10. The apparatus of claim 9, wherein the control system is further
adapted to: combine the second data stream with the first data
stream to generate a combined data stream; and cause the
presentation of the combined data stream.
11. The apparatus of claim 9, wherein the control system is further
adapted to: receive the first data stream from the content
provider; and wherein to obtain the credential from the first data
stream that corresponds to the media item, the control system is
further adapted to extract the credential from the first data
stream.
12. The apparatus of claim 11, wherein the control system is
further adapted to: extract a digital watermark from the first data
stream; and wherein to extract the credential from the first data
stream, the control system is further adapted to extract the
credential from the digital watermark.
13. The apparatus of claim 9, wherein to obtain the credential from
the first data stream that corresponds to the media item, the
control system is further adapted to receive the credential from a
first device that had extracted the credential from the first data
stream.
14. The apparatus of claim 13, wherein the control system is
further adapted to receive the first data stream from the first
device, combine the first data stream with the second data stream
to generate a combined data stream, and cause the presentation of
the combined data stream on a display communicatively coupled to
the second device.
15. A content server, comprising: a network interface adapted to
communicate with a network; and a control system comprising a
processor and coupled to the network interface, and adapted to:
embed a credential in a first data stream corresponding to a media
item; provide the first data stream to a first device; receive the
credential from a device; and in response, provide a second data
stream corresponding to the media item to the device.
16. The content server of claim 15, wherein the device comprises
the first device.
17. The content server of claim 15, wherein the device comprises a
second device.
18. The content server of claim 17, wherein the control system is
further adapted to: authenticate the credential to determine that
the second device is authorized to receive the second data
stream.
19. The content server of claim 15, wherein the first data stream
is a first version of the media item encoded at a first bit rate,
and the second data stream is a second version of the media item
encoded at a second bit rate.
20. The content server of claim 15, wherein the first data stream
is a base layer bit stream of the media item, and the second data
stream is an enhancement layer bit stream of the media item.
Description
RELATED APPLICATIONS
[0001] This application claims the benefit of provisional patent
application Ser. No. 61/173,628, filed Apr. 29, 2009, the
disclosure of which is hereby incorporated herein by reference in
its entirety.
FIELD OF THE DISCLOSURE
[0002] The present disclosure relates to authenticating a request
for digital content, and in particular to using a credential
provided in a first data stream to authenticate the delivery of a
second data stream.
BACKGROUND
[0003] Digitization of content has increased the ways in which
content, such as movies, may be delivered. Today, a plethora of
mobile devices can play digitized movies. Increasingly, such
devices can communicate wirelessly with content providers, and can
obtain digital content in real time over a wireless communications
link, such as a Wi-Fi link or a cellular link.
[0004] The bandwidths of wireless communications links differ
greatly. A cellular communications link may have a maximum
bandwidth of less than 1 megabit per second (mbps), while a Wi-Fi
link may have a maximum bandwidth in excess of 10 mbps. When
receiving digital content, the bandwidth of the communications link
may be quite important, especially where the content is being
viewed by a user substantially concurrently while it is being
received by the device. Sending digital content that is encoded at
a bit rate that exceeds the bandwidth of the communications link
results in interrupted playback, which is unacceptable to
users.
[0005] Display capabilities of mobile devices also differ greatly.
Some mobile devices have a limited display resolution, while others
offer a much higher resolution. For example, a first mobile device
may have a screen resolution of 480.times.320 pixels (e.g., an
Apple.RTM. iPhone.RTM.), while a second mobile device may have a
screen resolution of 1024.times.768 pixels (e.g., an Apple.RTM.
iPad.RTM.). Display capabilities of other types of devices, such as
televisions, may be significantly greater than those of mobile
devices.
[0006] Today, digital content is frequently rented or purchased and
delivered to a device over a network. Ideally, the data stream of a
movie that is delivered over the network closely matches the
available bandwidth of the communications link and the display
resolution of the requesting device. This may be particularly
important where the receiving device is playing the digital content
substantially concurrently while it is being received. The data
stream may be automatically selected by the content provider based
on the bandwidth and display characteristics of the requesting
device, or may be selected by a user of the requesting device.
[0007] A content provider may generate a plurality of different
data streams of a movie in order to be able to select a particular
data stream based on the attributes of the communications link
and/or the display resolution of the requesting device. Data
streams of a movie may be generated by any of multiple different
data-encoding techniques. One encoding technique is to make
multiple copies of a movie at different bit rates. Each copy is a
separate data stream, and the data stream encoded at the bit rate
that best matches the available bandwidth of the communications
link and the display resolution of the receiving device is selected
for delivery.
[0008] In some cases, a change of circumstances may render a first
data stream that was selected based on a particular communications
link or display resolution no longer ideal. For instance, a
relatively low resolution data stream may be provided to a mobile
device based on the available bandwidth of the communications link
when the movie was initially selected for delivery to the device.
Subsequently, the device may obtain access to a much higher
bandwidth communications link. For example, the device may have had
a relatively low bandwidth cellular communications link when the
media item was initially requested for delivery, but may
subsequently have access to a relatively high bandwidth Wi-Fi
communications link. In such a situation, it would be desirable to
receive the higher resolution version of the movie to maximize the
user's viewing experience.
[0009] In other situations, a user may want to play a movie that
has been delivered to the mobile device on a second device at a
higher resolution than the data stream delivered to the mobile
device. In such situations, it would be desirable for a higher
resolution second data stream of the movie to be delivered to the
higher resolution device.
[0010] Where the movie is being rented, the initial rental
typically includes certain validation and authorization processing,
including the receipt of payment information. However, it is
undesirable to undergo such transactional processing each time a
data stream with a different resolution is desired, or to have to
pay additional fees to rent the same movie. What is needed,
therefore, is a mechanism for enabling digital content to be
delivered at a first resolution, and to be subsequently delivered
at a second resolution with little or no user action required.
SUMMARY
[0011] The present disclosure relates to using a credential
obtained from a first data stream that corresponds to a media item
to authenticate the delivery of a second data stream that also
corresponds to the media item. In one embodiment, the first data
stream is a relatively low quality version of the media item, and
the second data stream is a relatively high quality version of the
media item. In another embodiment, the first data stream is a base
layer of the media item, and the second data stream is an
enhancement layer of the media item which is combined with the
first data stream to generate a combined data stream.
[0012] The credential may be extracted from the first data stream
by a first device that is currently receiving, or has previously
received, the first data stream. The first device may provide the
credential to a content provider of the first data stream. In
response, the content provider may provide the second data stream
to the first device. The second data stream may be presented to a
user, or combined with the first data stream to form a combined
data stream that is presented to the user.
[0013] In another embodiment, a user may transfer the credential
from a first device to a second device. The second device may
communicate the credential to the content provider and begin
receiving a second data stream corresponding to the media item. The
second device may cause the presentation of the second data stream
to the user, such as by decoding and rendering the second data
stream on a display device. In an alternate embodiment, the user
may transfer the credential to the second device, along with the
first data stream, which comprises a base layer of the media item.
The second device provides the credential to the content provider,
and begins receiving a second data stream, which comprises an
enhancement layer of the media item. The second device combines the
first data stream and the second data stream to form a combined
data stream. The second device may cause the presentation of the
combined data stream to the user.
[0014] The credential may be in the form of a digital watermark
that is embedded in the first data stream. The credential is
generated by the content provider after authentication and payment
by the user, and is embedded in a data stream that is delivered to
a device. When the content provider subsequently receives the
credential from a device that is requesting the delivery of a
second data stream, the content provider can authenticate the
purchase of the media item via the credential. The content provider
may limit subsequent data streams of the media item to a finite
number of authorized devices that have been previously registered
with the content provider as being associated with a specific user.
In particular, the user may provide network addresses of a
particular number of devices during a registration process with the
content provider. If the credential is received from a device
bearing a network address that does not appear on the list of
registered network addresses, the content provider may reject the
request.
[0015] Those skilled in the art will appreciate the scope of the
embodiments and realize additional aspects thereof after reading
the following detailed description of the embodiments in
association with the accompanying drawing figures.
BRIEF DESCRIPTION OF THE DRAWING FIGURES
[0016] The accompanying drawing figures incorporated in and forming
a part of this specification illustrate several aspects of the
embodiments, and together with the description serve to explain the
principles of the embodiments.
[0017] FIGS. 1A and 1B are block diagrams of an exemplary system in
which embodiments may be practiced;
[0018] FIG. 2 is a flowchart illustrating an exemplary process for
providing a first data stream in response to a request from a
device according to one embodiment;
[0019] FIG. 3 is a flowchart illustrating an exemplary process for
using a credential obtained from a first data stream that
corresponds to a media item to authenticate the delivery of a
second data stream that corresponds to the media item;
[0020] FIG. 4 is a message flow diagram illustrating an exemplary
message flow and associated processing for using a credential
obtained from a first data stream that corresponds to a media item
to authenticate the delivery of a second data stream that
corresponds to the media item according to another embodiment;
[0021] FIG. 5 is a block diagram of an exemplary content
storage;
[0022] FIG. 6 is a block diagram of another exemplary system in
which embodiments may be practiced;
[0023] FIG. 7 is a message flow diagram illustrating an exemplary
message flow and associated processing for using a credential
obtained from a first data stream that was delivered to a first
device to authenticate the delivery of a second data stream to a
second device;
[0024] FIG. 8 is a message flow diagram illustrating another
exemplary message flow and associated processing for using a
credential obtained from a first data stream that was delivered to
a first device to authenticate the delivery of a second data stream
to a second device; and
[0025] FIG. 9 illustrates components of an exemplary processing
device which may be used to implement a first device, a second
device, or a content server, according to some embodiments.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0026] The embodiments set forth below represent the necessary
information to enable those skilled in the art to practice the
embodiments and illustrate the best mode of practicing the
embodiments. Upon reading the following description in light of the
accompanying drawing figures, those skilled in the art will
understand the concepts of the embodiments and will recognize
applications of these concepts not particularly addressed herein.
It should be understood that these concepts and applications fall
within the scope of the disclosure and the accompanying claims.
[0027] The phrase "media item" will be used herein to refer to
digital media content that may be rendered by a device for
presentation to a user. For example, a media item may comprise a
broadcast television show, a movie, a song, and the like. FIGS. 1A
and 1B are block diagrams of an exemplary system 10 in which
embodiments may be practiced. FIG. 2 is a flowchart illustrating an
exemplary process for providing a first data stream in response to
a request from a device according to one embodiment. FIG. 2 will be
discussed in conjunction with FIG. 1A. While reference is made
herein to a "first" device and a "second" device, the words "first"
and "second" are used merely for convenience, to distinguish the
devices, and do not imply a particular type of device or a
particular order of operations other than as described herein
explicitly.
[0028] A content provider 12 makes content available to users of a
service. The content provider 12 may comprise any provider of
content, including a movie rental service provider, a cable
operator, a satellite operator, an Internet content provider, and
the like. The content provider 12 provides service via a content
server 14 which is coupled to a network 16, such as a proprietary
network provided by the content provider 12, or a public network
such as the Internet, over which the content server 14 may serve
content as requested.
[0029] A first device 18 is communicatively coupled to a cellular
network 20, which in turn is coupled to the network 16. The first
device 18 may comprise any mobile device capable of wireless
communications, such as a cellular phone, a portable gaming
console, a personal digital assistant (PDA), a tablet computer, a
laptop computer, and the like. The first device 18 includes a
display 22, which may be coupled to the first device 18 or may be
integral with the first device 18. The cellular network 20 provides
a relatively low bandwidth communications link 24 to the first
device 18.
[0030] While embodiments have applicability in both the rental and
purchase of media items, for purposes of illustration, embodiments
will be discussed herein in the context of a rental of a media
item. Assume a user 26 orders a media item, such as the movie
Dracula, from the content provider 12. In particular, the user 26
may indicate via a user interface presented on the display 22 that
the user 26 desires to view the movie Dracula. In response to such
input, the first device 18 may generate a message including a
rental request for the movie Dracula, and send the message to the
content server 14. The request may also include information
identifying the user 26 to the content server 14, such as, for
example, a user identifier and password, or the like. The content
server 14 receives the request (FIG. 2, step 1000). The content
server 14 authenticates the rental request by, for example,
ensuring that the user 26 is a registered member of the service
provided by the content provider 12, and may also obtain payment
for the requested media item (FIG. 2, step 1002).
[0031] The content server 14 selects a particular data stream that
corresponds to the movie Dracula from a content storage 28 (FIG. 2,
step 1004). The phrase "corresponds to" means the data stream
includes information used to render the movie on a display device.
For purposes of illustration, the selected data stream will be
referred to as the "first data stream." The first data stream may
be selected based on the bandwidth of the communications link 24;
characteristics of the first device 18, such as the display
resolution of the display 22; or a combination of both.
Alternately, the user 26 may select the first data stream from a
plurality of available data streams, each of which corresponds to
the movie Dracula. For example, the content server 14 may provide
the first device 18 with a plurality of data stream identifiers
identifying a plurality of available data streams, all of which
correspond to the movie Dracula. The first device 18 may present
the plurality of data stream identifiers to the user 26 via the
display 22. The data stream identifiers may include information
identifying a quality associated with each corresponding data
stream, such as the encoded bit rate, or a subjective term
quantifying a quality, such as "low," "medium," or "high." The user
26 may select one of the data stream identifiers, and the first
device 18 may communicate the selection to the content server
14.
[0032] The content server 14 may generate a digital watermark that
includes a credential (FIG. 2, step 1006). The credential
preferably either directly or indirectly identifies certain
information associated with the rental of the movie, such as the
account number of the user 26; the title of the rented movie;
restrictions placed on playing the movie, such as a date after
which the movie expires or a finite number of times the movie may
be played; a location of other data streams that correspond to the
movie; or the like. The phrase "directly or indirectly" means the
credential itself may contain such information, or the credential
may contain a reference, such as a Uniform Resource Identifier
(URI) that links to such information. The content server 14 embeds
the digital watermark into the first data stream (FIG. 2, step
1008). Generating and embedding a digital watermark into a data
stream is known to those skilled in the art and will not be
discussed in detail herein. Generally, the digital watermark may be
embedded into the first data stream by altering the first data
stream in the time domain or the frequency domain. For example, the
digital watermark may be added to the content such that the effect
of the digital watermark is below the noise floor.
[0033] The first data stream is provided to the first device 18
(FIG. 2, step 1010). The communication of the first data stream may
be initiated by the content server 14 in a "push" fashion, or may
be downloaded in a "pull" fashion by the first device 18. In the
latter example, the content server 14 may provide the first device
18 with a reference, such as a URI, which the first device 18 may
access to obtain the first data stream.
[0034] FIG. 3 is a flowchart illustrating an exemplary process for
using a credential obtained from a first data stream that
corresponds to a media item to authenticate the delivery of a
second data stream that corresponds to the media item. FIG. 3 will
be discussed in conjunction with FIGS. 1A and 1B. Assume the
content server 14 selects a relatively low quality first data
stream of the movie Dracula because of a relatively low bandwidth
of communications link 24, a relatively low resolution of the
display 22, or a combination of both. After the first device 18
begins to receive the first data stream, the first device 18
extracts the embedded digital watermark from the first data stream,
and extracts the credential from the watermark (FIG. 3, step 2000).
For example, the first device 18 may include an extraction module
(not illustrated) provided by the content provider 12 that has
knowledge of the format and location of a digital watermark that is
embedded in a data stream provided by the content server 14. As the
first device 18 receives the first data stream, the first device 18
may begin providing the first data stream for presentation on the
display 22, and may also begin storing the first data stream in a
content storage 30.
[0035] FIG. 1B illustrates the system 10 at a subsequent point in
time. The user 26 has moved within proximity of a Wi-Fi network 32.
The first device 18 may be configured to automatically detect the
presence of the Wi-Fi network 32. The first device 18 establishes a
communications link 34 with the Wi-Fi network 32. The
communications link 34 has a significantly higher bandwidth than
the communications link 24. Assume that the first data stream was
encoded at a bit rate suitable for the communications bandwidth of
the communications link 24, but was encoded at a resolution
substantially lower than the display capabilities of the display
22. Thus, due to the higher bandwidth of the communications link
34, a higher bit rate data stream of the movie Dracula could be
provided which would provide a higher quality picture to the user
26 via the display 22.
[0036] The first device 18 generates a message that includes the
credential extracted from the first data stream and a request for a
higher quality version of the movie Dracula. The first device 18
sends the message to the content server 14 (FIG. 3, step 2002). The
content server 14 receives the message, authenticates the
credential in any desired manner, and begins delivering a second
data stream that corresponds to the movie Dracula to the first
device 18. The second data stream comprises a higher quality (e.g.,
with a higher resolution) data stream corresponding to the movie
Dracula. The first device receives the second data stream (FIG. 3,
step 2004). The second device may provide the second data stream
for presentation to the user 26 via the display 22, and may store
the second data stream in the content storage 30.
[0037] FIG. 4 is a message flow diagram illustrating an exemplary
message flow and associated processing for using a credential
obtained from a first data stream that corresponds to a media item
to authenticate the delivery of a second data stream that
corresponds to the media item, according to another embodiment.
FIG. 4 will be discussed in conjunction with FIGS. 1A and 1B.
Again, assume that the first device 18 begins to receive a first
data stream, extracts an embedded digital watermark from the first
data stream, and further extracts a credential from the watermark
(FIG. 4, step 3000). In this embodiment, however, assume that the
first data stream comprises a base layer of the movie Dracula. For
example, the first data stream may comprise a Scalable Video Coding
base layer data stream. Assume that the first device 18 has stored
the first data stream in the content storage 30. For example, the
first device 18 may have received the entire first data stream at a
rate much faster than the first data stream is presented to the
user 26 on the display 22.
[0038] Upon detection of the Wi-Fi network 32, the first device 18
generates a message that includes the credential extracted from the
first data stream, and a request for a higher quality version of
the movie Dracula. The message may include additional parameters
associated with the request, such as information indicating that
the first device 18 contains a stored copy of the first data
stream. The first device 18 sends the message to the content server
14 (FIG. 4, step 3002). The content server 14 receives the message,
authenticates the credential (FIG. 4, step 3004), and selects a
second data stream from the content storage 28 that comprises an
enhancement layer data stream (FIG. 4, step 3006). The second data
stream may comprise additional information for rendering the movie
Dracula which, when combined with the first data stream, provides a
higher quality data stream than either the first data stream or the
second data stream alone. The content server 14 sends the second
data stream to the first device 18 (FIG. 4, step 3008). The first
device 18 receives the second data stream and combines the second
data stream with the first data stream to generate a combined data
stream (FIG. 4, step 3010). The first device 18 may provide the
second data stream for presentation to the user 26 via the display
22, and may store the second data stream in the content storage
30.
[0039] In another embodiment, assume that the first device 18 has
not completely received the first data stream when the first device
18 detects the Wi-Fi network 32. The first device 18 generates a
message including a message parameter that indicates that the first
device 18 does not contain a copy of the first data stream. The
first device 18 sends the message to the content server 14. After
authentication of the credential, the content server 14 obtains an
enhancement layer data stream of the movie Dracula from the content
storage 28. Because the first device 18 does not contain a copy of
the first data stream, the content server 14 also obtains the first
data stream from the content storage 28 and combines the
enhancement layer data stream with the first data stream to
generate a combined data stream. The content server 14 sends the
combined data stream as the second data stream to the first device
18.
[0040] In yet another embodiment, the first data stream may
comprise an audio track of the media item, and the second data
stream may comprise a video track of the media item. Assume that
the first device 18 has completely downloaded the first data stream
(i.e., the audio track), extracts the credential from the first
data stream, and requests a second data stream (i.e., the video
track) from the content server 14. Upon receipt of the second data
stream, the first device 18 combines the first data stream and the
second data stream (i.e., the audio track and the video track), and
causes the combined data stream to be presented to the user.
[0041] FIG. 5 is a block diagram of an exemplary content storage
28. The content storage 28 can be implemented in any type of
electronic data storage, including, for example, one or more hard
disk drives, flash drives, and the like. The content storage 28
includes a plurality of media items 36-1-36-N (generally, media
items 36 or media item 36). The media items 36 may comprise digital
content of any desired type, such as movies, programs, songs, and
the like. In a preferred embodiment, the media items 36 comprise
video media items that are ultimately provided for visual
presentation, or display, on a display device such as the display
22.
[0042] The media items 36 preferably have multiple corresponding
data streams. For example, the media item 36-1 is illustrated as
having four corresponding data streams 38, 40, 42, and 44. Each of
the data streams 38-44 contains digital content that corresponds to
the media item 36-1, and is used by a device to render, or
otherwise present, the media item 36-1 to the user 26. The data
streams 38-44 may be generated using any number of known data
encoding techniques, including, for example, variable bit rate,
constant bit rate, Scalable Video Coding, and the like.
Alternately, the data streams 38-44 may correspond to different
presentation types, such as an audio data stream or a video data
stream. Assume the data streams 38-44 have been generated using a
variable bit rate (VBR) encoding technique, wherein each of the
data streams 38-44 is a version, or copy, of the media item 36-1
that has been encoded at a bit rate that is different from the
other data streams 38-44. For example, the data stream 38 may have
been encoded at a relatively low bit rate for use with relatively
low bandwidth communications links and/or a relatively low
resolution display 22. The data stream 44 may have been encoded at
a relatively high bit rate for use with relatively high bandwidth
communications links and/or a relatively high resolution display
22. The data streams 40, 42 may be encoded at rates in between
those of the data stream 38 and the data stream 44,
respectively.
[0043] The media item 36-N is illustrated as having four
corresponding data streams 46, 48, 50, and 52. Each of the data
streams 46-52 contains digital content that corresponds to the
media item 36-N, and is used by a device to render, or otherwise
present, the media item 36-N to the user 26. The data streams 46-52
have been encoded using a Scalable Video Coding technique. The data
stream 46 is a base layer version, or copy, of the media item 36-N.
The data stream 46 may be a relatively low quality version of the
media item 36-N. Each of the data streams 48-52 may be an
enhancement layer that may be combined with the data stream 46 to
generate a higher quality combined data stream. For example, the
data stream 48 may comprise additional resolution, the data stream
50 may comprise additional frames, and the data stream 52 may
comprise enhanced color information or enhanced sound
information.
[0044] FIG. 6 is a block diagram of another exemplary system 10 in
which embodiments may be practiced. A second device 54, such as a
media controller, contains a content storage 56. The second device
54 may comprise any device capable of providing, presenting, or
otherwise causing the presentation of content upon request, such
as, for example, a set-top box; a digital video recorder; an
intelligent gaming console, such as the Microsoft.RTM. Xbox.RTM.,
Sony.RTM. PlayStation.RTM., or Nintendo.RTM. GameCube.RTM.; a media
console such as the Apple.RTM. TV.RTM.; a personal computer; and
the like. The second device 54 is coupled to a display 58, which
may comprise, for example, a television, a projector, or an
integral display device such as an LCD monitor. Both the first
device 18 and the second device 54 are coupled to a local area
network 60 by respective communications links 62, 64. The
communications links 62, 64 may comprise any suitable data
communication technologies, such as Wi-Fi, Bluetooth, Ethernet, and
the like. For purposes of illustration, assume that the
communications link 62 comprises a Wi-Fi communications link and
the communications link 64 comprises a wired Ethernet
communications link.
[0045] FIG. 7 is a message flow diagram illustrating an exemplary
message flow and associated processing for using a credential
obtained from a first data stream that was delivered to a first
device to authenticate the delivery of a second data stream to a
second device. FIG. 7 will be discussed in conjunction with FIG. 6.
Assume that the first device 18 is currently receiving a first data
stream of a media item. In particular, assume that the first device
18 is receiving the data stream 38 (FIG. 5) of the media item 36-1.
Assume further that the user 26 desires to watch the remainder of
the media item 36-1 on the display 58, which may comprise, for
example, a 1080P high definition television. The user 26 may
activate a menu on the first device 18 that provides a plurality of
options, including, for example, transferring the rights to view a
media stream that is, or has been, received on the first device 18
to one or more other devices, such as the second device 54. The
user 26 selects an option to transfer the rights to the media item
36-1 from the first device 18 to the second device 54 (step 4000).
In one embodiment, the first device 18 may generate a message that
includes the credential extracted from the data stream 38, and send
the message to the second device 54 (step 4002). The second device
54 generates a message including the credential and a request to
receive a data stream corresponding to the media item 36-1 (step
4004). The second device 54 sends the message to the content server
14 (step 4006).
[0046] The content server 14 receives the message and authenticates
the credential. Authentication may include verifying that the
second device 54 is registered as being associated with the first
user 26 and is thus authorized to receive the second data stream
(step 4008). For example, the service provided by the content
provider 12 may allow a subscriber, such as the user 26, to
associate a finite number of devices, such as the first device 18
and the second device 54, with the subscription. The devices that
are included in the subscription may be identified in any desirable
manner, such as, for example, via IP addresses, unique device
identifiers, Digital Rights Management (DRM) techniques, and the
like. This information may be included in the message sent by the
second device 54 to the content server 14. In one embodiment, the
first device 18 and the second device 54 may include respective
software modules that register the devices with the content server
14 as authorized agents to play back DRM media items.
[0047] Assume that the content server 14 authenticates the
credential, and determines that the second device 54 is included in
the subscription associated with the user 26. The subscription may
also include information used by the content server 14 to select a
second data stream, such as the resolution of the display 58, the
bandwidth of the communications link 64, or both. Alternatively,
the second device 54 may provide such information in the message to
the content server 14. In yet another embodiment, the content
server 14 may determine the available bandwidth between the content
server 14 and the second device 54 by sending a predetermined
amount of data to the second device 54 and calculating a bandwidth
based on the rate the data is received by the second device 54.
[0048] The content server 14 selects a second data stream, such as,
for example, the data stream 44 (step 4010). The content server 14
provides the second data stream to the second device 54 (step
4012). The second device 54 receives the second data stream, and
begins to provide the second data stream for presentation to the
user 26 via the display 58 (step 4014).
[0049] In another embodiment, rather than send the credential to
the second device 54, the first device 18 generates a message that
includes the credential and a request to send a second data stream
to the second device 54. The first device 18 sends the message
directly to the content server 14. The content server 14
authenticates the credential, verifies that the second device 54 is
associated with the subscription of the user 26, and provides the
second data stream to the second device 54.
[0050] FIG. 8 is a message flow diagram illustrating another
exemplary message flow and associated processing for using a
credential obtained from a first data stream that was delivered to
a first device to authenticate the delivery of a second data stream
to a second device. Assume that the first data stream delivered to
the first device 18 is the base layer data stream 46 (FIG. 5)
corresponding to the media item 36-N. The initial steps 5000-5008
may be similar to the corresponding steps 4000-4008 described with
respect to FIG. 7, and for the sake of brevity will not be
described again herein. The content server 14 selects a second data
stream from the data streams 48-52 (step 5010). The content server
14 may select a single data stream, or may combine two or more of
the data streams 48-52. For example, if the content server 14
determines that the bandwidth between the content server 14 and the
second device 54 is sufficiently high, the content server 14 may
combine the data streams 48-52 into a single data stream for
delivery to the second device 54. Alternately, the content server
14 may choose only one of the data streams 48-52 for delivery to
the second device 54.
[0051] Assume that the first device 18 has already received the
entire first data stream at the time the user 26 decides to view
the media item on the second device 54. The first device 18 may
send the first data stream to the second device 54 (step 5012). The
second device 54 begins storing the first data stream in the
content storage 56 (step 5014). The content server 14 also begins
delivery of the second data stream to the second device 54 (step
5016). The second device 54 combines the first data stream and the
second data stream to form a combined data stream (step 5018). The
second device presents the combined data stream for presentation to
the user 26 on the display 58 (step 5020).
[0052] While FIG. 8 illustrates the transfer of a credential from a
mobile device that is a relatively low resolution device to a fixed
device that is a relatively high resolution device, it is apparent
that the process could be reversed in a similar manner. For
example, the user 26 may order the media item 36-1 for receipt by
the second device 54. The content server 14 may begin providing a
first data stream to the second device 54. Because the
communications link 64 may be a relatively high bandwidth
communications link, and the display 58 may be a relatively high
resolution display, assume that the first data stream is a
relatively high bit rate data stream, such as the data stream 44.
After viewing a portion of the media item 36-1 on the display 58,
the user 26 may desire to physically move to a location other than
the locale of the second device 54. The user 26 may interact with
the second device 54, via a remote control or other input device,
and direct the second device 54 to transfer the credential
associated with the first data stream to the first device 18.
[0053] The first device 18 generates a message including the
credential and a request to provide a second data stream, as
described previously. The first device 18 sends the message to the
content server 14. The content server 14 receives the message,
authenticates the credential, and determines that the first device
18 is associated with the subscription of the user 26, as described
previously. The content server 14 determines that the
communications link 62 is a relatively low bandwidth connection, or
that the display 22 is a relatively low resolution display, selects
the data stream 38 as the second data stream, and begins delivering
the second data stream to the first device 18.
[0054] In another embodiment, the first data stream may be
segmented into multiple segments, and a credential may be embedded
by the content server 14 in each of the multiple segments that
makes up the first data stream. As the first device 18 receives
each segment, it extracts the corresponding segment credential and
stores the corresponding segment credential in a data structure. In
order to receive a second data stream corresponding to the media
item, the first device 18 (or second device 54, as the case may
be), provides the entire data structure to the content server 14.
In one embodiment, if only a portion of the media item will be
presented, then only the credentials corresponding to such portion
must be provided to the content server 14. In another embodiment,
only the most recently extracted credential from the first data
stream need be provided from the first device 18 to the second
device 54 in order for the second device 54 to receive the second
data stream.
[0055] While embodiments have been illustrated herein in the
context of a single content provider 12, in other embodiments the
first data stream may be obtained from a first content provider 12
and the second data stream may be obtained from a second content
provider 12. For example, a uniform standard for content rights may
be implemented such that if an appropriate credential is supplied
to any content provider 12, such content provider 12 shall provide
a second data stream corresponding to the media item with which the
credential is associated, irrespective of which content provider 12
provided the first data stream.
[0056] FIG. 9 illustrates components of an exemplary processing
device 66 which may be used to implement a first device 18, a
second device 54, or a content server 14, according to some
embodiments. The processing device 66 may, when implementing a
device such as a media controller, comprise a set-top box; a
digital video recorder; an intelligent gaming console, such as the
Microsoft.RTM. Xbox.RTM., Sony.RTM. PlayStation.RTM., or
Nintendo.RTM. GameCube.RTM.; a media console such as the Apple.RTM.
TV.RTM.; a personal computer; and the like.
[0057] The processing device 66 may, when implementing a mobile
device, comprise a cellular phone, a mobile gaming platform, a
personal digital assistant (PDA), a tablet computer, a laptop
computer, and the like. The processing device 66 may, when
implementing a content server, comprise a computer or the like. In
addition to components discussed previously herein, the exemplary
processing device 66 may also include a central processing unit 68,
a system memory 70, and a system bus 72. The system bus 72 provides
an interface for system components including, but not limited to,
the system memory 70 and the central processing unit 68. The
central processing unit 68 can be any of various commercially
available or proprietary processors. Dual microprocessors and other
multi-processor architectures may also be employed as the central
processing unit 68.
[0058] The system bus 72 can be any of several types of bus
structures that may further interconnect to a memory bus (with or
without a memory controller), a peripheral bus, and a local bus
using any of a variety of commercially available bus architectures.
The system memory 70 can include non-volatile memory 74 (e.g., read
only memory (ROM), erasable programmable read only memory (EPROM),
electrically erasable programmable read only memory (EEPROM), etc.)
and/or volatile memory 76 (e.g., random access memory (RAM)). A
basic input/output system (BIOS) 78 can be stored in the
non-volatile memory 74, which can include the basic routines that
help to transfer information between elements within the processing
device 66. The volatile memory 76 can also include a high speed RAM
such as static RAM for caching data.
[0059] The processing device 66 may further include a storage 80,
which may comprise, for example, an internal hard disk drive (HDD)
(e.g., enhanced integrated drive electronics (EIDE) or serial
advanced technology attachment (SATA)). The storage 80 may
implement one or more of the content storages 28, 30, or 56. The
processing device 66 may further include an optical disk drive 82
(e.g., for reading a CD-ROM or DVD 84). The drives and associated
computer-readable media provide non-volatile storage of data, data
structures, computer-executable instructions, and so forth. For the
processing device 66, the drives and computer-readable media
accommodate the storage of any data in a suitable digital format.
Although the description of computer-readable media above refers to
an HDD and optical media such as a CD-ROM or DVD, it should be
appreciated by those skilled in the art that other types of media
which are readable by a computer, such as Zip disks, magnetic
cassettes, flash memory cards, cartridges, and the like, may also
be used in the exemplary operating environment, and further, that
any such media may contain computer-executable instructions for
performing novel methods of the disclosed architecture.
[0060] A number of program modules can be stored in the drives and
volatile memory 76, including an operating system 86 and one or
more program modules 88, which implement the functionality
described herein with respect to a particular first device 18,
second device 54, or content server 14. It is to be appreciated
that the embodiments can be implemented with various commercially
available operating systems or combinations of operating systems.
All or a portion of the embodiments may be implemented as a
computer program product, such as a computer-usable medium having a
computer-readable program code embodied therein. The
computer-readable program code can include software instructions
for implementing the functionality of embodiments described herein.
The central processing unit 68 in conjunction with the program
modules 88 in the volatile memory 76 may serve as a control system
for the processing device 66 that is adapted to implement the
functionality described herein.
[0061] In one embodiment, the program modules 88 may be implemented
in software and stored in the volatile memory 76. However, the
present disclosure is not limited thereto, and in other
embodiments, the program modules 88 may be implemented in software,
hardware, firmware, or any combination thereof. When implementing
the first device 18 or second device 54, the program modules 88 may
include modules for obtaining a data stream from the content server
14, extracting the credential therefrom, communicating with the
content server 14, rendering the presentation of a data stream on a
respective display 22 or 58, and other functionality described
herein with regard to the first device 18 or second device 54,
respectively. When implementing the content server 14, the program
modules 88 may include modules for selecting a data stream,
embedding a credential therein, authenticating a request for a data
stream, and other functionality described herein with regard to the
content server 14.
[0062] The user 26 may be able to enter commands and information
into the processing device 66 through one or more wired or wireless
input devices, for example, a keyboard and a pointing device, such
as a mouse (not illustrated). Other input devices (not illustrated)
may include a microphone, an infrared (IR) remote control, a
joystick, a game pad, a stylus pen, a touch screen, or the like.
These and other input devices may be connected to the central
processing unit 68 through an input device interface 90 that is
coupled to the system bus 72 but can be connected by other
interfaces such as a parallel port, an IEEE 1394 serial port, a
game port, a universal serial bus (USB) port, an IR interface,
etc.
[0063] The processing device 66 may drive a separate or integral
display device 92, which may also be connected to the system bus 72
via an interface, such as a video display adapter 94. The
processing device 66 may operate in a networked environment using a
wired and/or wireless communication network interface 96. The
network interface 96 can facilitate wired and/or wireless
communications to a network.
[0064] The processing device 66 may be operable to communicate with
any wireless devices or entities operatively disposed in wireless
communication, for example, a printer, a scanner, or a desktop
and/or portable computer, via wireless technologies, such as Wi-Fi
or Bluetooth, for example.
[0065] Those skilled in the art will recognize improvements and
modifications to the embodiments. All such improvements and
modifications are considered within the scope of the concepts
disclosed herein and the claims that follow.
* * * * *