Source: https://patents.justia.com/patent/9215502
Timestamp: 2019-10-18 22:04:52
Document Index: 547533792

Matched Legal Cases: ['art 225', 'art 225', 'art 225', 'art 225', 'art 225', 'art 12', 'art 12', 'art 10', 'art 225']

US Patent for User behavior indicator Patent (Patent # 9,215,502 issued December 15, 2015) - Justia Patents Search
Justia Patents Based On Usage Or User Profile (e.g., Frequency Of Use)US Patent for User behavior indicator Patent (Patent # 9,215,502)
Sep 22, 2014 - Google
A method for determining user behavior related to media includes receiving a media file containing media, partitioning the media into segments, monitoring user behavior with respect to the media and the segments, logging user behavior with respect to the segments, and identifying a baseline level of user interest with respect to the media. The method may further include comparing logged user behavior with respect to a segment of the media with the baseline level of user interest with respect to the media, responsive to determining that the deviation exceeds a threshold, tagging the media segment to indicate that deviation of the logged user behavior with respect to the segment of the media from the baseline level of user interest with respect to the media, and communicating with a user device regarding tagged segments.
This application is a continuation of U.S. patent application Ser. No. 13/595,121 filed Aug. 27, 2012, now issued U.S. Pat. No. 8,843,951, which is incorporated herein by reference in its entirety.
Video hosting refers to service where users distribute videos, typically found on the Internet. Video-hosting websites allow users to discover videos available over the Internet. A user discovers videos of interest by submitting a search query to the video-hosting website or browsing in different categories or channels of the video-searching website. Using either approach, the video host presents the user with a list of videos from which he or she can choose.
Once a user finds a video of interest and selects a link to the video, the user loads a webpage associated with the video and views the video and/or details of the video. The video-hosting website allows a user to search and view videos contained within the video-hosting website, or videos located on or sourced from other websites.
Described herein are techniques for determining user behavior related to media interaction, such as viewing a video. Techniques for determining user behavior related to media are described. A media file containing media is received. The media is partitioned into segments. The user-interaction analyzer monitors user behavior with respect to viewing the media and the segments. The user's behavior with respect to viewing the segments is logged. Normal user behavior with respect to the media is determined and stored. Logged user behavior with respect to interaction with a segment of the media is compared with the determined normal user behavior with respect to the media. Whether logged user behavior of a particular media segment deviates from normal relative to the determined normal user behavior is determined. Responsive to a not normal determination of a particular media segment, that segment is tagged. The tagged segment is communicated to a user device configured to display indicia indicating user behavior related to media to help inform which parts users tend to like the most.
FIG. 1 displays a screen shot illustrating an example of a user interface displaying videos associated with a user search query in accordance with one or more implementations described herein.
FIG. 2 displays a screen shot illustrating an example of a user interface displaying the target video in accordance with one or more implementations described herein.
FIG. 3 displays a screen shot illustrating the example of FIG. 2 with the target video at a different play segment in accordance with one or more implementations described herein.
FIG. 4 displays a high-level block diagram of example computer architecture in which techniques for determining user behavior related to videos can be employed in accordance with one or more implementations described herein.
FIG. 5 displays a high-level block diagram of an example media-hosting service system architecture in which techniques for determining user behavior related to videos can be employed in accordance with one or more implementations described herein.
FIG. 6 displays a flow chart of an example process for determining user behavior related to videos in accordance with one or more implementations described herein.
FIG. 7 displays a screen shot illustrating another example of a user interface displaying the target video in accordance with one or more implementations described herein.
Content delivery systems provide Internet users access to an enormous selection of media content, such as video. Non-professionals produce a large proportion of this video content, resulting in many videos considered less interesting or too long to be of interest. Many times when a viewer selects a video, that video contains segments of material in which the user is less interested. The user must put forth effort to view the content of the individual videos to determine if the video contains relevant material. Accordingly, users can view videos without relevant or interesting content instead of related videos with truly relevant or interesting material.
In addition, many videos that people watch online, even when professionally produced, are quite long, for example an hour or longer. Sometimes there are parts that are less interesting that users choose to skip. Other times there are parts that are particularly interesting that users repeat. For example, soccer matches are often recorded live, then replayed in their entirety. Soccer matches consist of two 45 minute periods. Often during the match, the teams are controlling the ball and jockeying for advantage. These long stretches can be interrupted with exhilarating segments, such as when a goal is scored, a goalie makes a great save, a penalty kick is rewarded, and the like.
When viewing such video, each user discovers the parts that are less interesting or more interesting. And each user has to find the parts that matter or choose to abandon the video. By way of further example, a music video might start slow and not have interesting initial content. Later, the music video may have a spectacular visual and song, but the user misses this interesting content because the user might have stopped watching or skipped to the wrong part.
Still further, sometimes someone who is passionate about a topic or managed to find an interesting part of a video shares that video. When the video is shared, the people viewing might not have the interest to watch the full video to find the interesting part, which is necessary in order for them to be able to decide whether the video is worth resharing. More content sharing is important for a social network to increase activity.
FIG. 1 displays an example user interface 101 illustrating a result page responsive to a user querying the keyword “Ducati” into a dialog box 103, for videos related to products sold by Ducati Motor Holding S.P.A. For the keyword, the user interface 101 lists appropriate videos retrieved from a video repository. Examples of appropriate videos include “La storia della Ducati Superbike” 105 and “Lamborghini Gallardo vs. Ducati 999” 107. After reviewing the result page, the user selects a target video from the result page to watch.
After selection of the target video, a front-end interface transmits and presents the requested video and related-video links to the user. In addition, icon or thumbnail views of related videos accompany the links, along with associated metadata such as, for example, title, author, tags, and rating. For example, if a user provides the front-end interface with a request for a specific video with the title of “La storia della Ducati Superbike”, the front-end interface presents the selected target video to the user along with links to related videos.
FIG. 2 displays an example webpage 201 playing the video 203 with the title of “La storia della Ducati Superbike” 205. The webpage 201 contains controls 207 that allow a user to control how and when to play the video 201. Such controls 207 can include, for example, a play/pause button 209, a progress bar 211 that allows a user to skip ahead or repeat, a timer 213, a volume control 215, and a screen size adjustment 217. A video-information box 219 contains information about the video. A related-videos box 221 contains links to videos that a video-hosting service has determined to display as related to video 203. A video-serving module retrieves the related videos from a video repository for user presentation. If a user selects a link of a related video, the video-hosting service 201 plays the related video.
In FIG. 2, a segment of the video that is being displayed could be the beginning, where less interesting information may be displayed. For example, perhaps the beginning of a video has advertising and technical information such as engine displacement, top speed, 0-60 miles per hour time, and the like.
FIG. 3 displays the same example webpage 201; however, in FIG. 3 a later segment of the “La storia della Ducati Superbike” video 303 is displayed. For example, this later segment might show interesting highlights from a motorcycle race.
Techniques for determining user behavior related to media interaction, such as viewing a video, are described. The term ‘techniques’ refers to device(s), system(s), method(s) and/or computer-readable instructions as permitted by the context above and throughout the document. A media file containing media is received. The media is partitioned into segments. The user-interaction analyzer monitors user behavior with respect to viewing the media and the segments. The user's behavior with respect to viewing the segments is logged. Normal user behavior with respect to the media is determined and stored. Logged user behavior with respect to interaction with a segment of the media is compared with the determined normal user behavior with respect to the media. Whether logged user behavior of a particular media segment deviates from normal relative to the determined normal user behavior is determined. Responsive to a not normal determination of a particular media segment, that segment is tagged. The tagged segment is communicated to a user device configured to display indicia indicating user behavior related to media to help inform which parts users tend to like the most.
Referring back to FIG. 2, segment ratings are displayed to reflect user behavior related to media. In one example, a viewer intensity chart 225 is depicted. The viewer intensity chart 225 can be used in conjunction with the progress bar 211. The viewer intensity chart 225 provides a visual depiction of which parts of the video other users liked or not. In FIG. 2, the video is at the early stages—in this example 2:00 minutes. Relatively less interesting content is being displayed, as indicated by the viewer intensity chart 225. Referring to FIG. 3, the video is at a later stage —here 5:00 minutes. This later segment showing interesting highlights from a motorcycle race is identified as relatively more interesting content, as indicated by the viewer intensity chart 225.
FIG. 4 displays a high-level block diagram of example computer architecture in which techniques for determining user behavior related to videos described herein can be employed. The computer system 400 can include, in addition to hardware, computer-executable instructions stored in memory 404. A bus couples the memory 404 for storing information and instructions executable by processor 402. Special purpose logic circuitry can supplement or incorporate the processor 402 and the memory 404.
The computer system 400 further includes a data storage device 406 coupled to bus 408. The data storage device 406 stores information and instructions. An input/output module 410 may couple computer system 400 to various devices. The input/output module 410 can be any input/output module. Examples of input/output modules 410 include data ports such as universal serial bus (USB) ports. The input/output module 410 connects to a communications module 412. Examples of communications modules 412 include networking interface cards, such as Ethernet cards and modems.
The input/output module 410 connects to a number of devices, such as an input device 414 and/or an output device 416. Examples of input devices 414 include a keyboard and a pointing device such as, for example, a mouse, by which a user 415 can provide input to the computer system 400. Examples of output devices 416 include display devices such as, for example, a liquid crystal display (LCD) monitor for displaying information to the user 415.
According to one aspect, the techniques can be implemented using a computer system 400 in response to processor 402 executing one or more sequences of one or more instructions contained in memory 404. Another machine-readable medium, such as data storage device 406, may read such instructions into memory 404. Execution of the sequences of instructions contained in memory 404 causes processor 402 to perform the process steps described herein.
Computing system 400 can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
FIG. 5 shows a high-level block diagram of an example video-hosting service 501 that determines user behavior related to videos. Generally, the video-hosting service 501 represents any system that allows users to access video content via searching and/or browsing interfaces. In one implementation, the video-hosting service 501 makes available additional types of media. In addition to video, examples of media include audio media files such as music, podcasts, audio books, and the like; multimedia presentations; and so forth.
The video-hosting service 501 represents a system that stores and provides videos to users. The video-hosting service 501 communicates with a number of content providers 507 and clients 509 via a network 513. The configuration and management of large networks includes storage devices and computers that are communicatively coupled to dissimilar computers and storage devices. The network 513 is typically the Internet, but may be any network.
The client 509 is a computing device that executes client software such as, for example, a web browser 511 to load a website. The client 509 connects to the video-hosting service 501 via the network 513 to display videos. The client 509 can include a variety of different computing devices. Examples of computing devices include digital assistants, personal digital assistants, cellular phones, mobile phones, smart phones, laptop computers, tablet computers, and the like.
In some implementations, the client 509 includes an embedded-video player such as, for example, the FLASH® video player available from Adobe Systems Incorporated. Of course, the client 509 can include other players adapted for the video file formats used in the video-hosting service 501.
The videos are sourced from user uploads, searches or crawls of other websites or databases of videos, and combinations thereof. The video-hosting service 501 obtains data from various external websites 503. The websites 503 include one or more web pages accessible to the video-hosting service 501 via the network 513. The web pages include, for example, textual content such as HTML.
The user of the content provider 507 performs various content-provider functions. Examples of content-provider functions include uploading a video to the video-hosting service 501, editing a video stored by the video-hosting service 501, editing metadata information about a video, editing content-provider preferences associated with a video, and the like. For the sake of clarity, FIG. 5 depicts only one instance of website 503 and content provider 507, though there could be any number of each. In addition, while only one client 509 is shown, the video-hosting service 501 supports and communicates with very large numbers (such as millions) of clients at any time.
The video-hosting service 501 includes a front-end interface 515, a video-serving module 517, a video-search module 519, an upload server 521, a video repository 523, a user-interaction analysis module 527 including a user-interaction results database 529, a related-videos database 531, a video access log 533, and a user database 535. Other conventional features such as, for example, firewalls, load balancers, authentication servers, application servers, failover servers, site-management tools, and so forth are not shown so as to illustrate more clearly the features of the system.
The front-end interface 515 interfaces between the client 509 and the various components of the video-hosting service 501. The upload server 521 receives video content from a content provider 507. The video repository 523 contains a set of videos 525 submitted by content providers 507. The video repository 523 contains any number of videos 525 such as, for example, tens of thousands or hundreds of millions. The video repository 523 can be implemented using a database or file system, with indexing system for indexing and retrieving videos. A unique video identifier distinguishes each video from other videos, such as a textual name (for example, the string “a91qrx8”), an integer or any other way of uniquely naming a video.
In addition to audiovisual content, the videos 525 include associated metadata 525A. Examples of metadata include textual metadata such as a title, description, and/or tags provided by a content provider 507 who uploaded the video or metadata obtained by an analysis of a video done by the video-hosting service 501.
Using the video-search module 519, clients 509 search for videos from the video-hosting service 501 using keywords, browse various categories or channels, review play lists from other users or the system administrator (such as collections of videos forming channels), view videos associated with particular user groups (such as communities), and the like. The video-search module 519 locates appropriate videos in the video repository 523 to return to the client 509. The video-serving module 517 provides video data from the video repository 523 to the client 509. The user interaction-analysis module 527 determines when user behavior with respect to viewing the media segment is not normal. The user-interaction database 529 stores tagged media segments, as detailed below.
Various containers or wrappers package the videos 525. A container is a meta-file format whose specification describes how different data elements and metadata coexist in a computer file. Examples of meta-file format include audio video interleave or interleaved (AVI) multimedia container standard specified available from Microsoft Corporation; MP4 multimedia-container standard based on the International Organization for Standardization (ISO) base-media-file format defined in MPEG-4 Part 12 and JPEG-2000 Part 12; QuickTime file format (QTFF) (.mov) developed by Apple Inc.; and the like.
Video codecs encode the videos 525. A video codec enables video compression and/or decompression for digital video. An example of a video codec is the advanced video coding (AVC) standard H.264/MPEG-4, Part 10 developed by the International Telecommunication Union (ITU) T Video Coding Experts Group (VCEG) together with the (ISO)/International Electrotechnical Commission (IEC) Moving Picture Experts Group.
As previously introduced, techniques for determining user behavior related to media to help inform which parts users tend to like the most are described herein. Example implementations rate segments of media according to how interesting (or less interesting) the segments of media are to typical users. User experience is improved by providing indicators to show where these trends tend to happen to help users discover the content that matters. These interactions are described below with respect to an implementation for video media.
A video is partitioned into segments. The segments should be sufficiently long that a statistically significant measure can be made but sufficiently short that meaningful distinctions on the interest level displayed by a typical viewer when viewing the segment can be measured. In one implementation, the segments can be approximately 10 seconds each.
Segments of a video are scored based on the interest level displayed by a typical viewer when viewing the segment. Interest level can be determined in various ways. For example, users repeating a segment, skipping a segment, pausing on a segment, and/or repeating a segment can be utilized to determine interest levels.
Associated with each video, the number of pauses, plays, skips, and/or repeats are logged. Initially, video use is monitored to identify behavior that deviates from normal. In one implementation, the average number of pauses, plays, skips or repeats for a given video segment are determined. This establishes a baseline level of user interest against which to compare the user interest with respect to a given segment.
The number of pauses, plays, skips or repeats for a given segment are determined. The number of pauses, plays, skips or repeats for a given segment are compared against the number of pauses, plays, skips or repeats in the baseline level of user interest.
The standard deviation or dispersion from the baseline level of user interest is determined. A low standard deviation indicates that the data points tend to be very close to the mean, whereas high standard deviation indicates that the data points are spread out over a large range of values. A threshold standard deviation level is determined that represents a statistically significant level of user interest. In one implementation, if the number of pauses, plays, skips or repeats extends over a full standard deviation greater than ‘normal’, then this time segment can be tagged.
In further implementations, more sophisticated metrics can be monitored and measured. For example, user comments on the video can be utilized, such as when a user comment mentions a specific moment in the video. Links into a specific point in the video can be utilized.
Also, users can directly enter their interest levels. The user can provide an ‘interesting level’ per segment, or provide comparative measures, as in ‘segment 1 is more interesting than segment 2’. An example of how to train a model based on relative human judgment (as opposed to based on human ordinal scoring) is seen in Chechik, Sharma, Shalit, Bengio, “Large Scale Online Learning of Image Similarity Through Ranking”, 11 Journal of Machine Learning Research 1109 (March 2010) (available at jmlr.csail.mit.edu/papers/v11/chechik10a.html).
Additional viewer interactions signaling deeper interactions with a video can be measured. Examples include whether a viewer takes action on a segment to share, post a comment, chat, make an annotation, transition from a seek action to a play action, go to full screen, and/or retract from full screen. The latter example may indicate a less interesting segment, whereas the former examples may indicate an interesting segment.
Regression analysis and other types of filtering (for example, smoothing) operations may be performed on some of the measured quantities described above. Regression analysis refers to a statistical technique for estimating the relationships among variables. Various examples of regression analysis include the linear regression model, simple linear regression, logistic regression, nonlinear regression, nonparametric regression, robust regression, and stepwise regression.
In a further implementation, looking at data about user behavior across just all users can leave out insights that come from focusing on a particular user or group of users. Example of categorizing a particular user or group of users include particulars such as language, location, and interests. A further example is user information such as a user's location.
For example, consider a video about an incredible soccer play of the hometown team. The video could have data that is useful and interesting to the user when considering who in the team's area watched the video. Different groups might be more likely to replay and pause particular parts of the video. Also, the identified parts can be based on the interests of the user and the interest of the people who watched the video. For example, people interested in racing might tend to jump to a particular part that they find interesting, while people interested in motorcycles might tend to jump to a particular part that they find interesting. This information can be surfaced to other people interested in racing or motorcycles.
FIG. 6 is a flow chart illustrating operations of the video-hosting service 401 in determining user behavior related to videos according to one implementation. Other implementations perform the steps of FIG. 6 in different orders. In addition, other implementations include different and/or additional steps than the steps described herein. In one implementation, the steps of FIG. 6 are performed by one more executable programs that are part of the video-hosting service 401 in response to the video being uploaded to the video-hosting service 401 for storage. In another implementation, the steps of FIG. 6 are performed by the video-hosting service 401 in response to a user request to view the specific video stored on video-hosting service 401.
When a video is received (602), the video is partitioned into segments (604). Users' behavior with respect to the segments is monitored (606). User behavior with respect to the segments is logged (608). ‘Normal’ behavior is determined (610). If the number of pauses, plays, skips and/or repeats for a given video segment exceeds a standard deviation, then the segment is tagged (612). Tagged segments are rated based on the number of pauses, plays, skips, and/or repeats that exceed a standard deviation (616). Segment ratings are displayed with the video (618).
Referring to FIG. 7, another example of a display to show where these trends happen to help users discover the content that matters is seen, where like numbers depict like elements from FIG. 2. Again, a viewer intensity chart 225 is depicted. Again, the user again is provided with a visual image of what in the video other users ‘like’.
In this example, a highlight box 227 displays the segments of the video where users tend to watch more heavily that the rest of the video. Clicking ‘play all’ shows the replayed parts of a video in a row, which is useful because sometimes the replayed parts can be small segments and otherwise clicking on each one individually would take a while.
In addition, in this example a paused box 229 displays the segments of the video where users tend to pause more heavily than the rest of the video. Clicking “view frames” shows frame-by-frame the parts of the video that were paused or shows that segment in slow motion or with frame transitions to let the users focus on the content that users identified as interesting. On both examples, images are shown of the context of the video at those points to help the user decide. For example, the replayed/paused/played parts might show highlights of a remarkable motorcycle race, while otherwise watching the first part of the video might focus on someone giving historical context of the race.
Thus, by utilizing techniques for determining user behavior related to media described herein users will waste less valuable time with media without relevant or interesting content instead of related media with truly relevant or interesting material.
For the purposes of convenience, the uploaded media is sometimes described in a ‘video’ or ‘videos’ implementation; however, limitations on the types of uploaded media are not intended. Thus, the operations described herein apply to any type of media, not only videos. Examples of media include audio files such as music, podcasts, audio books, and the like; multimedia presentations; and so forth.
The implementation described herein is not inherently related to any particular hardware or other apparatus. The operations of the video-hosing service can be controlled through either hardware or through computer programs installed in computer storage and executed by the processors of servers. One or more processors in a multi-processing arrangement also may be employed to execute the sequences of instructions.
a user-interaction analyzer executable by the processing device and configured to: receive a media file containing media; partition the media into segments; monitor user behavior with respect to the media and the segments, the user behavior comprising viewing behavior with respect to the media and the segments; log user behavior with respect to the segments; identify a baseline level of user interest with respect to the media; compare logged user behavior with respect to a segment of the media with the baseline level of user interest with respect to the media to determine a deviation of the logged user behavior with respect to the segment of the media from the baseline level of user interest with respect to the media; responsive to determining that the deviation exceeds a threshold, tag the media segment to indicate that deviation of the logged user behavior with respect to the segment of the media from the baseline level of user interest with respect to the media; and an interface operatively associated with the processor, the interface being configured to communicate with a user device regarding tagged segments.
2. The system of claim 1, wherein the user behavior comprises at least one of pausing, playing, skipping, or repeating with respect to any of the segments.
3. The system of claim 1, wherein the user-interaction analyzer is further configured to:
rate the tagged segments; and
cause ratings of the tagged segments to be presented with the media.
4. The system of claim 1, wherein the user-interaction analyzer is further configured to:
cause a viewer intensity chart to be presented to a user with the media based on the tagged segments to indicate what other users like in the media.
5. The system of claim 1, wherein the user-interaction analyzer is further configured to:
identify segments of the media that have a highest viewing frequency;
cause the identified segments to be presented to a user with the media;
receive a user request to play the identified segments; and
cause the identified segments to be played to the user.
6. The system of claim 1, wherein the user-interaction analyzer is further configured to:
identify segments of the media that have a highest pause frequency;
receive a user request to view the identified segments; and
cause the identified segments to be presented to the user frame-by-frame.
7. The system of claim 6, wherein the identified segments are presented to the user in slow motion or with frame transitions.
receiving a media file containing media;
partitioning the media into segments;
monitoring user behavior with respect to the media and the segments, the user behavior comprising viewing behavior with respect to the media and the segments;
logging user behavior with respect to the segments;
identifying a baseline level of user interest with respect to the media;
comparing, by a processing device, logged user behavior with respect to a segment of the media with the baseline level of user interest with respect to the media to determine a deviation of the logged user behavior with respect to the segment of the media from the baseline level of user interest with respect to the media;
responsive to determining that the deviation exceeds a threshold, tagging the media segment to indicate that deviation of the logged user behavior with respect to the segment of the media from the baseline level of user interest with respect to the media; and
communicating with a user device regarding tagged segments.
9. The method of claim 8, wherein the user behavior comprises at least one of pausing, playing, skipping, or repeating with respect to any of the segments.
rating the tagged segments; and
causing ratings of the tagged segments to be presented with the media.
causing a viewer intensity chart to be presented to a user with the media based on the tagged segments to indicate what other users like in the media.
identifying segments of the media that have a highest viewing frequency;
causing the identified segments to be presented to a user with the media;
receiving a user request to play the identified segments; and
causing the identified segments to be played to the user.
identifying segments of the media that have a highest pause frequency;
receiving a user request to view the identified segments; and
causing the identified segments to be presented to the user frame-by-frame.
14. The method of claim 8, wherein the identified segments are presented to the user in slow motion or with frame transitions.
15. A non-transitory computer-readable medium storing instructions that, when executed, cause a processing device to perform operations comprising:
wherein the user behavior comprises at least one of pausing, playing, skipping, or repeating with respect to any of the segments.
21. The non-transitory computer-readable medium of claim 20, wherein the identified segments are presented to the user in slow motion or with frame transitions.
7743394 June 22, 2010 Smith et al.
7853969 December 14, 2010 Smith et al.
7941535 May 10, 2011 Sherrets et al.
8091101 January 3, 2012 Smith et al.
8132200 March 6, 2012 Karam
8271338 September 18, 2012 Hunt et al.
8429155 April 23, 2013 Aravamudan et al.
20030083951 May 1, 2003 Connelly
20080086742 April 10, 2008 Aldrey et al.
20090199251 August 6, 2009 Badoiu et al.
20100010877 January 14, 2010 Hunt et al.
20100088714 April 8, 2010 Hawkins et al.
20100169927 July 1, 2010 Yamaoka et al.
20110078718 March 31, 2011 Jakobi et al.
20110213769 September 1, 2011 Handman et al.
20120072935 March 22, 2012 Smith et al.
20120151513 June 14, 2012 Zigmond et al.
20120173865 July 5, 2012 Swaminathan
20120198494 August 2, 2012 White
20120260278 October 11, 2012 Lambert et al.
20120272259 October 25, 2012 Cortes et al.
U.S. Office Action for U.S. Appl. No. 13/595,121 mailed Apr. 3, 2013.
U.S. Final Office Action for U.S. Appl. No. 13/595,121 mailed Nov. 6, 2013.
Notice of Allowance for U.S. Appl. No. 13/595,121 mailed May 23, 2014.
Inventors: Doug Sherrets (San Francisco, CA), Sean Liu (Sunnyvale, CA), Brett Rolston Lider (San Francisco, CA)
Application Number: 14/493,087
International Classification: H04N 7/16 (20110101); H04N 21/442 (20110101); H04N 21/472 (20110101);