With recent advances in networking technology, it is now common for users to receive audiovisual content, sometimes in near realtime. Examples include voice and video teleconferences, webinars, and live streaming of events such as concerts, news stories, and sporting events. Further, during the delivery of such content, a number of parameters may be applied to the capture, processing, and delivery of the content to users, parameters that affect the quality of the experience for the user. These parameters may include, for example, sampling rates, coding parameters, and data throughput rates.
Moreover, one or more of the users may have preferences with regard to these parameters, given that a user typically wants the best possible AV experience. A selection of a parameter value may entail a tradeoff, however. For example, during a video conference, participants may be having an active discussion, in which case low audio lag time might be desired. Here, users want to feel as if they are in the same room together, having a face-to-face conversation; any significant lag time is a distraction. But a reduction in delay may reduce the quality of the video. Improving video could conversely increase delay, and may also reduce audio quality. In some situations, certain tradeoffs may be acceptable. During the same videoconference, for example, a demonstration of something visual like an industrial design or a fabric may be demonstrated, in which case lag and lower audio quality may acceptable for the sake of higher video quality.
In another example, during a broadcast concert, most users may prefer to hear higher quality audio at the expense of video during parts of the broadcast when performers are simply standing there singing. For example, reducing the bit rate encoding of video can allow higher audio quality in a given AV stream. During other parts of the program, seeing high quality video may become more desirable.
Making intelligent trade-offs with respect to media quality can be difficult for service providers or automated systems. The end users' desired quality level may differ based on the users' display size, user preferences for video versus audio, acceptability of audio lag for that experience, or even the nature of the content. High AV quality may be more important in some situations than others.
For media broadcasts, settings for voice over the internet protocol (VOIP) or video conferences (i.e., trade-off levels) may be decided by designers or technicians without input from the users. A technician, for example, may follow instructions or make a judgment on what is hopefully the best trade-off. Automatic adjustments can also occur based on network throughput variance. Mathematical modeling of network traffic and attempts to prioritize video and audio packets may take place, but this may not address or support a user's desired experience, or the desires of a set of users.
a is a block diagram illustrating processing of the system described herein, where the averaging of user settings may be performed at a media server and averaged settings may be applied at a capture device, according to an embodiment.
b is a block diagram illustrating the system described herein, where the averaging of user settings may be performed at a media server and averaged settings may be applied at the server, according to an embodiment.
A preferred embodiment is now described with reference to the figures, where like reference numbers indicate identical or functionally similar elements. Also in the figures, the leftmost digit of each reference number corresponds to the figure in which the reference number is first used. While specific configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the relevant art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the description. It will be apparent to a person skilled in the relevant art that this can also be employed in a variety of other systems and applications other than what is described herein.
Disclosed herein are systems, methods, and computer program products to collect user input regarding the quality of audiovisual (AV) content, and to change the quality of the content based on the collected input. Users may provide input regarding tradeoffs in AV quality, such as audio quality versus video quality, or audio quality versus delay. The inputs of the users represent selected settings as to the trade-offs. These may be averaged to generate one or more average settings that reflect the inputs of all the users. The average setting(s) may then be used to determine one or more parameters that may be applied in AV content capture, processing and/or delivery.
This may be applicable, for example, in video-teleconferencing, live podcasting, playing of pre-recorded media, distance learning, virtual meetings and on-line collaborative environments where multiple users may be participating. The systems and methods described herein allow a set of users to exercise control over the AV experience. Two points where AV quality can be impacted are 1) at the AV capture device, and 2) at the server that distributes media streams. As will be described below, either one or both points may be used.
As would be understood by a person of ordinary skill in the art, settings 140 may represent one or more specific numerical values. By choosing a particular setting, for example, a user 130 may be effectively specifying a particular bit rate, sampling rate, or coding or filtering parameter. When the settings 140 are received at media server 120, the corresponding numerical values may be processed by a module 150. For each type of setting selected by users (e.g., video quality versus audio quality) module 150 may produce a single setting that may reflect or may be a function of each of the individual settings 140. In the embodiment of
The output of the averager 150 is shown as one or more average settings 160. The average setting 160 may then be sent to the capture device 110, where the average setting 160 may be implemented. In this way, the choices made by the individual users 130 may be processed and sent to the capture device 110, which may then respond by making corresponding adjustments to the appropriate parameters.
In an embodiment of the invention, the settings 140 may be chosen by users 130 after the presentation of AV data 170 has already started. This would allow users 130 to receive AV data 170 as produced with default parameters. Users 130 may then input settings 140 in accordance with their reaction to the AV data 170 as produced using these default parameters. Settings 140 would therefore represent feedback in such an embodiment. Alternatively, users 130 may input settings 140 before the presentation of any AV data. This would allow users 130 to provide input at the outset of a presentation.
Note that in
In an embodiment, a user may make his selection of an AV quality trade-off through the use of a graphical user interface (GUI). Such a GUI is shown in
The use of horizontally oriented sliders is not meant to be a limitation. As would be understood by a person of ordinary skill in the art, other graphical interfaces may be possible. Comparable functionality could be achieved, for example, through the use of graphically rendered knobs, switches, etc. Text boxes could also be used, where a user could type, in a verbal or numerical format (e.g., a number between 1 and 100) the amount of video quality desired, for example. An associated box could then show the resulting audio quality as a number between 1 and 100. Moreover, in alternative embodiments, only one of the two illustrated ranges may be available for manipulation. In other embodiments, additional trade-offs (not shown) may be presented.
By manipulating a graphically rendered control, such as slider 310 or 330, a user may be pointing to a particular pixel in a window or display. In an embodiment, the settings generated and sent by a user may be in the form of display coordinates. The coordinates may then be averaged, by the averager, along with the coordinates identified by the other users. The average coordinates may then be converted to values of one or more parameters that may be applied at a capture device or a media server. Such parameters may include a data rate or a sampling rate, for example. In such an embodiment, logic that converts coordinates to parameter values may reside at or with the averager.
Alternatively, such conversion logic may reside locally at the user machines. Here, users' selected pixel coordinates may be converted locally to one or more parameter values. The settings sent by users therefore may take the form of parameter values, which may be received by the averager for calculation of average parameter values.
The processing of the system described herein is illustrated in
At 440, the average settings may be calculated. Note that if a user does not make any selection, then in an embodiment, the average may be calculated on the basis of one less participant. In other words, if there are n users involved and one user does not enter a setting, then the average may be calculated on the basis of n−1 users. Alternatively, such a user may be assigned a default setting, and the average calculated on the basis of all n users.
In an embodiment, the users may be informed as to the settings chosen by other users. In this case, at 450, other users' settings may be displayed to each user. Alternatively, the viewing of others' settings may be a display option that a user can choose or decline. At 460, the calculated average maybe displayed to the users. Again, viewing this value may be a display option that a user can choose or decline. At 470, the AV parameters may be adjusted in a manner consistent with the calculated average setting(s). At 480, the AV data may be presented to the users after application of the average setting(s).
Note that in alternative embodiments, not all of the information described in
One or more features disclosed herein may be implemented in hardware, software, firmware, or combinations thereof, including discrete and integrated circuit logic, application specific integrated circuit (ASIC) logic, and/or microcontrollers, or may be implemented as part of a domain-specific integrated circuit package, or a combination of integrated circuit packages. The term software, as used herein, refers to a computer program product including a computer readable medium having computer program logic stored therein to cause a computer system to perform one or more features and/or combinations of features disclosed herein.
A software embodiment is illustrated in the context of a computing system 500 in
Computer program logic 540 may include averager logic 550, according to an embodiment. Averager logic 550 may be responsible for processing the settings received from users. In particular, logic 550 may receive the settings and calculate one or more output values that may be functions of the settings, wherein the output value(s) reflect each individual setting. As discussed above, the functions may include an arithmetic mean, or may include a weighted average. Alternatively, averager logic 550 may calculate some other statistical function of the settings.
Methods and systems are disclosed herein with the aid of functional building blocks that illustrate the functions, features, and relationships thereof. At least some of the boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries may be defined so long as the specified functions and relationships thereof are appropriately performed.
While various embodiments are disclosed herein, it should be understood that they have been presented by way of example only, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail may be made therein without departing from the spirit and scope of the methods and systems disclosed herein. Thus, the breadth and scope of the claims should not be limited by any of the exemplary embodiments disclosed herein.