U.S. patent number 9,270,563 [Application Number 14/552,202] was granted by the patent office on 2016-02-23 for apparatus and method for content playback utilizing crowd sourced statistics.
This patent grant is currently assigned to Roku, Inc.. The grantee listed for this patent is Roku, Inc.. Invention is credited to Pat Brouillette, Frank Maker.
United States Patent |
9,270,563 |
Brouillette , et
al. |
February 23, 2016 |
Apparatus and method for content playback utilizing crowd sourced
statistics
Abstract
A server includes a processor and a memory connected to the
processor to store instructions executed by the processor to
collect playback statistics from network connected content players,
perform an evaluation of the playback statistics, and establish a
playback configuration for specified content based upon the
evaluation of the playback statistics. A request for the playback
configuration for the specified content is received from a network
connected content player. The playback configuration for the
specified content is transferred to the network connected
player.
Inventors: |
Brouillette; Pat (Tempe,
AZ), Maker; Frank (Livermore, CA) |
Applicant: |
Name |
City |
State |
Country |
Type |
Roku, Inc. |
Saratoga |
CA |
US |
|
|
Assignee: |
Roku, Inc. (Saratoga,
CA)
|
Family
ID: |
55314789 |
Appl.
No.: |
14/552,202 |
Filed: |
November 24, 2014 |
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L
65/604 (20130101); H04L 67/22 (20130101); H04L
65/80 (20130101); H04L 65/1069 (20130101); H04L
65/4084 (20130101); H04L 67/34 (20130101); H04L
67/32 (20130101); H04L 65/4092 (20130101); H04L
43/0876 (20130101) |
Current International
Class: |
G06F
15/16 (20060101); H04L 12/26 (20060101); H04L
29/08 (20060101) |
Field of
Search: |
;709/203,221,232 |
References Cited
[Referenced By]
U.S. Patent Documents
Primary Examiner: Nguyen; Phuoc
Attorney, Agent or Firm: Sterne, Kessler, Goldstein &
Fox P.L.L.C.
Claims
The invention claimed is:
1. A system, comprising: a processor; and a memory connected to the
processor to store instructions executed by the processor to:
retrieve playback statistics from a plurality of different network
connected content players, perform an evaluation of the playback
statistics, establish a playback configuration for individual
instances of content based upon the evaluation of the playback
statistics, receive, from a first network connected content player
of the plurality of different network connected content players, a
request to select a playback configuration corresponding to a
specified instance of the content, the selected playback
configuration including an aggregate of the playback statistics,
and transfer the selected playback configuration corresponding to
the specified instance of the content to the first network
connected player.
2. The system of claim 1 wherein the playback statistics
characterize audio attributes or video attributes of the
content.
3. The system of claim 2 wherein audio attributes are selected from
volume level, peak volume, equalization, dynamic range, speaker
configuration, room acoustics and codec used.
4. The system of claim 2 wherein video attributes are selected from
video histogram, colorimetry information, scene changes detected,
codec used, container format, raw video data and metadata.
5. The system of claim 1 wherein the playback configuration
includes playback configuration information for individual segments
of the specified content and aggregated playback configuration
information for the specified content.
6. The system of claim 1, wherein the memory stores instructions
executed by the processor to: aggregate different playback
statistics from the plurality of different network connected
content players to form a distribution for different
characteristics associated with playback the individual instances
of content.
7. The system of claim 6, wherein the memory stores instructions
executed by the processor to: generate a value for each of the
different characteristics, wherein the value is used as a playback
configuration parameter for future individual instances of the
content.
8. The system of claim 1, wherein the playback configuration
includes playback configuration information for individual segments
of the specified instance of content and aggregated play
configuration information for an entirety of the specified instance
of content.
9. A content player, comprising: a processor; and a memory
connected to the processor to store instructions executed by the
processor to: receive content over a network, receive, from a
crowdsourcing server, an indication to collect statistics in
response to an inquiry about whether to collect statistics, play
the content, and upload, in response to the indication, content
statistics collected during playback to the crowdsourcing server,
wherein the content statistics characterize audio or video
attributes of the content and are used by the crowdsourcing server
to generate a playback configuration for the content player and
different content players connected to the crowdsourcing server,
the playback configuration including an aggregate of playback
statistics from the different content players.
10. The content player of claim 9 wherein the memory stores
instructions executed by the processor to: fetch a playback
configuration from the crowdsourcing server, wherein the playback
configuration includes playback parameters calculated based on an
aggregated analysis of playback statistics from the different
content players, and play content in accordance with the playback
configuration.
11. The content player of claim 9 wherein audio attributes are
selected from volume level, peak volume, equalization, dynamic
range, speaker configuration, room acoustics, and codec used.
12. The content player of claim 9 wherein video attributes are
selected from video histogram, colorimetry information, scene
changes detected, codec used, container format, raw video data and
metadata.
13. The content player of claim 9 wherein the playback
configuration includes playback configuration information for
individual segments of the content and aggregated playback
configuration information for the content.
14. A method comprising: retrieving, by a computing device,
playback statistics from a plurality of different network connected
content players; performing, by the computing device, an evaluation
of the playback statistics; establishing, by a computing device, a
playback configuration for individual instances of content based
upon the evaluation of the playback statistics; receiving, by the
computing device, from a first network connected content player of
the plurality of different network connected content players, a
request to select a playback configuration corresponding to a
specified instance of the content, content, the selected playback
configuration including an aggregate of the playback statistics;
and transferring, by the computing device, the selected playback
configuration corresponding to the specified instance of the
content to the first network connected player.
15. The method of claim 14, wherein the establishing comprises:
aggregating different playback statistics from the plurality of
different network connected content players to form a distribution
for different characteristics associated with playback the
individual instances of content.
16. The method of claim 15, wherein the establishing further
comprises: generating a value for each of the different
characteristics, wherein the value is used as a playback
configuration parameter for future individual instances of the
content.
17. The method of claim 14, wherein the playback configuration
includes playback configuration information for individual segments
of the specified instance of content and aggregated play
configuration information for an entirety of the specified instance
of content.
18. A method comprising: receiving, by a computing device, content
over a network; receiving, from a crowdsourcing server, an
indication to collect statistics in response to an inquiry about
whether to collect statistics; playing, by the computing device,
the content; and uploading, by the computing device, in response to
the indication, content statistics collected during playback to the
crowdsourcing server, wherein the content statistics characterize
audio or video attributes of the content and are used by the
crowdsourcing server to generate a playback configuration for the
content player and different content players connected to the
crowdsourcing server, the playback configuration including an
aggregate of playback statistics from the different content
players.
19. The method of claim 18, further comprising: fetching a playback
configuration from the crowdsourcing server, wherein the playback
configuration includes playback parameters calculated based on an
aggregated analysis of playback statistics from the different
content players; and playing content in accordance with the
playback configuration.
20. The method of claim 18, wherein the playback configuration
includes playback configuration information for individual segments
of the content and aggregated playback configuration information
for the content.
Description
FIELD OF THE INVENTION
This invention relates to content distribution and playback in a
networked environment. More particularly, this invention relates to
content playback techniques utilizing crowd sourced statistics.
BACKGROUND OF THE INVENTION
When viewing on-demand media (e.g., video, audio, games, etc.) on a
device (e.g., a streaming media player, a game console, etc.) the
playback parameters are specified. International digital standards
exist for playback devices to play all content in a uniform manner,
but they are not uniformly applied. For example, in the case of
audio a volume level may be specified when mastered content is
formed. After distribution of the mastered content to various
content providers, such content providers may specify distinct
audio volume levels. Thus, a single version of mastered content may
be delivered by different content providers with different audio
parameters. Alternately, or in addition, the content provider does
not deliver all content with uniform audio parameters.
Consequently, there are non-uniform user experiences as the
mastered content is consumed.
In view of the foregoing, it would be desirable to improve user
experiences during content playback.
SUMMARY OF THE INVENTION
A server includes a processor and a memory connected to the
processor to store instructions executed by the processor to
collect playback statistics from network connected content players,
perform an evaluation of the playback statistics, and establish a
playback configuration for specified content based upon the
evaluation of the playback statistics. A request for the playback
configuration for the specified content is received from a network
connected content player. The playback configuration for the
specified content is transferred to the network connected
player.
A content player has a processor and a memory connected to the
processor to store instructions executed by the processor to
receive content over a network, play the content, and upload
content statistics collected during playback to a server, where the
content statistics characterize audio or video attributes of the
content.
BRIEF DESCRIPTION OF THE FIGURES
The invention is more fully appreciated in connection with the
following detailed description taken in conjunction with the
accompanying drawings, in which:
FIG. 1 illustrates a system configured in accordance with an
embodiment of the invention.
FIG. 2 illustrates a content player configured in accordance with
an embodiment of the invention.
FIG. 3 illustrates processing operations associated with a content
player configured in accordance with an embodiment of the
invention.
FIG. 4 illustrates processing operations associated with a server
configured in accordance with an embodiment of the invention.
Like reference numerals refer to corresponding parts throughout the
several views of the drawings.
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 illustrates a system 100 configured in accordance with an
embodiment of the invention. The system 100 includes a set of
content players 102_1 through 102_N. Each content player may be a
streaming media player, a game console, audio/video receiver and
the like. Each content player 102 may have an associated display
and speaker 104. For example, content player 102_1 may have
associated display and speaker 104_1, while content player 102_N
may have an associated display and speaker 104_N. Each content
player 102 is connected to a network 106, which may be any
combination of wired and/or wireless networks.
A set of content servers 108_1 through 108_N are connected to the
network 106. Content server 108_1 includes standard components,
such as a central processing unit 110 connected to input/output
devices 112 via a bus 114. The input/output devices 112 may include
a keyboard, mouse, display and the like. A network interface
circuit 116 is also connected to the bus 114 to provide
connectivity to network 106. A memory 120 is also connected to the
bus 114. The memory 120 has an associated content source 122. The
content source 122 may include individual instances of content,
such as on-demand video, on-demand music, on-demand games and the
like.
Similarly, server 108_N has standard components, such as a central
processing unit 130, input/output devices 132, a bus 134, a network
interface circuit 136 and a memory 140. Memory 140 has an
associated content source 142. The content source 142 may include
individual instances of content, such as on-demand video, on-demand
music, on-demand games and the like. The content in content source
122 and content source 142 may be identical, may be completely
different or may have some overlap.
A server 150 is also connected to network 106. The server 150 is
configured as a content player master. That is, each content player
102 is configured to access and receive instructions from server
150.
The server 150 includes standard components, such as a central
processing unit 160, input/output devices 162, a bus 164, a network
interface circuit 166 and a memory 170. The memory 170 stores
instructions executed by the central processing unit 160 to
implement operations associated with an embodiment of the
invention. In one embodiment, the memory 170 stores a set of
playback statistics 172. The set of playback statistics 172 are
collected from individual content players 102. In particular, a
content player 102 plays a piece of content. The content player
subsequently uploads playback statistics associated with the
content to the content player master 150. The playback statistics
characterize audio or video attributes of the content. The playback
statistics from the different content players 102_1 through 102_N
are aggregated to form playback statistics 172.
The memory 170 also includes an evaluation module 174. The
evaluation module 174 includes instructions executed by the central
processing unit 160 to evaluate the playback statistics 172.
Consider the case of volume level statistics. The playback
statistics 172 may include N instances of volume level statistics
for a single set of content. The single set of content may be
identified using a uniform resource indicator. Such statistics may
be aggregated to form a distribution of volume levels associated
with the playback of the content. The evaluation module 174 may
identify a mean volume level and use that value as a playback
configuration parameter for future instances in which the content
is requested for playback. The playback configuration may have any
number of parameters formed in this manner.
The playback configuration may be stored by the playback module
176. The playback module 176 stores a playback configuration for
each identified content instance. When a specified instance of
content is identified for playback on a content player 102, the
content player 102 may fetch a playback configuration from the
playback module 176. The playback module 176 transfers the playback
configuration to the requesting content player 102. The requesting
content player utilizes the playback configuration for the playback
of the content.
Thus, the invention provides a system in which content players
gather playback statistics which can be utilized to create a more
uniform playback experience. Thus, crowdsourcing is used to create
a more uniform playback experience.
FIG. 2 provides an example configuration for a content player 102.
In one embodiment, the content player 102 is configured to stream
on-demand content into the device. The content streamed into the
content player 102 may be audio content, visual content,
applications and games. In one embodiment, the content player 102
is utilized to transmit instructions and selections to the server
150.
In one embodiment, the content player 102 includes a processor 200,
power manager 202, remote control interface 204 and network
interface 206. The content player 102 may also include audio/visual
circuitry 206, input/output ports 208 and memory 210. Memory 201
stores instructions to upload playback statistics to server 150 and
instructions to fetch playback configurations from server 150.
The processor 200 may utilize a central processing unit (CPU). In
another embodiment, the processor 200 also utilizes a graphics
processing unit (GPU), which may be integrated with the CPU or be
configured to be physically separate. In one embodiment, the
internal memory 210 includes one of or a combination of random
access memory (RAM), flash memory, and read only memory (ROM).
Additional memory and memory interfaces may be provided in various
embodiments to support memories such as external storage, which may
include hard disks, Universal Serial Bus (USB) drives, Secure
Digital (SD) cards, and the like. These memories may also be used
for storage of applications, programs, buffered media, media,
executable computer code, and software keys.
The remote control interface 204 enables an input device (e.g., a
web browser interface, a smartphone application or remote control)
to interface with the content player 102. In one embodiment, the
remote control interface 204 is configured to communicate with the
input device through a wireless interface such as Bluetooth (BT),
radio frequency (RF) and infrared (IR). In one embodiment, the
remote control interface 204 supports the functionality through an
input device including any combination of virtual buttons embodied
on a customization screen, physical buttons, accelerometer,
gyroscope, pressure sensor, tilt sensor, magnetic sensor,
microphone, and light sensor.
In one embodiment, the I/O interface 208 supports multiple video
output options such as High Definition Multimedia Interface (HDMI),
Red-Green-Blue (RGB) component video, Separate Video (S-video),
Digital Visual Interface (DVI), Video Graphics Array (VGA), Mobile
High-Definition Link (MHL), and composite video. In one embodiment,
USB and Apple.RTM. Thunderbolt.RTM. enabled displays are also
supported.
In one embodiment, network interface 206 supports multiple network
interfaces such as Ethernet, Wi-Fi, and Bluetooth. In another
embodiment, the network interface 206 also supports coaxial,
digital TV antenna, and satellite television.
FIG. 3 illustrates processing operations associated with an
embodiment of the content player 102. Initially, a content player
102 receives content 300. The content is received over network 106
from any of the content servers 108_1 through 108_N.
The content player then asks server whether it should collect
statistics 302. That is, instructions stored in memory 210 are
executed by processor 200 to make a call to the content player
master 150 through network interface circuit 206, which is
connected to network 106. The content player master 150 may require
that a certain number of initial statistics be available before a
playback configuration may be specified. The content player master
150 may periodically want to update statistics even after a
playback configuration is established. Thus, the collection of
statistics need not be limited to the initial evaluation of new
content.
If statistics are to be collected (302--Yes), the content player
then plays the content 304. Typically, the content is compressed,
in which case the content player decompresses the content during
the playback process. Playback statistics are then uploaded 306.
That is, the content player 102 uploads playback statistics to the
content player master 150.
If statistics are not to be collected (302--No), then the playback
configuration is fetched 308. The playback configuration specifies
optimal settings for playback based upon collected statistics. The
content is then played 310 in accordance with the playback
configuration.
The aggregation of statistics may be done on a device-specified or
a device-anonymous basis. For example, in the case of a known
content player master server, device-specified data may be
maintained. In an alternate embodiment, the content player master
server may be an open source server that aggregates playback
statistics on an anonymous basis.
As previously indicated, the playback statistics characterize audio
or video attributes of the content. The audio attributes may be
selected from volume level, peak volume, equalization, dynamic
range, speaker configuration, room acoustics and codec used. The
video attributes may be selected from video histogram, colorimetry
information, scene changes detected, codec used, container format,
raw video data and metadata.
FIG. 4 illustrates processing operations associated with the
content player master server 150. The server 150 collects playback
statistics 400. This collection is performed via network 106.
Content players 102_1 through 102_N may provide such statistics, as
may other device connected to network 106. The collected playback
statistics constitute playback statistics 172.
Next, playback statistics are evaluated 402. This operation may be
performed by evaluation module 174, as discussed above. The
evaluation process results in a playback configuration to equalize
user experiences across content players for a specified instance of
content. The server 150 may then service a configuration request
406. If such a request exists (406--Yes), a playback configuration
is collected 408. That is, a playback configuration is collected
for specified content. The playback configuration is then
transferred 410 to the requesting content player. The playback
configuration may include playback configuration information for
individual segments of the content and aggregated playback
configuration information for the content. It should also be
appreciated that the server may perform the operation of block 402
in response to a specific request. That is, playback statistics may
be evaluated in response to a discrete query, not simply in
connection with the collection of playback statistics.
An embodiment of the present invention relates to a computer
storage product with a non-transitory computer readable storage
medium having computer code thereon for performing various
computer-implemented operations. The media and computer code may be
those specially designed and constructed for the purposes of the
present invention, or they may be of the kind well known and
available to those having skill in the computer software arts.
Examples of computer-readable media include, but are not limited
to: magnetic media, optical media, magneto-optical media and
hardware devices that are specially configured to store and execute
program code, such as application-specific integrated circuits
("ASICs"), programmable logic devices ("PLDs") and ROM and RAM
devices. Examples of computer code include machine code, such as
produced by a compiler, and files containing higher-level code that
are executed by a computer using an interpreter. For example, an
embodiment of the invention may be implemented using JAVA.RTM.,
C++, or other programming language and development tools. Another
embodiment of the invention may be implemented in hardwired
circuitry in place of, or in combination with, machine-executable
software instructions.
The foregoing description, for purposes of explanation, used
specific nomenclature to provide a thorough understanding of the
invention. However, it will be apparent to one skilled in the art
that specific details are not required in order to practice the
invention. Thus, the foregoing descriptions of specific embodiments
of the invention are presented for purposes of illustration and
description. They are not intended to be exhaustive or to limit the
invention to the precise forms disclosed; obviously, many
modifications and variations are possible in view of the above
teachings. The embodiments were chosen and described in order to
best explain the principles of the invention and its practical
applications, they thereby enable others skilled in the art to best
utilize the invention and various embodiments with various
modifications as are suited to the particular use contemplated. It
is intended that the following claims and their equivalents define
the scope of the invention.
* * * * *