Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PROVISION OF EXPOSURE TIMES FOR A MULTI-EXPOSURE IMAGE
Document Type and Number:
WIPO Patent Application WO/2018/044631
Kind Code:
A1
Abstract:
According to one aspect, there is provided an apparatus comprising at least one processing unit and at least one memory. The at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to control a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times, and control a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

Inventors:
PETTERSSON, Gustaf (Microsoft Technology Licensing, LLCOne Microsoft Wa, Redmond Washington, 98052-6399, US)
BENCHEMSI, Karim (Microsoft Technology Licensing, LLCOne Microsoft Wa, Redmond Washington, 98052-6399, US)
Application Number:
US2017/048096
Publication Date:
March 08, 2018
Filing Date:
August 23, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MICROSOFT TECHNOLOGY LICENSING, LLC (One Microsoft Way, Redmond, Washington, 98052-6399, US)
International Classes:
H04N5/353; H04N5/235; H04N5/345; H04N5/355
Foreign References:
US20160248990A12016-08-25
US20140307141A12014-10-16
US20150201118A12015-07-16
US20080094486A12008-04-24
Other References:
None
Attorney, Agent or Firm:
MINHAS, Sandip S. et al. (Microsoft Technology Licensing, LLCOne Microsoft Wa, Redmond Washington, 98052-6399, US)
Download PDF:
Claims:
CLAIMS

1. An apparatus comprising:

at least one processing unit;

at least one memory;

wherein the at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to:

control a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times; and

control a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

2. An apparatus of claim 1, wherein the at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to: cause capture of a series of images with different exposure times with the second set of pixels;

analyze the series of images to determine light intensity of different areas of the scene; and

determine exposure times for the images to be captured for the multi-exposure image based on the analysis.

3. An apparatus of claim 2, wherein the at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to: determine based on the analysis whether flash is to be used in any of the images to be captured for the multi-exposure image.

4. An apparatus of claim 2 or 3, wherein the at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to:

detect a face in the series of images; and

limit the number of the images to be captured for the multi-exposure image in response to the detection.

5. An apparatus of any of claims 2 - 4, wherein the at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to:

adapt, based on the analysis, the number of images to be captured for the multi- exposure image.

6. An apparatus of any of claims 1 - 5, implemented as one of a mobile phone, a mobile device or a digital camera.

7. An apparatus of any of claims 1 - 6, wherein the image sensor supports interlaced exposure.

8. An apparatus comprising:

a camera comprising an image sensor configured to capture image data of a scene, the image sensor having at least two sets of pixels enabling different exposure times;

a viewfinder configured to display image data captured with the image sensor; and a controller configured to control a first set of pixels of the image sensor for exposure for the viewfinder and a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

9. An apparatus of claim 8, wherein the controller is configured to:

cause capture of a series of images with different exposure times with the second set of pixels;

analyze the series of images to determine light intensity of different areas of the scene; and

determine exposure times for the images to be captured for the multi-exposure image based on the analysis.

10. An apparatus of claim 9, wherein the controller is configured to:

determine based on the analysis whether flash is to be used in the images to be captured for the multi-exposure image.

11. An apparatus of claim 9 or 10, wherein the controller is configured to: adapt, based on the analysis, the number of images to be captured for the multi- exposure image.

12. An apparatus of any of claims 9 - 11, wherein the controller is configured to:

detect a face in the series of images; and

limit the number of the images to be captured for the multi-exposure image in response to the detection.

13. An apparatus of any of claims 8 - 12, implemented as one of a mobile phone, a mobile device or a digital camera.

14. An apparatus of any of claims 8 - 13, wherein the image sensor supports interlaced exposure.

15. A method comprising: controlling, by at least one processor, a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times; and

controlling, by the at least one processor, a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

Description:
PROVISION OF EXPOSURE TIMES FOR A MULTI-EXPOSURE IMAGE

BACKGROUND

[0001 ] In modern cameras, it is common to take multi-exposure images, for example, High Dynamic Range (HDR) images. To get optimal quality in such cases it is important to set the exposure times in a way that they make a large part of a scene as well exposed as possible in one or more of the images. Further, as image capturing locations and their circumstances are unique, this creates challenges for setting the exposure times correctly.

SUMMARY

[0002] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

[0003] In one embodiment, an apparatus is provided. The apparatus comprises at least one processing unit and at least one memory. The at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to control a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times, and to control a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

