WO2007114643A1 - Apparatus and method for managing resource in multiple screens environment - Google Patents

Apparatus and method for managing resource in multiple screens environment Download PDF

Info

Publication number
WO2007114643A1
WO2007114643A1 PCT/KR2007/001640 KR2007001640W WO2007114643A1 WO 2007114643 A1 WO2007114643 A1 WO 2007114643A1 KR 2007001640 W KR2007001640 W KR 2007001640W WO 2007114643 A1 WO2007114643 A1 WO 2007114643A1
Authority
WO
WIPO (PCT)
Prior art keywords
screen
resources
logical
display screen
service
Prior art date
Application number
PCT/KR2007/001640
Other languages
French (fr)
Inventor
Jong-Ho Lee
Kwang-Kee Lee
Sung-Wook Byun
Glenn A. Adams
Un-Gyo Jung
Original Assignee
Samsung Electronics Co., Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020070031035A external-priority patent/KR20070100118A/en
Application filed by Samsung Electronics Co., Ltd filed Critical Samsung Electronics Co., Ltd
Priority to CA002648597A priority Critical patent/CA2648597A1/en
Priority to MX2008012864A priority patent/MX2008012864A/en
Publication of WO2007114643A1 publication Critical patent/WO2007114643A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/45Picture in picture, e.g. displaying simultaneously another television channel in a region of the screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications

