1. Technical Field
The present invention relates in general to the field of data processing systems. More specifically, the present invention relates to a system and method for intelligent window placement for digital video.
2. Description of the Related Art
Video displays such as televisions and computer monitors often present information from more than one source. This is true with multiple windows on a computer screen, and trends indicate that televisions will soon allow viewing information originating from distinct sources. While the primary purpose of the screen is to display full screen video content, there is a need to present visual information from a secondary source in a way which minimizes interference between the primary video content and the secondary information.
Therefore, there is a need for a system and method to identify and utilize the parts of a video screen which would least likely interrupt the primary content on the video display.
The present invention includes, but is not limited to, a method, apparatus, and computer-usable medium for displaying a primary presentation on a display, where the primary presentation includes a collection of frames; in response to receiving a request to overlay the primary presentation with a secondary presentation, analyzing the plurality of frames to identify at least one safe region determined to be suitable for overlaying said primary presentation with a secondary presentation; presenting a preview of the secondary presentation in at least one safe region; in response to receiving a rejection of the preview, indicating a collection of alternate safe regions for presenting the secondary presentation; and in response to an alternate safe region among the collection of alternate safe regions being selected, displaying the secondary presentation in the selected alternate safe region.
The above, as well as additional purposes, features, and advantages of the present invention will become apparent in the following detailed written description.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further purposes and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
Referring now to the figures, and in particular, referring now to
WAN 102 is preferably implemented as the Internet, but any network may be utilized to implement WAN 102. Video display 104 may be implemented as a cathode-ray tube (CRT), liquid crystal display (LCD), plasma, or any other type of video display.
Coupled to video display 104 is a data processing system 110, which may be implemented by any type of computer or programmable logic utilized to coordinate display of images on video display 104.
Data processing system 110 preferably includes a memory 112 for storing presentation data received from primary and secondary presentation sources. Primary presentation source 106 and secondary presentation source 108 may include, but are not limited to, television broadcast stations, Internet service provider servers, satellites, e-mail or instant message services, short message service (SMS) message services, Really Simple Syndication (RSS) feeds, or any other content provider that sends data to be displayed on video display 104. As depicted, data processing system 110, primary presentation source 106, and secondary presentation source 108 may be coupled to WAN 102 via Ethernet, wireless, telephone, or any other type of connection.
Those with skill in the art will appreciate that exemplary network 100 can include many additional components not specifically illustrated in
With reference now to
Operating system 150 includes a shell 154 for providing transparent user access to resources such as application programs 158. Generally, shell 154 is a program that provides an interpreter and an interface between the user and the operating system. More specifically, shell 154 executes commands that are entered into a command line user interface or from a file. Thus, shell 154 (as it is called in UNIX®), also called a command processor in Windows@, is generally the highest level of the operating system software hierarchy and servers as a command interpreter. The shell provides a system prompt, interprets commands entered by keyboard, mouse, or other user input media, and sends the interpreted commands(s) to a appropriate lower levels of the operating system (e.g., a kernel 156) for processing. Note that while shell 154 is a text-based, line-oriented user interface, the present invention will equally well support other user interface modes, such as graphical, voice, gestural, etc.
As depicted, operating system 150 also includes kernel 156, which includes lower levels of functionality for operating system 150, including providing essential services required by other parts of operating system 150 and application programs 158, including memory management, process and task management, disk management, and mouse and keyboard management.
Application programs include display manager 164 and other application programs 166. Other application programs 166 may include, but are not limited to, word processors, web browsers, spreadsheets, etc.
Display manager 164 displays primary presentation data 160 and secondary presentation data 162 on video display 104 and determines the location of the window that displays secondary presentation data 162. As discussed herein in more detail in conjunction with
A “safe region”, defined herein as a region that enables the display of a secondary presentation with minimal disruption of the primary presentation. Display manager 164 determines the safe regions within video display 104 by analyzing the primary presentation utilizing three factors: historical analysis, predictive analysis, and user input.
Historical Analysis:
Display manager 164 will analyze past (e.g., already displayed) frames of the primary presentation for clues to determine which regions will be considered “safe regions”. A composite record of all the “safe” and “unsafe” regions is made based on the last N frames of primary presentation displayed in video display 104. The “safe” and “unsafe” regions are preferably determined according to a set of criteria:
(1) frame-to-frame movement: Still-frame analysis of successive frames may indicate whether regions within the display contains “movement”, or the translation of a predefined number of pixels between successive frames. The still-frame analysis may include “motion tracking” to determine whether a designated “primary object” (e.g., a designated collection of pixels) is “moving spatially” (or translating between successive frames) to help determine future safe regions;
(2) screen location: Since most of the movement or action occurs n the center of video display 104, the regions at the edges of a presentation (where there is generally less movement or action) may be considered candidates for “safe regions”;
(3) color contrast: Important regions within a presentation are generally marked by high color contrast. Low contrast regions may be considered candidates for “safe regions”;
(4) repetitive motion: Any regions including repetitive, non-translating images (e.g., network logos and animated badges) may be considered candidates for “safe regions”;
(5) focus and detail: Regions of presentations which are out of focus may be considered candidates for “safe regions”;
(6) text: Regions of presentations containing text may be considered candidates for “unsafe regions”.
Predictive Analysis:
The dynamic nature of presentations may require that systems such as data processing system 110 anticipate the classification of the regions in future frames. For some pre-recorded presentations (e.g., digital video recorders (DVR), DVD, streaming video, etc.), it may be possible for display manger 162 to determine what regions are considered “safe” or “unsafe”, while utilizing the previously discussed set of criteria addressed in the “historical analysis” section.
User Input:
When the safe regions of video display 104 have been identified, display manager 164 may indicate to the viewer of video display 104 that a secondary presentation has been requested. Display manager 164 may sound an audible cue, mark a selected safe region with a visual marker, or slowly fade in a translucent presentation from secondary presentation source. If display manager 164 has designated as a safe region a region that is undesirable to the user, the user will be given a brief time interval in which to reject the selected safe region or relocate the secondary presentation utilizing a control device (e.g., mouse, keyboard, remote control, etc.) before the secondary presentation obstructs the view of important information in the primary presentation. The relocation of the secondary presentation may be accomplished by selecting a new safe region from a pre-defined set of alternate safe regions, utilizing a “second guess” function in which display manager 164 automatically selects an alternate safe region, or allowing the user to indicate a preferred safe regions by “drawing” a box of customizable size and position utilizing a control device.
In another preferred embodiment of the present invention, if the user rejects the selected safe region, display manager 164 can display on video display 104 a certain number of alternate regions and allow the user to toggle via the control device to the region the user would like to overlay the secondary presentation.
In still another preferred embodiment of the present invention, if a user repeatedly rejects a region designated by display manager 164 as a safe region, display manager 164 can store this rejection and utilize this information as criteria in the selection of future safe regions.
In still another preferred embodiment of the present invention, display manager 164 may moderately move or adjust the secondary presentation location remain in an area of least interest. Display manager 164 may move the secondary presentation slightly to accommodate the primary presentation according to the abovementioned criteria recited in the “historical analysis” section.
In still another preferred embodiment of the present invention, display manager 164 may present to a user several options for displaying the secondary presentation that includes a set of predefined regions that are defined as the four corners of the display, a set of predefined regions that are defined to be regions around the perimeter of the display, and a set of predefined regions determined by historical analysis, predictive analysis, and user input. Display manager 164 may also allow the user to determine “exclusionary regions” which are defined as regions that display manager 164 may never display a secondary presentation (e.g., regions near the center of the display).
Referring now to
As depicted, the process begins at step 200 and proceeds to step 202, which illustrates data processing system 110 receiving a primary presentation from primary presentation source 106 via WAN 102, and displaying the primary presentation on video display 104. The process continues to step 204, which depicts display manager 164 determining whether a request to overlay a secondary presentation on the primary presentation has been received. If a request has not been received, the process iterates at step 204.
If a request has been received, the process continues to step 206, which illustrates display manager 164 identifying at least one safe region as a candidate region for displaying the requested secondary presentation. The process proceeds to step 208, which depicts display manager 164 presenting a preview of the secondary presentation in an identified safe region. As previously discussed, display manager 164 selects a region to be identified as a safe region utilizing three criteria: historical analysis, predictive analysis, and user input.
If a user has approved the location of the preview (step 210), display manager 164 displays the secondary presentation in the designated safe region (step 216). The process then returns to step 204 and continues in an iterative fashion.
If the user has not approved of the location of the preview (step 210), display manager 164 will indicate a selection of alternate safe regions in which the secondary presentation may be displayed (step 212). The alternate safe regions can be calculated in the same manner as the originally designated safe region. The user will selected an alternate safe region (step 214) and the process proceeds to abovementioned step 216, which depicts the secondary presentation being displayed in the selected safe region. The process returns to step 204 and proceeds in an iterative fashion.
In another preferred embodiment of the present invention, display manager 164 may enable a user to manually remove the secondary presentation after it is displayed via a control device (e.g., keyboard, mouse, etc.). The user may enter a set of user preferences or user profile that enables a secondary presentation to be removed by display manager 164 after a predetermined amount of time.
The process begins at step 300 and proceeds to step 302, which illustrates display manager 164 creating a two-dimensional grid in memory 112. The each square in the two-dimensional grid represents a region of video display 104. The process proceeds to step 304, which depicts a determination of whether display manager 164 has received a new window request to display a secondary presentation. If a new window request has not been received by display manager 164, the process iterates at step 304. If a new window request has been received by display manager 164, the process continues to step 306, which depicts display manager 164 assigning two values to each square in the two-dimensional grid. The values assigned depend on (1) how safe the region is determined by the abovementioned criteria under the “historical analysis” section; and (2) the length of time that region is determined to be safe. The process continues to step 308, which illustrates display manager 164 placing a window for display of the secondary presentation according to a variety of factors including, but not limited to, an estimate of how long that window will exist based on the type of window, previous interactions with that type of window, the content within that window (e.g., links messages, etc.), and other criteria. For example, a web browser window display a secondary presentation will likely require a longer duration than a simple message prompt. The process returns to step 302 and continues in an iterative fashion.
Those with skill in the art will appreciate that the present invention is not limited to the display of a secondary presentations over a primary presentation, but includes any number of presentations to be overlaid the primary presentation.
Those with skill in this art will appreciate that the present invention applies to both single-threaded and multi-threaded situations (i.e., where one process could handle incoming secondary presentation requests, such as identifying safe regions, while another thread is responsible for the displays themselves).
As discussed, the present invention includes, but is not limited to, a method, apparatus, and computer-usable medium for displaying a primary presentation on a display, where the primary presentation includes a collection of frames; in response to receiving a request to overlay the primary presentation with a secondary presentation, analyzing the plurality of frames to identify at least one safe region determined to be suitable for overlaying said primary presentation with a secondary presentation; presenting a preview of the secondary presentation in at least one safe region; in response to receiving a rejection of the preview, indicating a collection of alternate safe regions for presenting the secondary presentation; and in response to an alternate safe region among the collection of alternate safe regions being selected, displaying the secondary presentation in the selected alternate safe region.
It should be understood that at least some aspects of the present invention may be alternatively be implemented in a computer-usable medium that contains a program product. Programs defining functions on the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., hard disk drive, read/write CD-ROM, optical media), system memory such as, but not limited to Random Access Memory (RAM), and communication media, such as computer and telephone networks, including Ethernet, the Internet, wireless networks, and like network systems. It should be understood, therefore, that such signal-bearing media when carrying or encoding computer-readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.
While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.