[0004] In another embodiment, an apparatus is provided. The apparatus comprises a camera comprising an image sensor configured to capture image data of a scene, the image sensor having at least two sets of pixels enabling different exposure times, a viewfinder configured to display image data captured with the image sensor, and a controller configured to control a first set of pixels of the image sensor for exposure for the viewfinder and a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

[0005] In another embodiment, a method is provided. The method comprises controlling, by at least one processor, a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times, and controlling, by the at least one processor, a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

[0006] Many of the attendant features will be more readily appreciated as they become better understood by reference to the following detailed description considered in connection with the accompanying drawings.

DESCRIPTION OF THE DRAWINGS

[0007] The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:

FIG. 1 is a system diagram depicting an apparatus including a variety of optional hardware and software components.

FIG. 2A illustrates pixels of an image sensor according to one embodiment.

FIG. 2B illustrates a block diagram for controlling an image sensor and a viewfinder display with a controller according to one embodiment.

FIG. 3 illustrates a flow diagram of a method for controlling an image sensor according to one embodiment.

FIG. 4 illustrates a flow diagram of a method for controlling an image sensor according to one embodiment.

Like reference numerals are used to designate like parts in the accompanying drawings. DETAILED DESCRIPTION

[0008] The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. However, the same or equivalent functions and sequences may be accomplished by different examples. Furthermore, as used in this application and in the claims, the singular forms "a," "an," and "the" include the plural forms unless the context clearly dictates otherwise. Additionally, the term "includes" means "comprises." Further, the term

"coupled" encompasses mechanical, electrical, magnetic, optical, as well as other practical ways of coupling or linking items together, and does not exclude the presence of intermediate elements between the coupled items.

[0009] In the following description, the term "multi-exposure image" refers to an image which constructs a single image from multiple images obtained using different exposure times. [001 0] When taking multi-exposure images, one possibility is to use the auto exposure from a viewfinder and to use preset longer and shorter exposures relative to a base image. This will not, however, provide optimal results in many cases. Another possibility is to vary the exposure time of the viewfinder stream. This, however, will cause the visible viewfinder stream to change brightness as different exposure times are set. Thus serious implications for the user experience are caused as the brightness of the viewfinder will change dramatically.

[001 1 ] In at least some embodiments a solution is provided where exposure times of a multi-exposure image are customized for each scene. Further, user experience is maintained as the separate set of pixels is used for exposure of a scene for a camera viewfinder and there are no significant changes in the brightness of the viewfinder.

Further, in at least some embodiments, the number of images needed to be taken for the multi-exposure image can be optimized.

[001 2] In at least some embodiments, a first set of pixels of an image sensor is controlled for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times. At the same time, a second set of pixels of the image sensor is controlled for exposure analysis of the scene for images to be captured for a multi-exposure image.

[001 3] FIG. 1 is a system diagram depicting an apparatus 100 including a variety of optional hardware and software components. Any components in the apparatus 100 can communicate with any other component, although not all connections are shown, for ease of illustration. The apparatus 100 can be any of a variety of computing devices (for example, a cell phone, a smartphone, a handheld computer, a tablet computer, a laptop computer, a personal computer, a Personal Digital Assistant (PDA), a digital camera etc.).

[001 4] The illustrated apparatus 100 can include a controller or processor 102

(e.g., signal processor, microprocessor, ASIC, or other control and processing logic circuitry) for performing such tasks as signal coding, data processing, input/output processing, power control, and/or other functions. An operating system 104 can control the allocation and usage of the components and support for one or more application programs 134. The application programs can include common mobile computing applications (e.g., email applications, calendars, contact managers, web browsers, messaging applications), or any other computing application. [001 5] The illustrated apparatus 100 can include a memory 106. The memory 106 can include non-removable memory 108 and/or removable memory 110. The nonremovable memory 108 can include RAM, ROM, flash memory, a hard disk, or other well-known memory storage technologies. The removable memory 110 can include flash memory or a Subscriber Identity Module (SIM) card, which is well known in mobile communication systems, or other well-known memory storage technologies, such as "smart cards". The memory 106 can be used for storing data and/or code for running the operating system 104 and the applications 134. If the apparatus 100 is a mobile phone or smart phone, the memory 106 can be used to store a subscriber identifier, such as an International Mobile Subscriber Identity (IMSI), and an equipment identifier, such as an International Mobile Equipment Identifier (IMEI). Such identifiers can be transmitted to a network server to identify users and equipment.