Definitions

  • the present invention relates to resource management, and more particularly, to an apparatus and method for managing resources in a multiscreen environment where multiple screens provide content on a physical display device.
  • Conventional broadcast receivers such as digital TVs or digital set-top boxes provide only one content element on a single physical display device or simultaneously display a main screen and a sub-screen on a single physical display device. Even though conventional broadcast receivers can simultaneously display both the main screen and the sub-screen on the same display screen, they can only arrange the main screen and the sub-screen in a limited number of manners. In the case of a content displayed within the main screen, all elements of the content, i.e., video data, audio data, and other data, are displayed. On the other hand, in the case of a content displayed within the sub-screen, only some of the elements of the content are displayed.
  • Content sources include a broadcast service such as a satellite broadcaster, a terrestrial broadcaster, or a cable broadcaster, a storage medium such as DVDs, or an external device connected to an input terminal.
  • a broadcast service such as a satellite broadcaster, a terrestrial broadcaster, or a cable broadcaster
  • a storage medium such as DVDs
  • an external device connected to an input terminal.
  • HAVi Home Audio/Video Interoperability
  • the resources may be reserved according to a resource management policy or the importance of each application.
  • a conventional OCAP standard defines 'HBackgroundDevice/ 'HVideoDevice,' and 'HGraphicsDevice' inherited from an object 'HScreenDevice,' which is defined in the HAVi standard, as limited resources and manages them accordingly.
  • resources must be reserved in advance in order to use a corresponding device.
  • the OCAP standard supports resource reservation in units of devices that form the object 'HScreenDevice.' Therefore, it is required to manage resources in units of objects 'HScreenDevice,' each object including ⁇ BackgroundDevice,' 'HVideoDevice,' and 'HgraphicsDevice,' in order to support multiple screens.
  • the present invention provides a method of managing resources in units of multiple screens displayed on a physical display device.
  • an apparatus for managing resources in a multiscreen environment includes a digital signal processing module receiving at least one of video information, audio information, and data information and restoring a plurality of services based on the at least one of the video information, the audio information and the data information; a service processing module reserving resources for a screen object, which is to display the restored services, and producing a display screen and a plurality of logical screens based on the reserved resources; and an output module mapping the plurality of logical screens provided by the service processing module to different locations on the display screen.
  • an apparatus for managing resources in a multiscreen environment includes a resource client requesting the reservation of resources for a screen object; and a resource server connecting the resources to a resource proxy in response to the request, wherein the resource client uses the reserved resources through the resource proxy.
  • a method of managing resources in a multiscreen environment includes (a) calling a method for requesting resources for a screen object; (b) connecting the resources as the method is called; (c) generating an event indicating that the resources have been reserved as the resources are connected; and (d) completing the reservation of the resources as the event is generated.
  • a method managing resources in a multiscreen environment includes (a) calling a method for releasing resources for a screen object; (b) disconnecting the resources as the method is called; (c) generating an event indicating that the resources have been released as the resources are disconnected; and (d) completing the releasing of the resources as the event is generated.
  • FIG. l is a diagram illustrating a configuration of a PiP screen according to an exemplary embodiment of the present invention.
  • FIG. 2 is a diagram illustrating the relationship between a logical screen and a display screen according to an exemplary embodiment of the present invention
  • FIG. 3 is a block diagram illustrating service sources according to an exemplary embodiment of the present invention
  • FIGS. 4(a) to 4(b) are diagrams illustrating a non-abstract service and an abstract service according to an exemplary embodiment of the present invention
  • FIG. 5 is a diagram illustrating attribute information and interfaces of a logical screen and a display screen
  • FIGS. 6(a) and 6(b) are diagrams illustrating an attribute 'z-order' of a logical screen according to an exemplary embodiment of the present invention
  • FIGS. 7(a) and 7(b) are diagrams illustrating an attribute 'Display Area' of a logical screen according to exemplary embodiments of the present invention.
  • FIG. 8 is a diagram illustrating a method of mapping two services to a display screen according to an exemplary embodiment of the present invention
  • FIG. 9 is a block diagram illustrating a configuration of an apparatus for providing multiple screens according to an exemplary embodiment of the present invention
  • FIG. 10 is a flowchart illustrating a method of dynamically configuring multiple screens according to an exemplary embodiment of the present invention.
  • FIG. 11 is a diagram illustrating a software architecture for providing multiple screens according to an exemplary embodiment of the present invention.
  • FIG. 12 is a diagram illustrating the relationships among modules constituting an application program interface (API) layer according to an exemplary embodiment of the present invention
  • FIG. 13 is a flowchart illustrating a method of displaying a plurality of services that are displayed on respective corresponding logical screens on a display screen by the modules illustrated in FIG. 12;
  • FIG. 14 is a diagram illustrating a configuration required to perform resource reservation according to an exemplary embodiment of the present invention
  • FIG. 15 is a flowchart illustrating a method of managing resources according to an exemplary embodiment of the present invention
  • FIG. 16 is a flowchart illustrating a method of reserving resources for a screen according to an exemplary embodiment of the present invention.
  • FIG. 17 is a flowchart illustrating a method of returning resources for a screen according to an exemplary embodiment of the present invention.
  • digital signal processing module 950 service processing module
  • These computer program instructions may also be stored in a computer usable or computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer usable or computer-readable memory produce an article of manufacture including instruction means that implement the function specified in the flowchart block or blocks.
  • the computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
  • each block of the flowchart illustrations may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the blocks may occur out of the order. For example, two blocks illustrated in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
  • Service components are elements of a service and include a video component, an audio component, and a data component.
  • a data component is an application program in a service.
  • the term 'service context' indicates an object which can control the executing of a service and includes various resources, devices, and execution state information needed for providing a service.
  • the term 'physical display device' indicates a physical space which actually displays the content of a service.
  • the term 'display screen' indicates a screen actually displayed on a physical display device.
  • An arbitrary service may be directly set in the display screen, and the display screen may be displayed on a physical display device.
  • at least one logical screen which is mapped to a certain area of the display screen may be displayed on the physical display device.
  • the term 'logical screen' indicates a space in which an arbitrary service is displayed.
  • a logical screen is a virtual screen before being mapped to a display screen and thus is not displayed on a physical display device.
  • the logical screen and the display screen may be a combination of a background still image, a video raster, and a graphic raster.
  • the graphic raster may be a combination of text, lines, colors, and images or a mixture of video frames.
  • 'main service' indicates a service that is selected as a main service through a menu displayed on the physical display device or a remote controller by a user or through an API by an application, and the screen on which the main service is displayed is referred to as a 'main screen'.
  • 'Picture-in-Picture service indicates a service that is selected as a sub-service in the main service through a menu displayed on a physical display device or a remote controller by a user via an API by an application, and the PiP service may be displayed on a picture-in-picture screen (PiP screen) or a main screen.
  • the PiP screen includes a screen that occupies a part of another screen as illustrated in FIGS. l(a) to l(d) and a screen that is simultaneously displayed with another screen without overlapping the other screen as illustrated in FIGS. l(e) to l(f).
  • the PiP screen may include a screen that overlaps another screen on an arbitrary location or area in the physical display device, as illustrated in FIGS. l(g) and l(h).
  • FIG. 2 is a diagram illustrating the relationship between a logical screen and a display screen according to an exemplary embodiment of the present invention.
  • a service may be displayed using logical screens 210, 212, and 214.
  • the logical screens 210, 212, and 214 are mapped to display screens 220, 222, and 224 through a mapping block 230.
  • the logical screens 210 and 212 are mapped to the display screen 220
  • the logical screens 212 and 214 are mapped to the display screen 222
  • the logical screens 210, 212, and 214 are mapped to the display screen 224.
  • at least one logical screen which displays a service is mapped to an arbitrary area of a display screen.
  • the mapping block 230 is a group of various pieces of information needed for mapping a logical screen to a display screen. Examples of the various pieces of information include coordinate information of a predetermined area on a display screen to which each of a plurality of logical screens is mapped, identification information of the logical screens and the display screen, and information specifying in what order the logical screens are displayed on the display screen.
  • the mapping block 230 may be realized by interfaces or functions prepared by various computer program languages to be executed and create or change the relationship between the logical screen and the display screen by using the above information as parameters.
  • services provided by various service sources may be displayed on a display screen, and the display screen may be displayed on a physical display device, as illustrated in FIG. 3.
  • service sources which provide broadcast services such as a terrestrial broadcaster 320 and a cable broadcaster 330, service sources which provide services stored in a storage medium such as a personal video recorder (PVR) 340, and service sources (not illustrated in FIG. 3) which provide services via a wired network or a wireless network.
  • PVR personal video recorder
  • a broadcast receiver 310 receives services from the service sources and produces logical screens displaying each of the received services. Then, an arbitrary service is directly set on the display screen to be displayed on a physical display device using a predefined method or a method set by a user or an application. Otherwise, at least one logical screen that is mapped to an arbitrary area on the display screen is displayed on a physical display device 350. In short, services provided by the terrestrial broadcaster 320, the cable broadcaster 330, and the PVR are displayed on the physical display device 350.
  • the terrestrial broadcaster 320, the cable broadcaster 330, and the PVR 340 are illustrated in FIG. 3 as being service sources, but the present invention is not limited to it. Any type of multimedia content source which provides multimedia contents that can be displayed together can be a service source according to an exemplary embodiment of the present invention.
  • Services according to an exemplary embodiment of the present invention can be classified into abstract services and non-abstract services, as illustrated in FIGS. 4(a) and 4(b).
  • the abstract services are not services provided by broadcast signals transmitted in real time but services independent of broadcast channels.
  • the abstract services include only data components, i.e., application programs, without video components and audio components.
  • Examples of the abstract services include services having unbound applications based on the open cable application platform (OCAP) standard.
  • the non-abstract services are understood as services other than abstract services.
  • both abstract services and non-abstract services have independency.
  • abstract services may be directly set on the physical display device not through logical screens and non-abstract services may be displayed on the logical screens.
  • the logical screens may be mapped to the display screen in which the abstract services are set. Thereafter, the display screen may be output through the physical display device.
  • the abstract services can be displayed on the display screen independently of the non-abstract services.
  • the abstract services and non-abstract services may be mapped to different logical screens. Thereafter, the logical screens may be mapped to a single display screen.
  • the abstract services can be displayed on the display screen independently of non-abstract services.
  • the logical screen and the display screen may be categorized as being different objects.
  • a screen may serve as a logic screen or a display screen according to attribute information of one screen object.
  • screen object attributes corresponding to the characteristics of a logical screen has a predefined value and other screen object attributes have fixed values
  • a screen object may serve as a logical screen.
  • screen object attributes corresponding to the characteristics of a display screen have predefined values and other screen object attributes have fixed values
  • a screen object may serve as a display screen.
  • Attribute information of the screen object includes a plurality of attributes 'z-Order', 'Display Area', 'Visibility', 'Associated_Display_Screen',
  • a screen object may serve as a logical screen.
  • FIG. 5 illustrates attribute information and interfaces of a logical screen and a display screen.
  • an attribute 'Type' 510 is for determining a screen type - a logical screen or a display screen.
  • An attribute 'z-Order' 520 is for determining in what order a plurality of logical screens are arranged along the z-axis.
  • FIGS. 6(a) and 6(b) illustrate different configurations of logical screens on a physical display device for different combinations of the values of attributes 'z-Order' of the logical screens.
  • first and second logical screens 620 and 630 are respectively mapped to predetermined areas of a display screen 610.
  • the first logical screen 620 is displayed on the display screen 610
  • the second logical screen 630 is displayed on the display screen partially overlapping the first logical screen 620.
  • the display screen 610, the first logical screen 620, and the second logical screen 630 are sequentially arranged in the direction of the z-axis.
  • an attribute 'z-Order' of the first logical screen 620 may be set to a value of 1
  • an attribute 'z-Order' of the second logical screen 630 may be set to a value of 2.
  • the attributes 'z-Order' of the first and second logical screens 620 and 630 may be set to any numbers or characters as long as they can represent a certain order in which the first and second logical screens 620 and 630 are to be arranged along the z-axis.
  • the first and second logical screens 620 and 630 are respectively mapped to predetermined areas of the display screen 610.
  • the display screen 610, the first logical screen 620, and the second logical screen 630 are sequentially arranged in the direction of the z-axis according to the changed value of the attribute ' z-Order' .
  • the attribute 'z-Order' indicates the order in which a plurality of logical screens are arranged.
  • the attribute 'z-Order' may also indicate the order in which components of a logical screen or a display screen are arranged.
  • a logical screen or a display screen may be a combination of a background still image, a video raster, and a graphic raster.
  • a background still image such as a background image
  • 'HBackgroundDevice an instance (or an object) providing a background still image, such as a background image
  • 'HVideoDevice an instance (or an object) providing a video, such as a moving picture
  • 'HGraphicsDevice an instance (or an object) providing graphics, such as application data
  • the instances (or the objects) 'HBackgroundDevice,' 'HVideoDevice,' and 'HGraphicsDevice' will collectively be referred to as 'HScreenDevice.'
  • the order in which the instances 'HScreenDevice' of the logical screen or the display screen are arranged in the direction of the z-axis may be determined.
  • 'HBackgroundDevice,' 'HVideoDevice,' and 'HGraphicsDevice' may be sequentially arranged.
  • the value of the attribute 'z-Order' of the instance 'HVideoDevice' is greater than that of the instance 'HBackgroundDevice,' and the value of the attribute 'z-Order' of the instance 'HGraphicsDevice' is greater than that of the instance 'HVideoDevice.' If the instance 'HBackgroundDevice' exists in a current screen, the value of the attribute 'z-Order' of the instance 'HBackgroundDevice' placed at the very bottom of the current screen (at the very back of the current screen from a viewer's point of view) is zero.
  • the value of the attribute 'z-Order' of the instance 'HVideoDevice' placed at the very bottom of the current screen (at the very back of the current screen from the viewer's point of view) is zero.
  • the value of the attribute 'z-Order' of the instance 'HGraphicsDevice' placed at the very bottom of the current screen (at the very back of the current screen from the viewer's point of view) is zero.
  • the value of the attribute 'z-Order' of the instance 'HVideoDevice' included in the current screen is greater than that of any instance 'HBackgroundDevice' included in the current screen, and the value of the attribute 'z-Order' of the instance 'HGraphicsDevice' included in the current screen is greater than that of any instance
  • instances 'HBackgroundDevice,' 'HVideoDevice,' and 'HGraphicsDevice' are arranged in the order predetermined as described above, the arrangement order of instances 'HScreenDevice' of the same type may arbitrarily be determined.
  • An attribute 'Display_Area' 520 is information regarding a display screen area of a logical screen, as to be illustrated in FIGS. 7(a) and 7(b).
  • FIG. 7(a) illustrates that a logical screen 710 is mapped to an entire area of the display screen 720
  • FIG. 7(b) illustrates that a logical screen 730 is mapped to a partial area of the display screen 740.
  • the attribute 'Display_Area' may include information specifying the 2-dimensional coordinates of a predetermined portion of a display screen to which the logical screen is to be mapped or may include information specifying a predetermined location on the display screen and an offset value indicating how much the logical screen deviates from the predetermined location on the display screen.
  • An attribute 'Visibility' 530 determines whether a logical screen is to be visibly or invisibly displayed on a display screen. It is possible to make a logical screen appear on or disappear from a display screen by altering the value of the attribute 'Visibility' 530.
  • An attribute 'Associated_Display_Screen' 540 is information regarding display screens associated with a logical screen. A logical screen which is not associated with any display screens may not be displayed on a physical display device nor be transmitted to external output devices.
  • An attribute 'Associated Service Contexts' 550 is information regarding service contexts connected to a logical screen or a display screen. Services set in such service contexts may be displayed on a logical screen or a display screen.
  • An attribute ' Associated_Logical_Screens' 560 is information regarding logical screens associated with a display screen.
  • An attribute 'OutputPort' 570 is information regarding devices by which a display screen is to be output, and such devices include display screens, wired/wireless communication media, and various storage media.
  • Interfaces for identifying or altering the values of the attributes illustrated in FIG. 5 may be provided.
  • the interfaces may include an interface 'SET' for setting attribute values or connecting a logical screen to a display screen, an interface 'ADD' for adding attribute values or connecting a logical screen to a service, an interface 'GET' for identifying attribute values, and an interface 'REMOVE' for deleting attribute values.
  • These interfaces may include processes, functions, procedures, or methods that perform their functions, respectively.
  • a method 'setZOrder(int order)' sets or alters the attribute 'Z-Order' described above.
  • the parameter 'order' refers to attribute information representing the order of displaying the logical screens when the logical screens are displayed on the display screen.
  • the method 'setZOrder(int order)' is a setting interface for setting the attribute 'Z-Order'.
  • An exception handling for the method 'setZOrder(int order)' can be conducted. This exception handling is conducted when the current screen is not a logical screen or the attribute 'Z-Order' of the current screen cannot be changed due to a hardware or software characteristics.
  • a method 'getZOrder(void)' provides attribute information of 'Z-Order' in the current screen without any parameters, and return the value of 'Z-Order' that is not negative. If the current screen is a display screen, the method 'getZOrder(void)' preferably returns 0, and the logical screen preferably has a natural number larger than 1.
  • the method 'getZOrder(void)' is an acquisition interface for acquiring information of the attribute 'Z-Order'.
  • a method 'setZOrder(HScreenDevice[])' sets or alters values of the attributes 'z-Order' of the instances 'HScreenDevice' in a logical screen or a display screen.
  • a parameter of the method 'setZOrder(HScreenDevice[])' is a collection of the instances 'HScreenDevice' whose values of the attribute 'Z-Order' are to be set or altered.
  • the method 'setZOrder(HScreenDevice[])' is a setting interface for setting the attribute information of 'Z-Order' of the instances 'HScreenDevice.
  • An exception handling for the method 'setZOrder(HScreenDevice[])' can be conducted. This exception handling is conducted when the attributes 'Z-Order' of the instances 'HScreenDevice' in the current screen cannot be changed due to hardware or software characteristics of an apparatus for providing multiple screens.
  • a method 'intgetZOrder(HScreenDevice)' provides attribute information of 'Z-Order' of the instances 'HScreenDevice' in the current logical or display screen, and returns the value of the attribute 'Z-Order' that is not negative.
  • the method 'getZOrder(HscreenDevice)' is an acquisition interface for acquiring information of the attribute 'Z-Order' of the instances 'HScreenDevice.'
  • a method 'getDisplayScreen(void)' returns a display screen associated with the current screen.
  • the method 'getDisplayScreen(void)' returns the associated display screen.
  • the method 'getDisplayScreen(void)' returns reference information regarding the current screen.
  • the method 'getDisplayScreen(void)' returns a value of 'NULL ' .
  • a method 'public void setDisplayArea(HScreenRectangle rect) throws SecurityException, IllegalStateException' provides a function for mapping the current logical screen to a predetermined area of the associated display screen.
  • An instance that is provided as a parameter is of a class 'HScreenRectangle' of a package 'org.havi.ui', and has 2-dimensional position information.
  • the execution of the methods 'SecurityException' and 'IllegalStateException' may be conducted as an exceptional operation for the method 'setOutputScreen(HScreen screen)'.
  • the method 'IllegalStateException' may be executed when the current screen is a logical screen or when a portion of a display screen associated with a current logical screen cannot change due to the characteristics of a host platform.
  • a method 'getOutputArea(void)' returns regional information of a current screen as HScreenRectangle information. If the current screen corresponds to a display screen, the method 'getOutputArea(void)' returns HScreenRectangle information having the same value as HScreenRectangle (0,0,1,1). If the current screen is a logical screen, the method 'getOutputArea(void)' returns information regarding an area on a display screen occupied by the current screen. If the current screen is a logical screen but is not associated with any display screen, the method 'getOutputArea(void)' returns a value 'NULL'. Certain terms are used throughout the following description to refer to particular interfaces. However, one skilled in the art will appreciate that a particular function is named just to indicate its functionality. This document does not intend to distinguish between functions that differ in name but not function.
  • FIG. 8 is a diagram illustrating a process that two services are set on a display screen to be mapped to a single screen.
  • a first service includes all the three service components, i.e., video, audio, and data components
  • a second service includes only video and audio components.
  • the present invention does not impose any restrictions on service components, and the first and second services illustrated in FIG. 8 are exemplary.
  • the first and second services are displayed on a physical display device in almost the same manner as in the related art. According to the current embodiment of the present invention, it is possible to display a plurality of services on a physical display device independently of one another without imposing any restrictions on the number of services that can be displayed on a single display screen.
  • FIG. 9 is a block diagram of an apparatus for providing multiple screens according to an exemplary embodiment of the present invention.
  • an apparatus 900 for providing multiple screens includes a digital signal processing module 940, a service processing module 950, an output module 960, and a user interface module 965.
  • the apparatus 900 includes a broadcast signal reception module 910, a storage medium 920, and an external input module 930 as service sources, and includes a display screen 970, a storage medium 980, and an external output module 990 as service output media.
  • 'module' means, but is not limited to, a software or hardware component, such as a Field Programmable Gate Array (FPGA) or Application Specific Integrated Circuit (ASIC), which performs certain tasks.
  • a module may advantageously be configured to reside on the addressable storage medium and configured to execute on one or more processors.
  • a module may include, by way of example, components, such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.
  • components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.
  • the functionality provided for in the components and modules may be combined into fewer components and modules or further separated into additional components and modules.
  • the digital signal processing module 940 receives various information of a service such as a multimedia content, e.g., video information, audio information, or data information, from the broadcast signal reception module 910, the storage medium 920, or the external input module 930.
  • a multimedia content e.g., video information, audio information, or data information
  • the broadcast signal reception module 910 receives a satellite, terrestrial, or cable broadcast signal and transmits the received broadcast signal
  • the storage medium 920 stores video information, audio information, or data information of a service
  • the external input module 930 receives video information, audio information, or data information of a service from an external device such as a network interface module connected to a network.
  • the digital signal processing module 940 restores a plurality of services using received service components.
  • the restored services include abstract or non-abstract services.
  • the 'a plurality of services' refers to two or more services transmitted by the broadcast signal reception module 910 or two or more services respectively transmitted by the broadcast signal reception module 910 and the storage medium 920.
  • the digital signal processing module 940 may restore services according to selection by a user or an application with the aid of the user/application interface module 965.
  • the user or the application may select the connection between an arbitrary service and a screen.
  • the service processing module 950 produces a logical screen to display a service restored by the digital signal processing module 940.
  • the service processing module 950 reserves resources for a logical screen or a display screen and, if the use of the resources is terminated, releases and returns the used resources.
  • the output module 960 maps a plurality of logical screens produced by the service processing module 950 to the display screen.
  • the mapping of the logical screens to the display screen may be conducted using a predefined method or a method set by the user with the aid of the user/application interface module 965.
  • a service restored by the digital signal processing module 940 may not be processed by the service module 950. Instead, a service restored by the digital signal processing module 940 may be directly mapped to a certain portion of a display screen produced by the output module 960.
  • a display screen provided by the output module 960 may be displayed on the physical display device 970 or may be stored in the storage medium 980. Examples of the storage medium 980 include computer readable floppy discs, hard discs, CD-ROM. DVD, DVD-ROM, BD(Blu-ray Disc), and semiconductor memories.
  • a display screen provided by the output module 960 may be transmitted to an external device connected to a network via the external output module 990.
  • the output module 960 may include a plurality of output ports via which a display screen can be provided.
  • a display screen can be provided via an output port set in advance as a default or an output port chosen by the user with the aid of the user interface module 965.
  • the user or the application can choose one of a plurality of services or restore desired services using the user interface module 965. Also, the user can choose one of a plurality of display screens using the user interface module 965.
  • FIG. 10 is a flowchart illustrating a method of dynamically configuring multiple screens according to an exemplary embodiment of the present invention.
  • video information, audio information, and data information constituting a multimedia content are transmitted in a predetermined format, for example, an MPEG stream format.
  • an apparatus for providing a service such as a multimedia content service receives video information, audio information, and data information and restores a service based on the video information, the audio information, and the data information.
  • the service restored in operation SlOlO may be selected or previously determined by a user or an application.
  • the user may use a menu displayed on the display device or a remote controller to select the connections between an arbitrary screen and a screen.
  • the application may select the connections using an API.
  • data information includes application information regarding application program for a service, and these application information includes signal information indicating whether the application program can be executed on a PiP screen.
  • application information examples include application information table (AIT) based on MHP standard and extended application information table (XAIT) based on OCAP standard.
  • the signal information may be added to the application.
  • the apparatus reserves resources for a logical or display screen that is to display the restored service.
  • a specific method of reserving resources will be described later.
  • the apparatus sets the restored service such that the restored service can be displayed on a logical screen.
  • the logical screen is mapped to a display screen.
  • the display screen is provided to the user using a display screen, a storage medium, or a network.
  • the restored service is illustrated in FIG. 10 as being displayed on a physical display device via a logical screen. However, the restored service may be directly displayed on a physical display device without passing through the logical screen.
  • the PiP service When the user selects the PiP service, the PiP service is realized in two modes. In the first mode, only video component for PiP service selected on the main screen is provided without creating a separate logical screen for PiP service, that is, PiP screen. In the second mode, a separate logical screen for PiP service is created to provide the PiP service selected on the created PiP screen.
  • FIG. 10 illustrates a method of mapping only one service to a display screen for simplicity. However, a plurality of services may be mapped to a display screen with or without passing through a plurality of logical screens.
  • FIG. 11 is a diagram illustrating a software architecture for providing multiple screens according to an exemplary embodiment of the present invention.
  • a software architecture 1100 includes a device driver layer
  • the device driver layer 1110 receives service components from various multimedia content sources and decodes the received service components. Examples of the received service components include video information, audio information, and data information.
  • the API layer 1120 reserves resources for a logical or display screen, which is to display a service, and produces the logical and display screens based on the reserved resources. In addition, the API layer 1120 maps a service, the logical screen, and the display screen to one another.
  • the application layer 1130 provides a user interface so that a user can dynamically configure a logical screen which displays a service or transmits a user command to the API layer 1120 so that the API layer 1120 can execute the user command.
  • the user enables the device driver layer 1110 with the aid of the application layer 1130 to provide a display screen via a physical display device or to store the display screen in a storage medium.
  • the user can enable the device driver layer 1110 to transmit a display screen to an external device via a network.
  • the device driver layer 1110 may include a plurality of output ports which can provide a display screen.
  • API layer 1120 may include the plurality of output ports.
  • the API layer 1120 may include a plurality of software modules, e.g., a multiscreen manager module 'MultiScreenManager' 1210, a multiscreen context module 'MultiScreenContexf 1230, a multiscreen context listener module 'MultiScreenContextListener' 1250, and a multiscreen context event module 'MultiScreenContextEvenf 1240, as illustrated in FIG. 13.
  • the multiscreen manager module 1210 manages the multiscreen context module
  • the multiscreen context module 1230 is an interface object associated with a screen object 1220 and determines whether the screen object 1220 is to become a logical screen or a display screen according to an interface operation performed by the multiscreen context module 1230.
  • Various attributes such as the attributes 510 through 570 illustrated in FIGS. 6A and 6B may be set in the multiscreen context module 1230.
  • the multiscreen context module 1230 can provide the functions 'SET', 'ADD', 'GET', and 'REMOVE' described above with reference to FIGS. 6A and 6B.
  • the multiscreen context event module 1240 serves as an event class announcing that the attribute information of the screen object 1220 has been changed, and the multiscreen context listener module 1250 serves as a listener interface object which can be realized in a predetermined application class which attempts to receive an event prompted by the multiscreen context event module 1240.
  • An application 1260 is a module which is driven on the application layer 1130.
  • the application 1260 allows the user to choose a desired service and to freely arrange a plurality of logical screens on a display screen.
  • the application 1260 transmits various commands which allow the user to dynamically configure and manage logical screens to the multiscreen manager module 1210, and the multiscreen manager module 1210 controls operations corresponding to the various commands to be executed through the multiscreen context module 1230.
  • the multiscreen context module 1230 is associated with the screen object 1220 and manages the attribute information of the screen object 1220 illustrated in FIGS. 6 A and 6B.
  • the multiscreen context module 1230 may include a variety of functions or methods.
  • the multiscreen manager module 1210 receives service components provided by various service sources from the device driver layer 1110 and performs operations to display the received service components on a logical screen or a display screen.
  • FIG. 13 is a flowchart illustrating a method of displaying a plurality of services displayed on respective corresponding logical screens by the modules illustrated in FIG. 13 on a display screen according to an exemplary embodiment of the present invention.
  • operation S1305 resources for logical and display screens are reserved. A method of reserving and returning resources will be described in detail later with reference to FIGS. 14 through 17. Then, in operation S1310, the multiscreen manager module 1210 produces a display screen and a number of logical screens, which correspond to the number of services to be performed, based on the reserved resources.
  • the multiscreen manager module 1210 connects the logical screens to respective corresponding services received from the device driver layer 1110.
  • the multiscreen manager module 1210 may call a method 'addServiceContexts' for each of the logical screens by setting service context objects of the received services as parameters for the logical screens services.
  • the method 'addServiceContexts' connects a logical screen to a service and may be provided by the multiscreen context module 1230.
  • the multiscreen manager module 1210 connects the logical screens to the display screen.
  • the multiscreen manager module 1210 may call a method 'setDisplayScreen' for each of the logical screens by setting a display screen object to which the logical screens are connected as a parameter.
  • the method 'setDisplayScreen' connects a logical screen to a display screen and may be provided by the multiscreen context module 1230.
  • a method 'setDisplayScreensetDisplayScreen' may be set to 'public void setDisplayScreensetDisplayScreen(HScreen screen) throws SecurityException, Illegal StateException', and this method allows an instance 'HScreen' that is provided as a parameter to be associated with the current logical screen.
  • the instance 'HScreen' is preferably a display screen.
  • a parameter of the method 'setDisplayScreen(HScreen screen)' may include a value of 'NULL'. In this case, when the method 'setDisplayScreen(HScreen screen)' is executed without exception handling, the current logical screen is no longer associated with the display screen.
  • the execution of the methods 'SecurityException' and 'IllegalStateException' may be conducted as an exceptional operation for the method 'setOutputScreen(HScreen screen)'.
  • the method 'IllegalStateException' may be executed when a current screen is a logical screen or when a portion of a display screen associated with a current logical screen cannot change due to the characteristics of a host platform.
  • operation S 1340 areas on the display screen to which the logical screens are to be respectively mapped are determined.
  • a predetermined method provided by the multiscreen context module 1230 can be called to determine an area on the display screen where the logical screens are to be displayed.
  • FIG. 14 is a diagram illustrating a configuration required to perform resource reservation according to an exemplary embodiment of the present invention.
  • a resource client 1410, a resource server 1420, and a resource proxy 1430 are involved in resource reservation, and each of them may be understood as an interface object driven on the API layer 1120 illustrated in FIG. 11.
  • the resource client 1410 is an interface object which is part of an application or a middleware component that actually uses resources
  • the resource server 1420 is an interface object processing a resource request.
  • the resource proxy 1430 stores setting information of resources and executes a security policy of middleware.
  • a security policy of middleware hereinafter, the operation of each of the resource client 1410, the resource server
  • FIG. 15 is a flowchart illustrating a method of managing resources according to an exemplary embodiment of the present invention.
  • the resource client 1410 requests the resource server 1420 to reserve resources in operation S 1510. Then, in operation S 1520, the resource server 1420 connects the requested resources to the resource proxy 1430 in response to the request.
  • the resource client 1410 uses the resources through the resource proxy 1430. Consequently, a corresponding application or middleware component can use the resources.
  • FIG. 16 is a flowchart illustrating a method of reserving resources for a screen according to an exemplary embodiment of the present invention.
  • an application or a middleware component calls a method 'reserveScreen' of the multiscreencontext module 1230 illustrated in FIG. 12, that is, an interface object 'MultiScreenContext,' in operation S 1610.
  • the resource server 1420 connects the resources for the screen to the resource proxy 1430 in operation S 1620.
  • 'MultiScreenResourceEvent.MULTI_SCREEN_RESOURCE_SCREEN_RESERVED' indicating that the resources for the screen have been allocated is generated in operation S 1630, the method 'reserveScreen' returns a 'TRUE' value in operation S 1640, thereby completing the reservation of the resources for the screen.
  • 'MultScreenResourceEvent' may be understood as an interface object which is a group of events that may occur when resources for a screen are managed.
  • 1 MULTI SCREEN RESOURCE SCREEN-RESERVED' is a type of event and indicates that resources have been reserved.
  • FIG. 17 is a flowchart illustrating a method of returning resources for a screen according to an exemplary embodiment of the present invention.
  • an application or a middleware component calls a method 'releaseScreen' of the multiscreencontext module 1230 illustrated in FIG. 12, that is, the interface object 'MultiScreenContext,' in operation S 1710.
  • the resource server 1420 disconnects the resources, which are to be returned, from the resource proxy 1430 in operation S 1720.

Abstract

Provided are an apparatus and method for managing resources in a multiscreen environment. The apparatus includes a digital signal processing module receiving at least one of video information, audio information, and data information and restoring a plurality of services based on the at least one of the video information, the audio information and the data information; a service processing module reserving resources for a screen object, which is to display the restored services, and producing a display screen and a plurality of logical screens based on the reserved resources; and an output module mapping the plurality of logical screens provided by the service processing module to different locations on the display screen.

Description

APPARATUS AND METHOD FOR MANAGING RESOURCE IN MULTIPLE SCREENS ENVIRONMENT
Technical Field
The present invention relates to resource management, and more particularly, to an apparatus and method for managing resources in a multiscreen environment where multiple screens provide content on a physical display device.
Background Art
Conventional broadcast receivers such as digital TVs or digital set-top boxes provide only one content element on a single physical display device or simultaneously display a main screen and a sub-screen on a single physical display device. Even though conventional broadcast receivers can simultaneously display both the main screen and the sub-screen on the same display screen, they can only arrange the main screen and the sub-screen in a limited number of manners. In the case of a content displayed within the main screen, all elements of the content, i.e., video data, audio data, and other data, are displayed. On the other hand, in the case of a content displayed within the sub-screen, only some of the elements of the content are displayed.
Content sources include a broadcast service such as a satellite broadcaster, a terrestrial broadcaster, or a cable broadcaster, a storage medium such as DVDs, or an external device connected to an input terminal. However, it is quite difficult to display contents provided by such various content sources on a display screen using the existing broadcast receivers.
In an interactive TV application program environment such as Multimedia Home Platform (MHP), Advanced Common Application (ACAP), Open Cable Application Platform (OCAP), it is assumed that only one screen is output on a physical display device. In the interactive TV application program environment, for example, a Home Audio/Video Interoperability (HAVi)-based user interface (UI) is adopted. According to the HAVi UI standard, even though no restriction is imposed on the number of screens displayed on a physical display device, only one screen is generally displayed on a physical display device.
In such an environment, it is difficult to perform operations, such as decoding, digital signal processing, user interaction processing, etc. with respect to one among multimedia contents displayed on a screen while displaying the multimedia contents on independent screens. In addition, it is also difficult to dynamically control the life cycles of application programs and the use of resources in the units of the screens.
DISCLOSURE OF THE INVENTION
Technical Problem When a number of applications or middleware are to use limited resources, they may have to contend for the limited resources. To solve this problem, the resources may be reserved according to a resource management policy or the importance of each application. For example, a conventional OCAP standard defines 'HBackgroundDevice/ 'HVideoDevice,' and 'HGraphicsDevice' inherited from an object 'HScreenDevice,' which is defined in the HAVi standard, as limited resources and manages them accordingly. In the conventional OCAP standard, resources must be reserved in advance in order to use a corresponding device. That is, the OCAP standard supports resource reservation in units of devices that form the object 'HScreenDevice.' Therefore, it is required to manage resources in units of objects 'HScreenDevice,' each object including ΗBackgroundDevice,' 'HVideoDevice,' and 'HgraphicsDevice,' in order to support multiple screens.
Technical Solution
The present invention provides a method of managing resources in units of multiple screens displayed on a physical display device. The above and other objects of the present invention will be described in or be apparent from the following description of the preferred embodiments.
According to an aspect of the present invention, there is provided an apparatus for managing resources in a multiscreen environment. The apparatus includes a digital signal processing module receiving at least one of video information, audio information, and data information and restoring a plurality of services based on the at least one of the video information, the audio information and the data information; a service processing module reserving resources for a screen object, which is to display the restored services, and producing a display screen and a plurality of logical screens based on the reserved resources; and an output module mapping the plurality of logical screens provided by the service processing module to different locations on the display screen.
According to another aspect of the present invention, there is provided an apparatus for managing resources in a multiscreen environment. The apparatus includes a resource client requesting the reservation of resources for a screen object; and a resource server connecting the resources to a resource proxy in response to the request, wherein the resource client uses the reserved resources through the resource proxy.
According to another aspect of the present invention, there is provided a method of managing resources in a multiscreen environment. The method includes (a) calling a method for requesting resources for a screen object; (b) connecting the resources as the method is called; (c) generating an event indicating that the resources have been reserved as the resources are connected; and (d) completing the reservation of the resources as the event is generated.
According to another aspect of the present invention, there is provided a method managing resources in a multiscreen environment. The method includes (a) calling a method for releasing resources for a screen object; (b) disconnecting the resources as the method is called; (c) generating an event indicating that the resources have been released as the resources are disconnected; and (d) completing the releasing of the resources as the event is generated.
Description of Drawings The above and other features and advantages of the present invention will become more apparent by describing in detail preferred embodiments thereof with reference to the attached drawings in which:
FIG. l is a diagram illustrating a configuration of a PiP screen according to an exemplary embodiment of the present invention;
FIG. 2 is a diagram illustrating the relationship between a logical screen and a display screen according to an exemplary embodiment of the present invention;
FIG. 3 is a block diagram illustrating service sources according to an exemplary embodiment of the present invention; FIGS. 4(a) to 4(b) are diagrams illustrating a non-abstract service and an abstract service according to an exemplary embodiment of the present invention;
FIG. 5 is a diagram illustrating attribute information and interfaces of a logical screen and a display screen;
FIGS. 6(a) and 6(b) are diagrams illustrating an attribute 'z-order' of a logical screen according to an exemplary embodiment of the present invention;
FIGS. 7(a) and 7(b) are diagrams illustrating an attribute 'Display Area' of a logical screen according to exemplary embodiments of the present invention;
FIG. 8 is a diagram illustrating a method of mapping two services to a display screen according to an exemplary embodiment of the present invention; FIG. 9 is a block diagram illustrating a configuration of an apparatus for providing multiple screens according to an exemplary embodiment of the present invention;
FIG. 10 is a flowchart illustrating a method of dynamically configuring multiple screens according to an exemplary embodiment of the present invention;
FIG. 11 is a diagram illustrating a software architecture for providing multiple screens according to an exemplary embodiment of the present invention;
FIG. 12 is a diagram illustrating the relationships among modules constituting an application program interface (API) layer according to an exemplary embodiment of the present invention;
FIG. 13 is a flowchart illustrating a method of displaying a plurality of services that are displayed on respective corresponding logical screens on a display screen by the modules illustrated in FIG. 12; FIG. 14 is a diagram illustrating a configuration required to perform resource reservation according to an exemplary embodiment of the present invention;
FIG. 15 is a flowchart illustrating a method of managing resources according to an exemplary embodiment of the present invention; FIG. 16 is a flowchart illustrating a method of reserving resources for a screen according to an exemplary embodiment of the present invention; and
FIG. 17 is a flowchart illustrating a method of returning resources for a screen according to an exemplary embodiment of the present invention.
<Reference Names of Major Components Shown in the Drawings> 900: apparatus for providing multiple screens
910: broadcast signal reception module
920: storage medium
930: external input module
940: digital signal processing module 950: service processing module
960: output module
965: user/application interface module
970: physical display device
980: storage medium 990: external output module
Mode for Invention
Advantages and features of the present invention and methods of accomplishing the same may be understood more readily by reference to the following detailed description of preferred embodiments and the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete and will fully convey the concept of the invention to those skilled in the art, and the present invention will only be defined by the appended claims. Like reference numerals refer to like elements throughout the specification.
The present invention is described hereinafter with reference to flowchart illustrations of user interfaces, methods, and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart block or blocks.
These computer program instructions may also be stored in a computer usable or computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer usable or computer-readable memory produce an article of manufacture including instruction means that implement the function specified in the flowchart block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks. And each block of the flowchart illustrations may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order. For example, two blocks illustrated in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. For a better understanding of the present invention, the terms used in this disclosure will now be defined.
The term 'service' indicates a group of multimedia contents displayed together, i.e., a group of service components. Service components are elements of a service and include a video component, an audio component, and a data component. A data component is an application program in a service.
The term 'service context' indicates an object which can control the executing of a service and includes various resources, devices, and execution state information needed for providing a service.
The term 'physical display device' indicates a physical space which actually displays the content of a service.
The term 'display screen' indicates a screen actually displayed on a physical display device. An arbitrary service may be directly set in the display screen, and the display screen may be displayed on a physical display device. Alternatively, at least one logical screen which is mapped to a certain area of the display screen may be displayed on the physical display device.
The term 'logical screen' indicates a space in which an arbitrary service is displayed. A logical screen is a virtual screen before being mapped to a display screen and thus is not displayed on a physical display device.
The logical screen and the display screen may be a combination of a background still image, a video raster, and a graphic raster. The graphic raster may be a combination of text, lines, colors, and images or a mixture of video frames.
The term 'main service' indicates a service that is selected as a main service through a menu displayed on the physical display device or a remote controller by a user or through an API by an application, and the screen on which the main service is displayed is referred to as a 'main screen'.
The term 'Picture-in-Picture service (PiP service)' indicates a service that is selected as a sub-service in the main service through a menu displayed on a physical display device or a remote controller by a user via an API by an application, and the PiP service may be displayed on a picture-in-picture screen (PiP screen) or a main screen. The PiP screen includes a screen that occupies a part of another screen as illustrated in FIGS. l(a) to l(d) and a screen that is simultaneously displayed with another screen without overlapping the other screen as illustrated in FIGS. l(e) to l(f). In this case, it is understood that the PiP screen may include a screen that overlaps another screen on an arbitrary location or area in the physical display device, as illustrated in FIGS. l(g) and l(h).
FIG. 2 is a diagram illustrating the relationship between a logical screen and a display screen according to an exemplary embodiment of the present invention.
Referring to FIG. 2, a service may be displayed using logical screens 210, 212, and 214. The logical screens 210, 212, and 214 are mapped to display screens 220, 222, and 224 through a mapping block 230.
In detail, the logical screens 210 and 212 are mapped to the display screen 220, the logical screens 212 and 214 are mapped to the display screen 222, and the logical screens 210, 212, and 214 are mapped to the display screen 224. In short, at least one logical screen which displays a service is mapped to an arbitrary area of a display screen.
The mapping block 230 is a group of various pieces of information needed for mapping a logical screen to a display screen. Examples of the various pieces of information include coordinate information of a predetermined area on a display screen to which each of a plurality of logical screens is mapped, identification information of the logical screens and the display screen, and information specifying in what order the logical screens are displayed on the display screen. The mapping block 230 may be realized by interfaces or functions prepared by various computer program languages to be executed and create or change the relationship between the logical screen and the display screen by using the above information as parameters.
Further, services provided by various service sources may be displayed on a display screen, and the display screen may be displayed on a physical display device, as illustrated in FIG. 3.
There are service sources which provide broadcast services such as a terrestrial broadcaster 320 and a cable broadcaster 330, service sources which provide services stored in a storage medium such as a personal video recorder (PVR) 340, and service sources (not illustrated in FIG. 3) which provide services via a wired network or a wireless network.
A broadcast receiver 310 receives services from the service sources and produces logical screens displaying each of the received services. Then, an arbitrary service is directly set on the display screen to be displayed on a physical display device using a predefined method or a method set by a user or an application. Otherwise, at least one logical screen that is mapped to an arbitrary area on the display screen is displayed on a physical display device 350. In short, services provided by the terrestrial broadcaster 320, the cable broadcaster 330, and the PVR are displayed on the physical display device 350.
The terrestrial broadcaster 320, the cable broadcaster 330, and the PVR 340 are illustrated in FIG. 3 as being service sources, but the present invention is not limited to it. Any type of multimedia content source which provides multimedia contents that can be displayed together can be a service source according to an exemplary embodiment of the present invention.
Services according to an exemplary embodiment of the present invention can be classified into abstract services and non-abstract services, as illustrated in FIGS. 4(a) and 4(b).
The abstract services are not services provided by broadcast signals transmitted in real time but services independent of broadcast channels. The abstract services include only data components, i.e., application programs, without video components and audio components. Examples of the abstract services include services having unbound applications based on the open cable application platform (OCAP) standard.
The non-abstract services are understood as services other than abstract services. According to the current embodiment of the present invention, both abstract services and non-abstract services have independency. For example, abstract services may be directly set on the physical display device not through logical screens and non-abstract services may be displayed on the logical screens. Then, the logical screens may be mapped to the display screen in which the abstract services are set. Thereafter, the display screen may be output through the physical display device. By doing so, the abstract services can be displayed on the display screen independently of the non-abstract services. In addition, the abstract services and non-abstract services may be mapped to different logical screens. Thereafter, the logical screens may be mapped to a single display screen. In other words, the abstract services can be displayed on the display screen independently of non-abstract services. According to the current embodiment of the present invention, the logical screen and the display screen may be categorized as being different objects. Alternatively, a screen may serve as a logic screen or a display screen according to attribute information of one screen object.
In detail, if screen object attributes corresponding to the characteristics of a logical screen has a predefined value and other screen object attributes have fixed values, a screen object may serve as a logical screen. On the other hand, if screen object attributes corresponding to the characteristics of a display screen have predefined values and other screen object attributes have fixed values, a screen object may serve as a display screen.
Attribute information of the screen object includes a plurality of attributes 'z-Order', 'Display Area', 'Visibility', 'Associated_Display_Screen',
'Associated_Service_Contexts', 'Associated_Logical_Screens', and 'OutputPort'.
If the attributes 'z-Order', 'Display_Area\ 'Visibility',
'Associated_Display_Screen', and 'Associated_Service_Contexts' have predefined values and the attributes 'Associated_Logical_Screens', and 'OutputPort' have fixed values, a screen object may serve as a logical screen.
On the other hand, if the attributes 'Associated Service Contexts', 'AssociatedJLogical Screens', and 'OutputPort' have predefined values and the attributes 'z-Order', 'Display Area', 'Visibility', and 'Associated Display Screen' have fixed values, a screen object may serve as a display screen. FIG. 5 illustrates attribute information and interfaces of a logical screen and a display screen.
Referring to FIG. 5, an attribute 'Type' 510 is for determining a screen type - a logical screen or a display screen.
An attribute 'z-Order' 520 is for determining in what order a plurality of logical screens are arranged along the z-axis. FIGS. 6(a) and 6(b) illustrate different configurations of logical screens on a physical display device for different combinations of the values of attributes 'z-Order' of the logical screens.
Referring to FIG. 6(a), first and second logical screens 620 and 630 are respectively mapped to predetermined areas of a display screen 610. In detail, the first logical screen 620 is displayed on the display screen 610, and the second logical screen 630 is displayed on the display screen partially overlapping the first logical screen 620. In other words, the display screen 610, the first logical screen 620, and the second logical screen 630 are sequentially arranged in the direction of the z-axis. In this case, an attribute 'z-Order' of the first logical screen 620 may be set to a value of 1, and an attribute 'z-Order' of the second logical screen 630 may be set to a value of 2. The attributes 'z-Order' of the first and second logical screens 620 and 630 may be set to any numbers or characters as long as they can represent a certain order in which the first and second logical screens 620 and 630 are to be arranged along the z-axis.
Referring to FIG. 6(b), when a value of the attribute 'z-Order' of the first logical screen 620 illustrated in FIG. 6(a) is changed 1 to 2, and a value of the attribute 'z-Order' of the second logical screen 630 is changed 2 to 1, the first and second logical screens 620 and 630 are respectively mapped to predetermined areas of the display screen 610. In this case, the display screen 610, the first logical screen 620, and the second logical screen 630 are sequentially arranged in the direction of the z-axis according to the changed value of the attribute ' z-Order' .
As described above, the attribute 'z-Order' indicates the order in which a plurality of logical screens are arranged. The attribute 'z-Order' may also indicate the order in which components of a logical screen or a display screen are arranged.
For example, as described above, a logical screen or a display screen may be a combination of a background still image, a video raster, and a graphic raster. For convenience of description, an instance (or an object) providing a background still image, such as a background image, will be referred to as 'HBackgroundDevice,' an instance (or an object) providing a video, such as a moving picture, will be referred to as 'HVideoDevice,' and an instance (or an object) providing graphics, such as application data, will be referred to as 'HGraphicsDevice.' In addition, the instances (or the objects) 'HBackgroundDevice,' 'HVideoDevice,' and 'HGraphicsDevice' will collectively be referred to as 'HScreenDevice.'
Here, the order in which the instances 'HScreenDevice' of the logical screen or the display screen are arranged in the direction of the z-axis may be determined. Preferably, 'HBackgroundDevice,' 'HVideoDevice,' and 'HGraphicsDevice' may be sequentially arranged. Accordingly, the value of the attribute 'z-Order' of the instance 'HVideoDevice' is greater than that of the instance 'HBackgroundDevice,' and the value of the attribute 'z-Order' of the instance 'HGraphicsDevice' is greater than that of the instance 'HVideoDevice.' If the instance 'HBackgroundDevice' exists in a current screen, the value of the attribute 'z-Order' of the instance 'HBackgroundDevice' placed at the very bottom of the current screen (at the very back of the current screen from a viewer's point of view) is zero.
If the current screen does not have the instance 'HBackgroundDevice' but has 'HVideoDevice,' the value of the attribute 'z-Order' of the instance 'HVideoDevice' placed at the very bottom of the current screen (at the very back of the current screen from the viewer's point of view) is zero.
If the current screen has neither the instance 'HBackgroundDevice' nor the instance 'HVideoDevice,' the value of the attribute 'z-Order' of the instance 'HGraphicsDevice' placed at the very bottom of the current screen (at the very back of the current screen from the viewer's point of view) is zero.
In addition, the value of the attribute 'z-Order' of the instance 'HVideoDevice' included in the current screen is greater than that of any instance 'HBackgroundDevice' included in the current screen, and the value of the attribute 'z-Order' of the instance 'HGraphicsDevice' included in the current screen is greater than that of any instance
'HVideoDevice' included in the current screen. Since those of the instances
'HScreenDevice,' which have greater values of the attributes 'z-Order,' are placed closer to the front of the current screen, they are located a shorter distance from the viewer.
While the instances 'HBackgroundDevice,' 'HVideoDevice,' and 'HGraphicsDevice' are arranged in the order predetermined as described above, the arrangement order of instances 'HScreenDevice' of the same type may arbitrarily be determined.
An attribute 'Display_Area' 520 is information regarding a display screen area of a logical screen, as to be illustrated in FIGS. 7(a) and 7(b). FIG. 7(a) illustrates that a logical screen 710 is mapped to an entire area of the display screen 720, and FIG. 7(b) illustrates that a logical screen 730 is mapped to a partial area of the display screen 740.
The attribute 'Display_Area' may include information specifying the 2-dimensional coordinates of a predetermined portion of a display screen to which the logical screen is to be mapped or may include information specifying a predetermined location on the display screen and an offset value indicating how much the logical screen deviates from the predetermined location on the display screen.
An attribute 'Visibility' 530 determines whether a logical screen is to be visibly or invisibly displayed on a display screen. It is possible to make a logical screen appear on or disappear from a display screen by altering the value of the attribute 'Visibility' 530. An attribute 'Associated_Display_Screen' 540 is information regarding display screens associated with a logical screen. A logical screen which is not associated with any display screens may not be displayed on a physical display device nor be transmitted to external output devices. An attribute 'Associated Service Contexts' 550 is information regarding service contexts connected to a logical screen or a display screen. Services set in such service contexts may be displayed on a logical screen or a display screen.
An attribute ' Associated_Logical_Screens' 560 is information regarding logical screens associated with a display screen. An attribute 'OutputPort' 570 is information regarding devices by which a display screen is to be output, and such devices include display screens, wired/wireless communication media, and various storage media.
Interfaces for identifying or altering the values of the attributes illustrated in FIG. 5 may be provided. Referring to FIG. 5, the interfaces may include an interface 'SET' for setting attribute values or connecting a logical screen to a display screen, an interface 'ADD' for adding attribute values or connecting a logical screen to a service, an interface 'GET' for identifying attribute values, and an interface 'REMOVE' for deleting attribute values. These interfaces may include processes, functions, procedures, or methods that perform their functions, respectively.
For example, a method 'setZOrder(int order)' sets or alters the attribute 'Z-Order' described above. The parameter 'order' refers to attribute information representing the order of displaying the logical screens when the logical screens are displayed on the display screen. In detail, the method 'setZOrder(int order)' is a setting interface for setting the attribute 'Z-Order'.
An exception handling for the method 'setZOrder(int order)' can be conducted. This exception handling is conducted when the current screen is not a logical screen or the attribute 'Z-Order' of the current screen cannot be changed due to a hardware or software characteristics.
Corresponding to the method 'setZOrder(int order)', a method 'getZOrder(void)' provides attribute information of 'Z-Order' in the current screen without any parameters, and return the value of 'Z-Order' that is not negative. If the current screen is a display screen, the method 'getZOrder(void)' preferably returns 0, and the logical screen preferably has a natural number larger than 1. The method 'getZOrder(void)' is an acquisition interface for acquiring information of the attribute 'Z-Order'.
In addition, a method 'setZOrder(HScreenDevice[])' sets or alters values of the attributes 'z-Order' of the instances 'HScreenDevice' in a logical screen or a display screen. A parameter of the method 'setZOrder(HScreenDevice[])' is a collection of the instances 'HScreenDevice' whose values of the attribute 'Z-Order' are to be set or altered. In detail, the method 'setZOrder(HScreenDevice[])' is a setting interface for setting the attribute information of 'Z-Order' of the instances 'HScreenDevice.' An exception handling for the method 'setZOrder(HScreenDevice[])' can be conducted. This exception handling is conducted when the attributes 'Z-Order' of the instances 'HScreenDevice' in the current screen cannot be changed due to hardware or software characteristics of an apparatus for providing multiple screens.
Corresponding to a method 'setZOrder(HScreenDevice[])', a method 'intgetZOrder(HScreenDevice)' provides attribute information of 'Z-Order' of the instances 'HScreenDevice' in the current logical or display screen, and returns the value of the attribute 'Z-Order' that is not negative. The method 'getZOrder(HscreenDevice)' is an acquisition interface for acquiring information of the attribute 'Z-Order' of the instances 'HScreenDevice.'
According to another example, a method 'getDisplayScreen(void)' returns a display screen associated with the current screen. In detail, if the current screen is a logical screen, the method 'getDisplayScreen(void)' returns the associated display screen. If the current screen is display screen, the method 'getDisplayScreen(void)' returns reference information regarding the current screen. Further, if the current screen is a logical screen, but there is no associated screen, the method 'getDisplayScreen(void)' returns a value of 'NULL ' .
According to still another example, a method 'public void setDisplayArea(HScreenRectangle rect) throws SecurityException, IllegalStateException' provides a function for mapping the current logical screen to a predetermined area of the associated display screen. An instance that is provided as a parameter is of a class 'HScreenRectangle' of a package 'org.havi.ui', and has 2-dimensional position information. The execution of the methods 'SecurityException' and 'IllegalStateException' may be conducted as an exceptional operation for the method 'setOutputScreen(HScreen screen)'. The method 'IllegalStateException' may be executed when the current screen is a logical screen or when a portion of a display screen associated with a current logical screen cannot change due to the characteristics of a host platform.
According to still another example, a method 'getOutputArea(void)' returns regional information of a current screen as HScreenRectangle information. If the current screen corresponds to a display screen, the method 'getOutputArea(void)' returns HScreenRectangle information having the same value as HScreenRectangle (0,0,1,1). If the current screen is a logical screen, the method 'getOutputArea(void)' returns information regarding an area on a display screen occupied by the current screen. If the current screen is a logical screen but is not associated with any display screen, the method 'getOutputArea(void)' returns a value 'NULL'. Certain terms are used throughout the following description to refer to particular interfaces. However, one skilled in the art will appreciate that a particular function is named just to indicate its functionality. This document does not intend to distinguish between functions that differ in name but not function.
FIG. 8 is a diagram illustrating a process that two services are set on a display screen to be mapped to a single screen. Referring to FIG. 8, a first service includes all the three service components, i.e., video, audio, and data components, and a second service includes only video and audio components. However, the present invention does not impose any restrictions on service components, and the first and second services illustrated in FIG. 8 are exemplary.
As illustrated in FIG. 8, the first and second services are displayed on a physical display device in almost the same manner as in the related art. According to the current embodiment of the present invention, it is possible to display a plurality of services on a physical display device independently of one another without imposing any restrictions on the number of services that can be displayed on a single display screen.
FIG. 9 is a block diagram of an apparatus for providing multiple screens according to an exemplary embodiment of the present invention.
Referring to FIG. 9, an apparatus 900 for providing multiple screens includes a digital signal processing module 940, a service processing module 950, an output module 960, and a user interface module 965.
Also, the apparatus 900 includes a broadcast signal reception module 910, a storage medium 920, and an external input module 930 as service sources, and includes a display screen 970, a storage medium 980, and an external output module 990 as service output media.
The term 'module', as used herein, means, but is not limited to, a software or hardware component, such as a Field Programmable Gate Array (FPGA) or Application Specific Integrated Circuit (ASIC), which performs certain tasks. A module may advantageously be configured to reside on the addressable storage medium and configured to execute on one or more processors. Thus, a module may include, by way of example, components, such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functionality provided for in the components and modules may be combined into fewer components and modules or further separated into additional components and modules.
The digital signal processing module 940 receives various information of a service such as a multimedia content, e.g., video information, audio information, or data information, from the broadcast signal reception module 910, the storage medium 920, or the external input module 930.
The broadcast signal reception module 910 receives a satellite, terrestrial, or cable broadcast signal and transmits the received broadcast signal, the storage medium 920 stores video information, audio information, or data information of a service, and the external input module 930 receives video information, audio information, or data information of a service from an external device such as a network interface module connected to a network.
The digital signal processing module 940 restores a plurality of services using received service components. The restored services include abstract or non-abstract services.
Here, the 'a plurality of services' refers to two or more services transmitted by the broadcast signal reception module 910 or two or more services respectively transmitted by the broadcast signal reception module 910 and the storage medium 920.
The digital signal processing module 940 may restore services according to selection by a user or an application with the aid of the user/application interface module 965. In this case, the user or the application may select the connection between an arbitrary service and a screen.
The service processing module 950 produces a logical screen to display a service restored by the digital signal processing module 940. In addition, the service processing module 950 reserves resources for a logical screen or a display screen and, if the use of the resources is terminated, releases and returns the used resources.
The output module 960 maps a plurality of logical screens produced by the service processing module 950 to the display screen. The mapping of the logical screens to the display screen may be conducted using a predefined method or a method set by the user with the aid of the user/application interface module 965. A service restored by the digital signal processing module 940 may not be processed by the service module 950. Instead, a service restored by the digital signal processing module 940 may be directly mapped to a certain portion of a display screen produced by the output module 960. A display screen provided by the output module 960 may be displayed on the physical display device 970 or may be stored in the storage medium 980. Examples of the storage medium 980 include computer readable floppy discs, hard discs, CD-ROM. DVD, DVD-ROM, BD(Blu-ray Disc), and semiconductor memories.
Also, a display screen provided by the output module 960 may be transmitted to an external device connected to a network via the external output module 990.
For this, the output module 960 may include a plurality of output ports via which a display screen can be provided. In this case, a display screen can be provided via an output port set in advance as a default or an output port chosen by the user with the aid of the user interface module 965. The user or the application can choose one of a plurality of services or restore desired services using the user interface module 965. Also, the user can choose one of a plurality of display screens using the user interface module 965.
Since the modules illustrated in FIG. 9 are divided according to their functions, it is possible to be connected to the other modules. FIG. 10 is a flowchart illustrating a method of dynamically configuring multiple screens according to an exemplary embodiment of the present invention.
In general, video information, audio information, and data information constituting a multimedia content are transmitted in a predetermined format, for example, an MPEG stream format. In operation SlOlO, an apparatus for providing a service such as a multimedia content service receives video information, audio information, and data information and restores a service based on the video information, the audio information, and the data information. Here, the service restored in operation SlOlO may be selected or previously determined by a user or an application. The user may use a menu displayed on the display device or a remote controller to select the connections between an arbitrary screen and a screen. The application may select the connections using an API. Further, data information includes application information regarding application program for a service, and these application information includes signal information indicating whether the application program can be executed on a PiP screen. Examples of the application information include application information table (AIT) based on MHP standard and extended application information table (XAIT) based on OCAP standard. The signal information may be added to the application.
Thereafter, in operation S1015, the apparatus reserves resources for a logical or display screen that is to display the restored service. A specific method of reserving resources will be described later. In operation S 1020, based on the reserved resources, the apparatus sets the restored service such that the restored service can be displayed on a logical screen. In operation S 1030, the logical screen is mapped to a display screen. In operation S 1040, the display screen is provided to the user using a display screen, a storage medium, or a network. The restored service is illustrated in FIG. 10 as being displayed on a physical display device via a logical screen. However, the restored service may be directly displayed on a physical display device without passing through the logical screen.
When the user selects the PiP service, the PiP service is realized in two modes. In the first mode, only video component for PiP service selected on the main screen is provided without creating a separate logical screen for PiP service, that is, PiP screen. In the second mode, a separate logical screen for PiP service is created to provide the PiP service selected on the created PiP screen.
FIG. 10 illustrates a method of mapping only one service to a display screen for simplicity. However, a plurality of services may be mapped to a display screen with or without passing through a plurality of logical screens.
When a display screen is provided to the user in this manner, the user can perform a plurality of services.
FIG. 11 is a diagram illustrating a software architecture for providing multiple screens according to an exemplary embodiment of the present invention. Referring to FIG. 11 , a software architecture 1100 includes a device driver layer
1110, an application program interface (API) layer 1120, and an application layer 1130. The device driver layer 1110 receives service components from various multimedia content sources and decodes the received service components. Examples of the received service components include video information, audio information, and data information. The API layer 1120 reserves resources for a logical or display screen, which is to display a service, and produces the logical and display screens based on the reserved resources. In addition, the API layer 1120 maps a service, the logical screen, and the display screen to one another.
The application layer 1130 provides a user interface so that a user can dynamically configure a logical screen which displays a service or transmits a user command to the API layer 1120 so that the API layer 1120 can execute the user command.
The user enables the device driver layer 1110 with the aid of the application layer 1130 to provide a display screen via a physical display device or to store the display screen in a storage medium. In addition, the user can enable the device driver layer 1110 to transmit a display screen to an external device via a network.
For this, the device driver layer 1110 may include a plurality of output ports which can provide a display screen. Otherwise, API layer 1120 may include the plurality of output ports.
In order to dynamically configure a plurality of logical screens on a display screen, the API layer 1120 may include a plurality of software modules, e.g., a multiscreen manager module 'MultiScreenManager' 1210, a multiscreen context module 'MultiScreenContexf 1230, a multiscreen context listener module 'MultiScreenContextListener' 1250, and a multiscreen context event module 'MultiScreenContextEvenf 1240, as illustrated in FIG. 13. The multiscreen manager module 1210 manages the multiscreen context module
1230, searches for a desired screen, displays information specifying what devices are shared by screens, registers the multiscreen context listener module 1250, or cancels the registration of the screen context listener module 1250.
The multiscreen context module 1230 is an interface object associated with a screen object 1220 and determines whether the screen object 1220 is to become a logical screen or a display screen according to an interface operation performed by the multiscreen context module 1230. Various attributes such as the attributes 510 through 570 illustrated in FIGS. 6A and 6B may be set in the multiscreen context module 1230. The multiscreen context module 1230 can provide the functions 'SET', 'ADD', 'GET', and 'REMOVE' described above with reference to FIGS. 6A and 6B. When attribute information of the screen object 1220 is altered by the multiscreen context module 1230, the multiscreen context event module 1240 serves as an event class announcing that the attribute information of the screen object 1220 has been changed, and the multiscreen context listener module 1250 serves as a listener interface object which can be realized in a predetermined application class which attempts to receive an event prompted by the multiscreen context event module 1240.
An application 1260 is a module which is driven on the application layer 1130. The application 1260 allows the user to choose a desired service and to freely arrange a plurality of logical screens on a display screen.
In detail, the application 1260 transmits various commands which allow the user to dynamically configure and manage logical screens to the multiscreen manager module 1210, and the multiscreen manager module 1210 controls operations corresponding to the various commands to be executed through the multiscreen context module 1230.
The multiscreen context module 1230 is associated with the screen object 1220 and manages the attribute information of the screen object 1220 illustrated in FIGS. 6 A and 6B. In order to manage the attribute information of the screen object 1220, the multiscreen context module 1230 may include a variety of functions or methods.
The multiscreen manager module 1210 (not illustrated) receives service components provided by various service sources from the device driver layer 1110 and performs operations to display the received service components on a logical screen or a display screen.
FIG. 13 is a flowchart illustrating a method of displaying a plurality of services displayed on respective corresponding logical screens by the modules illustrated in FIG. 13 on a display screen according to an exemplary embodiment of the present invention.
Referring to FIG. 13, in operation S1305, resources for logical and display screens are reserved. A method of reserving and returning resources will be described in detail later with reference to FIGS. 14 through 17. Then, in operation S1310, the multiscreen manager module 1210 produces a display screen and a number of logical screens, which correspond to the number of services to be performed, based on the reserved resources.
In operation S 1320, the multiscreen manager module 1210 connects the logical screens to respective corresponding services received from the device driver layer 1110. The multiscreen manager module 1210 may call a method 'addServiceContexts' for each of the logical screens by setting service context objects of the received services as parameters for the logical screens services. The method 'addServiceContexts' connects a logical screen to a service and may be provided by the multiscreen context module 1230. In operation S 1330, once the logical screens are connected to the respective services, the multiscreen manager module 1210 connects the logical screens to the display screen. At this time, the multiscreen manager module 1210 may call a method 'setDisplayScreen' for each of the logical screens by setting a display screen object to which the logical screens are connected as a parameter. The method 'setDisplayScreen' connects a logical screen to a display screen and may be provided by the multiscreen context module 1230.
A method 'setDisplayScreensetDisplayScreen' may be set to 'public void setDisplayScreensetDisplayScreen(HScreen screen) throws SecurityException, Illegal StateException', and this method allows an instance 'HScreen' that is provided as a parameter to be associated with the current logical screen. In this case, the instance 'HScreen' is preferably a display screen.
A parameter of the method 'setDisplayScreen(HScreen screen)' may include a value of 'NULL'. In this case, when the method 'setDisplayScreen(HScreen screen)' is executed without exception handling, the current logical screen is no longer associated with the display screen.
The execution of the methods 'SecurityException' and 'IllegalStateException' may be conducted as an exceptional operation for the method 'setOutputScreen(HScreen screen)'.
The method 'IllegalStateException' may be executed when a current screen is a logical screen or when a portion of a display screen associated with a current logical screen cannot change due to the characteristics of a host platform. In operation S 1340, areas on the display screen to which the logical screens are to be respectively mapped are determined. At this time, a predetermined method provided by the multiscreen context module 1230 can be called to determine an area on the display screen where the logical screens are to be displayed. FIG. 14 is a diagram illustrating a configuration required to perform resource reservation according to an exemplary embodiment of the present invention.
Referring to FIG. 14, a resource client 1410, a resource server 1420, and a resource proxy 1430 are involved in resource reservation, and each of them may be understood as an interface object driven on the API layer 1120 illustrated in FIG. 11. The resource client 1410 is an interface object which is part of an application or a middleware component that actually uses resources, and the resource server 1420 is an interface object processing a resource request.
The resource proxy 1430 stores setting information of resources and executes a security policy of middleware. Hereinafter, the operation of each of the resource client 1410, the resource server
1420, and the resource proxy 1430 illustrated in FIG. 14 will be described in more detail with reference to FIGS. 15 through 17.
FIG. 15 is a flowchart illustrating a method of managing resources according to an exemplary embodiment of the present invention. Referring to FIG. 15, the resource client 1410 requests the resource server 1420 to reserve resources in operation S 1510. Then, in operation S 1520, the resource server 1420 connects the requested resources to the resource proxy 1430 in response to the request.
In operation S1530, the resource client 1410 uses the resources through the resource proxy 1430. Consequently, a corresponding application or middleware component can use the resources.
When the resources are no longer needed, an operation of releasing the resources is performed. That is, in operation Sl 550, the resource client 1410 informs the resource server 1420 that it has stopped using the resources. Then, in operation Sl 550, the resource server 1420 disconnects the resources from the resource proxy 1430 and updates a list of the remaining resources. FIG. 16 is a flowchart illustrating a method of reserving resources for a screen according to an exemplary embodiment of the present invention.
Referring to FIG. 16, in order to request resources for a screen, an application or a middleware component calls a method 'reserveScreen' of the multiscreencontext module 1230 illustrated in FIG. 12, that is, an interface object 'MultiScreenContext,' in operation S 1610. As the method 'reserveScreen' is called, the resource server 1420 connects the resources for the screen to the resource proxy 1430 in operation S 1620.
Then, if an event
'MultiScreenResourceEvent.MULTI_SCREEN_RESOURCE_SCREEN_RESERVED'. indicating that the resources for the screen have been allocated is generated in operation S 1630, the method 'reserveScreen' returns a 'TRUE' value in operation S 1640, thereby completing the reservation of the resources for the screen. In this case, 'MultScreenResourceEvent' may be understood as an interface object which is a group of events that may occur when resources for a screen are managed. In addition, 1MULTI SCREEN RESOURCE SCREEN-RESERVED' is a type of event and indicates that resources have been reserved.
Since resources for 'HBackgroundDevice,' 'HVideoDevice' and 'HgraphicsDevice,' which form a screen, can be set within the range of the reserved resources, they can be easily managed. FIG. 17 is a flowchart illustrating a method of returning resources for a screen according to an exemplary embodiment of the present invention.
Referring to FIG. 17, in order to return resources for a screen, an application or a middleware component calls a method 'releaseScreen' of the multiscreencontext module 1230 illustrated in FIG. 12, that is, the interface object 'MultiScreenContext,' in operation S 1710. As the method 'releaseScreen' is called, the resource server 1420 disconnects the resources, which are to be returned, from the resource proxy 1430 in operation S 1720.
Thereafter, if an event
'MultiScreenResourceEvent.MULTI_SCREEN_RESOURCE_SCREEN_RELEASED1_ indicating that the resources for the screen have been released is generated in operation Sl 730, the resources for the screen are returned. In this case, the method 'releaseScreen' does not additionally return a return value. 'MULTI SCREEN-RESOURCE SCREEN-RELEASED' is a type of event and indicate that resources have been released and returned.
Industrial Applicability According to the present invention, since resources are managed in units of logical screens or display screens, they can be managed more efficiently.
While the present invention has been particularly illustrated and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims. Therefore, it is to be understood that the above-described embodiments have been provided only in a descriptive sense and will not be construed as placing any limitation on the scope of the invention.

Claims

1. An apparatus for managing resources in a multiscreen environment, the apparatus comprising: a digital signal processing module receiving at least one of video information, audio information, and data information and restoring a plurality of services based on the at least one of the video information, the audio information and the data information; a service processing module reserving resources for a screen object, which is to display the restored services, and producing a display screen and a plurality of logical screens based on the reserved resources; and an output module mapping the plurality of logical screens provided by the service processing module to different locations on the display screen.
2. An apparatus for managing resources in a multiscreen environment, the apparatus comprising: a resource client requesting the reservation of resources for a screen object; and a resource server connecting the resources to a resource proxy in response to the request, wherein the resource client uses the reserved resources through the resource proxy.
3. The apparatus of claim 2, wherein the screen object comprises a logical screen object or a display screen object.
4. The apparatus of claim 2, wherein, if the resource client informs the resource server that it has stopped using the reserved resources, the resource server disconnects the reserved resources from the resource proxy and releases the reserved resources.
5. A method of managing resources in a multiscreen environment, the method comprising: (a) calling a method for requesting resources for a screen object;
(b) connecting the resources as the method is called;
(c) generating an event indicating that the resources have been reserved as the resources are connected; and (d) completing the reservation of the resources as the event is generated.
6. The method of claim 5, wherein the method is provided by an interface object for the screen object.
7. A method managing resources in a multiscreen environment, the method comprising:
(a) calling a method for releasing resources for a screen object;
(b) disconnecting the resources as the method is called;
(c) generating an event indicating that the resources have been released as the resources are disconnected; and
(d) completing the releasing of the resources as the event is generated.
8. The method of claim 7, wherein the method is provided by an interface object for the screen object.
PCT/KR2007/001640 2006-04-06 2007-04-04 Apparatus and method for managing resource in multiple screens environment WO2007114643A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA002648597A CA2648597A1 (en) 2006-04-06 2007-04-04 Apparatus and method for managing resource in multiple screens environment
MX2008012864A MX2008012864A (en) 2006-04-06 2007-04-04 Apparatus and method for managing resource in multiple screens environment.

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US78957706P 2006-04-06 2006-04-06
US60/789,577 2006-04-06
US81209006P 2006-06-09 2006-06-09
US60/812,090 2006-06-09
US87047106P 2006-12-18 2006-12-18
US60/870,471 2006-12-18
US91889407P 2007-03-20 2007-03-20
US60/918,894 2007-03-20
KR1020070031035A KR20070100118A (en) 2006-04-06 2007-03-29 Apparatus and method for managing resource in multiple screens environment
KR10-2007-0031035 2007-03-29

Publications (1)

Publication Number Publication Date
WO2007114643A1 true WO2007114643A1 (en) 2007-10-11

Family

ID=38563868

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2007/001640 WO2007114643A1 (en) 2006-04-06 2007-04-04 Apparatus and method for managing resource in multiple screens environment

Country Status (1)

Country Link
WO (1) WO2007114643A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111045622A (en) * 2019-11-21 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 Object-oriented display control interface model

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347624A (en) * 1987-03-05 1994-09-13 Hitachi, Ltd. Method and apparatus for display control
US20030028642A1 (en) * 2001-08-03 2003-02-06 International Business Machines Corporation Managing server resources for hosted applications
US6917362B2 (en) * 2002-01-25 2005-07-12 Hewlett-Packard Development Company, L.P. System and method for managing context data in a single logical screen graphics environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347624A (en) * 1987-03-05 1994-09-13 Hitachi, Ltd. Method and apparatus for display control
US20030028642A1 (en) * 2001-08-03 2003-02-06 International Business Machines Corporation Managing server resources for hosted applications
US6917362B2 (en) * 2002-01-25 2005-07-12 Hewlett-Packard Development Company, L.P. System and method for managing context data in a single logical screen graphics environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111045622A (en) * 2019-11-21 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 Object-oriented display control interface model

Similar Documents

Publication Publication Date Title
US8174617B2 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
US20080098402A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multi screens
US20080109725A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
US20080094510A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
US20080094511A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
CA2648597A1 (en) Apparatus and method for managing resource in multiple screens environment
EP1913770A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
US20080094512A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
US20080094415A1 (en) Method and apparatus for identifying application in multiscreen environment
WO2007114643A1 (en) Apparatus and method for managing resource in multiple screens environment
EP1911272A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
US20080094508A1 (en) Apparatus for providing mutliple screens and method of dynamically configuring
WO2007114669A1 (en) Apparatus and method for identifying an application in the multiple screens environment
CA2615881A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
WO2007114673A1 (en) Apparatus for providing multiple screens and method for dynamic configuration of the same
WO2007114658A1 (en) Apparatus for providing multiple screens and method for dynamic configuration of the same
EP1935174A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
WO2007114666A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
WO2007114660A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
WO2007114659A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens
WO2007018374A1 (en) Apparatus for providing multiple screens and method of dynamically configuring multiple screens

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07745803

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2648597

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: MX/a/2008/012864

Country of ref document: MX

Ref document number: 200780012094.2

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07745803

Country of ref document: EP

Kind code of ref document: A1