The present invention relates to a graphical user interface with multiple instantiations for electronic appliances.
Currently available video display technologies allow full-screen display of a plurality of video streams on a single TV display, monitor or even a cinema screen, to allow the plurality of users to watch different streams simultaneously.
For example, this can be achieved by time-interleaving the successive frames of the video streams. First, a first frame of stream “A” can be displayed, then a first frame of stream “B”, then a first frame of stream “C”, and next a second frame of stream “A”, a second frame of stream “B” and so on. So-called shutter glasses can be used by individual users (watchers) to watch particular video streams, as known from the 3D video technology. The shutter glasses have lenses which change from transparent to opaque and vice versa. The process of changing the state of the lenses is controlled electronically and is relatively fast comparing to human perception. The glasses are synchronized with the display such that when the frames of the stream “A” are displayed, the shutter glasses “1” are transparent and the other glasses are opaque, and when the frames of the stream “B” are displayed, the shutter glasses “2” are transparent and the other glasses are opaque, and so on. If the video streams are monoscopic, both lenses for the left and right eye change their state simultaneously. As a result, the watcher wearing the glasses “1” observes only frames related to stream “A” while the watcher wearing the glasses “2” observes only the frames of stream “B” and so on. Therefore, the video streams can be selected independently by different watchers for simultaneous watching on the same display.
The aforementioned method may be also applied for simultaneous watching of 3D video streams, as well as simultaneous watching of 3D and 2D video streams. The technology is limited mainly by the maximum amount of frames that can be displayed per a unit of time by the displaying device.
The video streams may be provided from one source or a plurality of different sources, such as a computer, a game console, a television set-top box, a DVD player, a smartphone etc. For example, a game console may provide two distinct video streams, each for a different player. Alternatively, a single display can be used by two watchers, wherein one watcher intends to watch a video stream from a game console and the second watcher intends to watch a television program from a set-top box.
Each watcher should have an individual headset to receive a sound track corresponding to the watched video stream. In another scenario of use, different watchers can watch the same video stream, but with different sound tracks (for example different languages).
There is a need to provide, for each watcher of the multi-stream display, a way to control the display of the stream watched by the watcher, for example by providing a menu that is at least partially independent for each watcher, such that each watcher may individually control the display.
The aim is therefore to provide a system and a method for displaying and operating a menu having multiple instantiations for controlling a multi-stream display by each watcher of the display in at least partially independent manner.
There is disclosed a device for providing a menu with multiple instantiations for a multi-stream display, the device comprising: a data receiving block for receiving a plurality of audio/video streams; an audio/video block for decoding the plurality of the received audio/video streams and sending the decoded frames of the video streams to a display device, wherein the frames of the video streams are time-interleaved for sequential display of frames of consecutive video streams; a controller comprising shutter glasses control unit for communicating with shutter glasses of watchers to transmit information comprising timing of frames of a particular video stream associated with that shutter glasses. The controller further comprises: a multi-user Graphical User Interface instantiation manager configured to operate a plurality of instantiations of a GUI, wherein each GUI corresponds to a particular set of watcher devices, each set comprising the shutter glasses.
The controller may further comprise an image frame generator for generating image frames corresponding to the particular instantiation of the multi-user GUI in a frame sequence for the video corresponding to that instantiation.
The controller may further comprise an audio track control unit for isolating audio tracks, from the received audio/video stream, appropriate for a particular instantiation of the multi-user GUI and sending them to the headphones of the set of watcher devices corresponding to the particular instantiation of the multi-user GUI.
The controller may further comprise a virtual Remote Control Unit control unit responsible for communicating with a virtual RCU of the set of watcher devices corresponding to the particular instantiation of the multi-user GUI.
The controller may further comprise a conflict manager configured to resolve conflicts between access of watcher devices depending on priority set for individual RCUs.
There is also disclosed a system comprising: a multi-stream display device; a plurality of sets of watcher devices; and a device as described above.
At least one set of watcher devices may comprise shutter glasses, a remote control unit and headphones.
There is also disclosed a method for providing a menu with multiple instantiations for a multi-stream display, the method comprising the steps of: detecting a plurality of sets of watcher devices; executing an individual instantiation of a Graphical User Interface for each of the plurality of sets of watcher devices; and receiving and decoding a plurality of audio/video streams and sending the decoded frames of the video streams to a display device, wherein the frames of the video streams are time-interleaved for sequential display of frames of consecutive video streams.
There is also disclosed a non-transitory computer readable storage medium comprising instructions that, when executed by a computer, enable method for providing a menu with multiple instantiations in accordance with the method as described above.
Further details and features of the present invention, its nature and various advantages will become more apparent from the following detailed description of the preferred embodiments shown in drawings, in which:
Some portions of the detailed description which follows are presented in terms of data processing procedures, steps or other symbolic representations of operations on data bits that can be performed on computer memory. Therefore, a computer executes such logical steps thus requiring physical manipulations of physical quantities.
Usually these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. For reasons of common usage, these signals are referred to as bits, packets, messages, values, elements, symbols, characters, terms, numbers, or the like.
Additionally, all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Terms such as “processing” or “creating” or “transferring” or “executing” or “determining” or “detecting” or “obtaining” or “selecting” or “calculating” or “generating” or the like, refer to the action and processes of a computer system that manipulates and transforms data represented as physical (electronic) quantities within the computer's registers and memories into other data similarly represented as physical quantities within the memories or registers or other such information storage.
A computer-readable (storage) medium, such as referred to herein, typically may be non-transitory and/or comprise a non-transitory device. In this context, a non-transitory storage medium may include a device that may be tangible, meaning that the device has a concrete physical form, although the device may change its physical state. Thus, for example, non-transitory refers to a device remaining tangible despite a change in state.
As utilized herein, the term “example” means serving as a non-limiting example, instance, or illustration. As utilized herein, the terms “for example” and “e.g.” introduce a list of one or more non-limiting examples, instances, or illustrations.
A catch-up service 140 is configured to provide, via a transmission channel 154, retransmission the content that has been already broadcast as linear TV, in order to allow the users to watch it a few hours or even days later.
An Electronic Program Guide (EPG) data provider 130 is configured to provide, via a transmission channel 153, additional data about content available from various sources, including the content available from the content delivery network 100 and the other content providers 140, 160.
Electronic Program Guide (EPG) data provider 130 is configured to provide, via a transmission channel 153, additional data about content available from various sources, including the content available from the content delivery network 100 and the other content providers 140.
The content items for which the program guide is displayed may include live broadcast events and/or other content items, such as catch-up content, video-on-demand content, etc.
The transmission channels 151-154 may be of any known type, such as wired or wireless, using transmission technologies suitable to carry data of a particular service.
An application server 160 is configured to provide, via a transmission channel 155, applications of virtual RCU for mobile devices allowing them to emulate a regular RCU unit.
Other, typical, but optional modules of the mobile device are a display module 550 configured to display the GUI to a user, a keyboard 506 operating as an input interface for the mobile device, an audio module 540 configured to generate audible signals and/or an external memory slot such as an SD card slot 505 configured to receive and operate an external memory unit.
A bidirectional data bus 501 may be employed to enable communication between the modules and the processor 510.
The mobile device may also comprise a power management module 520 cooperating with a battery 502.
A data receiving/transmitting block 620 is configured to communicate, via at least one transmission channel 602, with the Ethernet (IP) network 210 or the wireless network, in order to receive content, applications and/or content data. The decoder may further comprise external interfaces 630 (Ethernet, Bluetooth, Zigbee RF4CE, Wi-Fi, InfraRed) to communicate, via at least one communication channel 603, with other devices or accessories.
A clock module 660 is configured to provide timing data necessary e.g. to synchronize the modules in the decoder.
A master RCU controller 650 is used for communicating 605 with user's remote control units (a standard RCU or the RCU emulated on the mobile device).\
An audio/video block 670 is used for decoding the video streams and sending the decoded frames of the multiple video streams to the display device for displaying the streams to the watcher, wherein the frames of the video streams are time-interleaved for sequential display of frames of consecutive streams.
A controller 610 comprises a plurality of units configured to provide the functionality of the system as described herein, including at least one of:
It is possible that the maximum amount of possible instantiations of the multi-user GUI (being in fact the maximum amount of possible watchers) is smaller than the amount of activated, actually detected by the decoder, glasses. In such situation the conflict manager 619, according to the priorities set for individual RCUs with respect to their activation order, may offer to the watcher using the glasses whose number exceed the number of maximum possible instantiations to watch the contents chosen by the other watcher utilizing glasses with higher priority rank.
The controller 610 operates utilizing memory blocks 640, including RAM 640A and Flash 640B blocks, and optionally a HDD 640C.
The modules of the decoder 220 communicate with each other over a bidirectional data bus 601.
A multi-user GUI configuration 641 data set comprises information concerning available interfaces 641A, accessible protocols 641B, ID of Master RCU 641C, a number of possible watchers 641D and other GUI parameters 641E (such as user-specific colour schemes (or GUI skins), selected EPG type, power saving modes, parental rating etc.). A watchers' devices configurations 642 data set comprises information concerning configuration of the first watcher's devices 642A, such as shutter glasses, headphones and RCU type (virtual or regular), as well as configuration of the second and consecutive watcher's devices 642B, 642C.
A recordings 644 data set comprises information on recordings stored in the mass storage, such as the HDD.
The remaining memory space 643 can be used for storing other data, depending on system needs.
Therefore each instantiation 701-704 may be related to the different content dedicated for each watcher 311-314.
In step 922, the shutter glasses that are paired with the master RCU are determined and a high priority is set up for this RCU. Next, in step 923, on the basis of the shutter glasses activation times, the priorities for the remaining (regular or virtual) RCUs are defined. In step 924, the respective multi-user GUI instantiations are executed for each defined watcher with the same last selected GUI module and video stream of the last watched channel. In step 925, the audio/video stream of the last watched channel is received from the broadcasting distribution interface 250. In step 926 there are generated the same image frames for all watchers as well as synchronization signals to synchronize video stream views with all shutter glasses and the audio track with all headphones. In step 927, the synchronization signals to all shutter glasses and headphones are sent. Next in step 928, the generated image frames are displayed on the display device and an audio track is sent to all headphones. In step 929 the system checks if there are any watcher commands. If there are no commands, then the procedure returns to step 925. If there are any commands, the procedure continues to step 930, wherein on the basis of watchers inputs (requested by the watchers), the GUI modules, the video streams and corresponding audio tracks are determined. In step 931, the requested GUI modules, the video streams and audio tracks are analysed in order to find possible conflicts as well as minimize necessary image frames and audio tracks. In step 932, the system checks if there are any possible conflicts. If there are any conflicts, the system (on the basis of priorities of the RCUs) resolves the conflicts in step 933 and next moves to step 934. In step 934, multiple audio/video streams are received. Next, in step 935, the image frames for determined video streams are generated and the respective audio tracks are selected. In step 936 there are generated synchronization signals to synchronize video stream views with all shutter glasses and audio tracks with all headphones. In step 937 the synchronization signals to the watchers' shutter glasses and headphones are sent. In step 938 the sequence of the prepared image frames is displayed on the display device and corresponding audio tracks are sent to corresponding watchers' headphones. In step 939 the system checks if there are any watchers' commands and if not, the procedure loops back to step 934. Otherwise, in step 940 the system checks if the watcher's command was to turn off the decoder. If there was no command for turning of the decoder, the procedure returns to step 930. If the watcher sent a command to turn off the decoder, then in step 941 the decoder is turned off.
It can be easily recognized, by one skilled in the art, that the aforementioned method for providing a menu with multiple instantiations for a multi-stream display may be performed and/or controlled by one or more computer programs. Such computer programs are typically executed by utilizing the computing resources in a computing device. Applications are stored on a non-transitory medium. An example of a non-transitory medium is a non-volatile memory, for example a flash memory while an example of a volatile memory is RAM. The computer instructions are executed by a processor. These memories are exemplary recording media for storing computer programs comprising computer-executable instructions performing all the steps of the computer-implemented method according the technical concept presented herein.
While the invention presented herein has been depicted, described, and has been defined with reference to particular preferred embodiments, such references and examples of implementation in the foregoing specification do not imply any limitation on the invention. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader scope of the technical concept. The presented preferred embodiments are exemplary only, and are not exhaustive of the scope of the technical concept presented herein.
Accordingly, the scope of protection is not limited to the preferred embodiments described in the specification, but is only limited by the claims that follow.
Number | Date | Country | Kind |
---|---|---|---|
16186450.9 | Aug 2016 | EP | regional |