[001 6] The apparatus 100 can support one or more input devices 112, such as a touchscreen 114, microphone 116, camera 118 and/or physical keys or a keyboard 120 and one or more output devices 122, such as a speaker 124 and a display 126. Some devices can serve more than one input/output function. For example, the touchscreen 114 and the display 126 can be combined in a single input/output device. The input devices 112 can include a Natural User Interface (NUI). An NUI is any interface technology that enables a user to interact with a device in a "natural" manner, free from artificial constraints imposed by input devices such as mice, keyboards, remote controls, and the like.

Examples of NUI methods include those relying on speech recognition, touch and stylus recognition, gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, voice and speech, vision, touch, gestures, and machine intelligence. Other examples of a NUI include motion gesture detection using

accelerometers/gyroscopes, facial recognition, 3D displays, head, eye, and gaze tracking, immersive augmented reality and virtual reality systems, all of which provide a more natural interface, as well as technologies for sensing brain activity using electric field sensing electrodes (EEG and related methods). Thus, in one specific example, the operating system 104 or applications 134 can comprise speech-recognition software as part of a voice user interface that allows a user to operate the apparatus 100 via voice commands. Further, the apparatus 100 can comprise input devices and software that allows for user interaction via a user's spatial gestures, such as detecting and interpreting gestures to provide input to a gaming application. [001 7] A wireless modem 128 can be coupled to an antenna (not shown) and can support two-way communications between the processor 102 and external devices, as is well understood in the art. The modem 128 is shown generically and can include a cellular modem for communicating with the mobile communication network and/or other radio- based modems (e.g., Bluetooth or Wi-Fi). The wireless modem 128 is typically configured for communication with one or more cellular networks, such as a GSM network for data and voice communications within a single cellular network, a WCDMA (Wideband Code Division Multiple Access) network, an LTE (Long Term Evolution) network, a 4G LTE network, between cellular networks, or between the mobile apparatus and a public switched telephone network (PSTN) etc.

[001 8] The apparatus 100 can further include at least one input/output port 130 and/or a physical connector 132, which can be a USB port, a USB-C port, IEEE 1394 (FireWire) port, and/or RS-232 port. The illustrated components are not required or all- inclusive, as any components can be deleted and other components can be added.

[001 9] Any combination of the illustrated components disclosed in FIG. 1, for example, at least one of the processor 102 and the memory 106 may constitute means for controlling a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times, and means for controlling a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

[0020] FIG. 2A illustrates pixels of an image sensor 200 according to one embodiment. The image sensor 200 comprises pixels 202. Filled pixels 204 represent a first set of pixels and non-filled pixels 206 represent a second set of pixels. Although the first and second pixels sets 204, 206 are illustrated as odd and even rows, in another embodiment the first and second pixel sets 204, 206 may be arranged in a chessboard pattern where every other pixel belongs to the first pixel set 204 and every other to the second pixel set 206. The image sensor 200 is able to vary exposure time of the pixels 200 so that the first pixel set 204 is exposed using a first exposure time and the second pixel set 206 is exposed using a second exposure time. In one embodiment, the image sensor 200 is a sensor supporting an interlaced exposure. In one embodiment, in a sensor with a Bayer-filter, the two pixel sets are a pair of rows.

[0021 ] FIG. 2B illustrates a block diagram for controlling an image sensor 200 and a viewfinder display 210 with a controller 208 according to one embodiment. [0022] FIG. 3 illustrates a flow diagram of a method for controlling an image sensor according to one embodiment. The image sensor may be the image sensor 200 illustrated in FIG. 2 A and FIG. 2B.

[0023] At 300 the first set of pixels 204 of the image sensor 200 is controlled by the controller 208 for exposure of a scene for a camera viewfinder. Thus, the first set of pixels 204 is exposed as a regular camera viewfinder and shown on a viewfinder screen. An image stream of a scene to be photographed is displayed on the viewfinder display 210. As the first set of pixels is used for exposure of a scene only for a camera viewfinder, there are no significant changes in the brightness of the viewfinder.

[0024] At 302 the second set of pixels of the image sensor 200 is controlled by the controller 208 for exposure analysis of the scene for images to be captured for a multi- exposure image. Thus, the first and second sets of pixels 204, 206 are used simultaneously for different purposes. Thus, as the second set of pixels 206 is used for exposure analysis of the scene for images to be captured for a multi-exposure image, the viewfinder image is not affected as it is provided by the first set of pixels 204. The controller 208 may refer to at least one processor connected to at least one memory, and the at least one memory may store program instructions that, when executed by the at least one processor, cause the performance of the steps 300 and 302.

[0025] When separate sets of pixels are used for a camera viewfinder and for exposure analysis of a scene for images to be captured for a multi-exposure image, exposure times of the multi-exposure image are customized for each scene while maintaining user experience. Further, in some embodiments, this enables a solution where the number of images to be taken for the multi-exposure image varies depending on the scene.

[0026] Exposure analysis may refer to one or more analysis steps that enable determining exposure times for the images to be captured for the multi-exposure image. For example, the exposure analysis may analyze light intensity of different areas of the scene. Further, the exposure analysis may also determine how many images are needed for the multi-capture image. The exposure analysis may use various image processing routines.

[0027] FIG. 4 illustrates a flow diagram of a method for controlling an image sensor according to one embodiment. The image sensor may be the image sensor 200 illustrated in FIG. 2 A and FIG: 2B. [0028] At 400 the first set of pixels 204 of the image sensor 200 is controlled for exposure of a scene for a camera viewfinder. Thus, the first set of pixels 204 is exposed as a regular camera viewfinder and shown on a viewfinder screen. An image stream of a scene to be photographed is displayed on the viewfinder display.

[0029] At 402 a series of images with different exposure times is caused to be captured with the second set of pixels 206. The purpose of the second set of pixels 206 is to enable analyzation of the light in the scene.

[0030] At 404 the captured series of images is analyzed to determine light intensity of different areas of the scene. In other words, how well exposed different areas are in the scene.

[0031 ] At 406 the data from the analysis is used to determine exposure times for the images to be captured in order to produce the final multi-exposure image. If at 408 the end results of the analysis is that only a single image is needed (i.e. no multi-exposure image is needed), at 410 a single exposure time is used for a single image without multi- exposure. On the other hand, if at 408 the end result is that multiple exposure times are needed, at 412 it may be determined whether a flash is needed in any of the images. In some embodiments, it may be that some parts of the scene can be illuminated only using the flash. If no flash is needed, at 416 the determined exposure times are used for the images to be captured in order to produce the multi-exposure image. If flash is needed in at least one of the images, flash control information 414 is provided in order to

synchronize the flash with the exposure times.

[0032] Further, in one embodiment, an apparatus may comprise two separate image sensors, and the controller 208 is configured to control a first image sensor for exposure of a scene for a camera viewfinder. Simultaneously, the controller 208 is configured to control a second image sensor having at least two sets of pixels enabling different exposure times. The controller 208 is configured to control a first set and a second set of image pixels of the second image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image. When two separate image sensors are used, it is possible to use different exposure times with the first and second sets of pixels and thus to shorten the time needed for determining the final exposure times for the images to be captured for the multi-exposure image.

[0033] In some embodiments, when determining exposure times for the images to be captured in order to produce the final multi-exposure image, depending on the scene and based on the analysis, the number of images to be captured for the multi-exposure image may be adaptable. A more difficult scene in terms of lighting may require more images to be taken in order to produce the final multi-exposure image than a scene having a different type of lighting conditions. Further, in some embodiments, if a face or faces is detected in the scene, this may cause the analysis to keep the number of images to be captured low or lower than in a situation where there are no faces detected. This may be due to the fact that the face provides an indication that movement is probable in the images to be captured. Further, in some embodiments, movement may be detected based on the captured series of images, and information relating to the movement may be used in determining exposure times and/or the number of images to be captured for the multi- exposure image.

[0034] When separate sets of pixels are used for a camera viewfinder and for exposure analysis of a scene for images to be captured for a multi-exposure image, exposure times of the multi-exposure image are customized for each scene while maintaining user experience. Further, in some embodiments, this enables a solution where the number of images to be taken for the multi-exposure image varies depending on the scene.

[0035] According to another aspect, there is provided an apparatus comprising at least one processing unit and at least one memory. The at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to control a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times, and control a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

[0036] In an embodiment, the at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to cause capture of a series of images with different exposure times with the second set of pixels, analyze the series of images to determine light intensity of different areas of the scene, and determine exposure times for the images to be captured for the multi-exposure image based on the analysis.

[0037] In an embodiment, in any combination with any of the above embodiments, the at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to determine based on the analysis whether flash is to be used in any of the images to be captured for the multi-exposure image.

[0038] In an embodiment, in any combination with any of the above embodiments, the at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to detect a face in the series of images, and limit the number of the images to be captured for the multi-exposure image in response to the detection.

[0039] In an embodiment, in any combination with any of the above embodiments, the at least one memory stores program instructions that, when executed by the at least one processing unit, cause the apparatus to adapt, based on the analysis, the number of images to be captured for the multi-exposure image.

[0040] In an embodiment, in any combination with any of the above embodiments, the apparatus is implemented as one of a mobile phone, a mobile device or a digital camera.

[0041 ] In an embodiment, in any combination with any of the above embodiments, the image sensor supports interlaced exposure.

[0042] According to another aspect, there is provided an apparatus comprising a camera comprising an image sensor configured to capture image data of a scene, the image sensor having at least two sets of pixels enabling different exposure times, a viewfinder configured to display image data captured with the image sensor, and a controller configured to control a first set of pixels of the image sensor for exposure for the viewfinder and a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

[0043] In an embodiment, the controller configured to cause capture of a series of images with different exposure times with the second set of pixels, analyze the series of images to determine light intensity of different areas of the scene, and determine exposure times for the images to be captured for the multi-exposure image based on the analysis.

[0044] In an embodiment, in any combination with any of the above embodiments, the controller is configured to determine based on the analysis whether flash is to be used in the images to be captured for the multi-exposure image.

[0045] In an embodiment, in any combination with any of the above embodiments, the controller is configured to adapt, based on the analysis, the number of images to be captured for the multi-exposure image. [0046] In an embodiment, in any combination with any of the above embodiments, the controller is configured to detect a face in the series of images, and limit the number of the images to be captured for the multi-exposure image in response to the detection.

[0047] In an embodiment, in any combination with any of the above embodiments, the apparatus is implemented as one of a mobile phone, a mobile device or a digital camera.

[0048] In an embodiment, in any combination with any of the above embodiments, the image sensor supports interlaced exposure.

[0049] According to another aspect, there is provided a method comprising controlling, by at least one processor, a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times, and controlling, by the at least one processor, a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

[0050] In an embodiment, the method further comprises causing, by the at least one processor, capture of a series of images with different exposure times with the second set of pixels, analyzing, by the at least one processor, the series of images to determine light intensity of different areas of the scene, and determining, by the at least one processor, exposure times for the images to be captured for the multi-exposure image based on the analysis.

[0051 ] In an embodiment, in any combination with any of the above embodiments, the method further comprises determining, by the at least one processor, based on the analysis whether flash is to be used in any of the images to be captured for the multi- exposure image.

[0052] In an embodiment, in any combination with any of the above embodiments, the method further comprises adapting, by the at least one processor, based on the analysis the number of images to be captured for the multi-exposure image.

[0053] In an embodiment, in any combination with any of the above embodiments, the method further comprises detecting, by the at least one processor, a face in the series of images, and limiting, by the at least one processor, the number of the images to be captured for the multi-exposure image in response to the detection.

[0054] In an embodiment, in any combination with any of the above embodiments, the image sensor supports interlaced exposure. [0055] According to another aspect, there is provided a computer program comprising program code, which when executed by at least one processor, causes an apparatus to control a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times, and control a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

[0056] According to another aspect, there is provided a computer-readable medium comprising a computer program comprising program code, which when executed by at least one processor, causes an apparatus to control a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times, and control a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi- exposure image.

[0057] According to another aspect, there is provided an apparatus comprising means for controlling a first set of pixels of an image sensor for exposure of a scene for a camera viewfinder, the image sensor having at least two sets of pixels enabling different exposure times, and means for controlling a second set of pixels of the image sensor for exposure analysis of the scene for images to be captured for a multi-exposure image.

[0058] Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), Graphics Processing Units (GPUs).

[0059] The functions described herein performed by a controller or a processor may be performed by software in machine readable form on a tangible storage medium e.g. in the form of a computer program comprising computer program code means adapted to perform all the steps of any of the methods described herein when the program is run on a computer and where the computer program may be embodied on a computer readable medium. Examples of tangible storage media include disks, thumb drives, memory etc. and do not include propagated signals. The software can be suitable for execution on a parallel processor or a serial processor such that the method steps may be carried out in any suitable order, or simultaneously.

[0060] Although the subject matter may have been described in language specific to structural features and/or acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as examples of implementing the claims and other equivalent features and acts are intended to be within the scope of the claims.

[0061 ] It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. The embodiments are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages.

[0062] Aspects of any of the examples described above may be combined with aspects of any of the other examples described to form further examples without losing the effect sought.

[0063] The term 'comprising' is used herein to mean including the method blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.

[0064] It will be understood that the above description is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments. Although various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this specification. In particular, the individual features, elements, or parts described in the context of one example, may be connected in any combination to any other example also.