Patent ID: 12229983

DETAILED DESCRIPTION

Embodiments herein may be implemented in one or more image-processing devices. In some embodiments herein the one or more image-processing devices may comprise or be one or more image-capturing devices such as a digital camera.FIG.1depicts various exemplifying image-capturing devices110. The image-capturing device110may e.g., be or comprise any of a camcorder, a network video recorder, a camera, a video camera120such as a surveillance camera or a monitoring camera, a digital camera, a wireless communication device130, such as a smartphone, including an image sensor, or a car140including an image sensor.

FIG.2adepicts an exemplifying video network system250in which embodiments herein may be implemented. The video network system250may include an image-capturing device, such as the video camera120, which can capture and perform image processing on a digital image201, such as a digital video image. A video server260inFIG.2amay obtain the image, for example from the video camera120over a network or the like, which is indicated inFIG.2awith the double-pointing arrows.

The video server260is a computer-based device that is dedicated to delivering video. Video servers are used in a number of applications, and often have additional functions and capabilities that address the needs of particular applications. For example, video servers used in security, surveillance and inspection applications typically are designed to capture video from one or more cameras and deliver the video via a computer network. In video production and broadcast applications, a video server may have the ability to record and play recorded video, and to deliver many video streams simultaneously. Today, many video server functions may be built-in in the video camera120.

However, inFIG.2a, the video server260is connected over the video network system250, to the image-capturing device, here exemplified by the video camera120. The video server260may further be connected to a video storage270for storage of video images, and/or connected to a monitor280for display of video images. In some embodiments the video camera120is connected directly with the video storage270and/or the monitor280, as indicated by the direct arrows between these devices inFIG.2a. In some other embodiments the video camera120is connected to the video storage270and/or the monitor280via the video server260, as indicated by the arrows between the video server260and the other devices.

FIG.2bdepicts a user device295connected to the video camera120via the video network system250. The user device295may for example be a computer or a mobile phone. The user device295may e.g., control the video camera120and/or display video emanating from the video camera120. The user device295may further include both the functionality of the monitor280and the video storage270.

In order to better understand embodiments herein an imaging system will first be described.

FIG.3is a schematic view of an imaging system300, in this case of a digital video camera, such as the video camera120. The imaging system images a scene on an image sensor301. The image sensor301may be provided with a Bayer filter, such that different pixels will receive radiation of a particular wavelength region, in a known pattern. Typically, each pixel of the captured image is represented by one or more values representing the intensity of the captured light within a certain wavelength band. These values are usually referred to as colour components, or colour channels. The term “image” may refer to an image frame or video frame including information originating from an image sensor that has captured the image.

After having read the signal of individual sensor pixels of the image sensors301, different image processing actions may be performed by an image signal processor302. The image signal processor302may comprise an image processing part302a, sometimes referred to as an image processing pipeline, and a video post-processing part302b.

Typically for video processing the images are comprised in a stream of images.FIG.3illustrates a first video stream310from the image sensor301. The first image stream310may comprise multiple captured image frames, such as a first captured image frame311and a second captured image frame312.

Image processing may comprise demosaicing, color correction, noise filtering (for eliminating spatial and/or temporal noise), distortion correction (for eliminating effects of, e.g., barrel distortion), global and/or local tone mapping (e.g., enabling imaging of scenes containing a wide range of intensities), transformation (e.g., rectification and rotation), flat-field correction (e.g., for removal of the effects of vignetting), application of overlays (e.g., privacy masks, explanatory text), etc. The image signal processor302may also be associated with an analytics engine performing object detection, recognition, alarms, etc.

The image processing part302amay e.g. perform image stabilization, apply noise filtering, distortion correction, global and/or local tone mapping, transformation, and flat-field correction. The video post-processing part302bmay for example crop parts of an image, apply overlays, and comprise the analytics engine.

Following the image signal processor302the image may be forwarded to an encoder303, wherein the information in the image frames is coded according to an encoding protocol, such as H.264. The encoded image frames are then forwarded to for example a receiving client, exemplified here with the monitor280, to the video server260, the storage270, etc.

The video coding process produces a number of values that may be encoded to form a compressed bit stream. These values may include:quantized transform coefficients,information to enable the decoder to re-create a prediction,information about a structure of the compressed data and compression tools used during encoding, andinformation about the complete video sequence.

These values and parameters (syntax elements) are converted into binary codes using for example variable length coding and/or arithmetic coding. Each of these encoding methods produces an efficient, compact binary representation of the information, also referred to as an encoded bit stream. The encoded bit stream may then be stored and/or transmitted.

In a camera system with multiple cameras, embodiments herein propose to use detection information from surrounding cameras to enhance a masking quality in a camera. For example, the masking quality may be enhanced by an increased probability of detecting objects of a specific object type even though the objects are partly occluded in one of the cameras while still having a low number of objects that are detected falsely as the object type to be detected, i.e., a low number of false positive detections.

The detection information may comprise a detection score or a detection probability. Different cameras may have different pre-conditions to detect people due to camera resolution, installation positions of different cameras, and their processing power, which is turn impacts characteristics of a video network that is used together with the cameras. An example of these characteristics is a size of the image that is inputted to the video network. One person that is slightly occluded in one camera's image frames may be fully visible in another camera's image frames. One person that has a too low pixel density to be detected in one camera may be detectable in another camera where the pixel density of the person is higher.The camera system may need to figure out a spatial overlap between cameras. For example, the camera system may be presented with or determine an overlap of the areas captured by the cameras that are to share detection information. This may be done via known methods of scene segmentation, using information of geolocation, pan and tilt angle, zoom, field of view and installation height.An image-processing device, such as a camera, gathers detection scores from surrounding cameras on objects in an area which is captured by two or more cameras. The area may be referred to as a spatially overlapped area.The image-processing device adjusts the detection score accordingly based on the detection score from at least one the other cameras.The image-processing device may apply privacy masks to detected objects based on the adjusted detection score. This will be explained in more detail below, for example in relation to action503ofFIG.5.

Exemplifying embodiments herein will now be described with reference toFIGS.4a,4b,4c,4dand5and with further reference toFIGS.1,2a,2band3.

FIG.4aillustrates a scene including an object, such as a person, occluded by another object, such as a wall, and a multi-camera system400. The multi-camera system400comprises at least a first camera401and a second camera402. The first camera401and the second camera402may be video cameras. The multi-camera system400may also comprise a video server460. The first camera401and the second camera402may capture the object from different angles.

In a scenario wherein embodiments may be implemented, the first camera401may capture a large part of the whole person, while the second camera402only captures a lesser part of the person, such as a head and an arm of the person. Each of the first and second cameras401,402may assign a detection score, e.g., a probability value indicating that the detected object belongs to an object type, such as humans.

FIG.4billustrates a first stream of image frames421captured by the first camera401of the multi-camera system400and a second stream of image frames422captured by the second camera402of the camera system400. The second camera402is different from the first camera401. The first stream of image frames421comprises an image frame421_2capturing a first object431. The first object431may comprise a first part431a. The second stream of image frames422comprises an image frame422_2capturing a second object432. The second object432may comprise a second part432a. In a scenario herein, the first object431may correspond to the second object432in that it is the same real object that has been captured. Also, the first part431amay correspond to the second part432a.

FIG.5illustrates a flowchart describing a method for determining a probability value indicating a probability that an object captured in a stream of image frames422belongs to an object type, such as a specific object type. For example, the object type may be humans or animals. In other words, the method may be for determining the probability of the object belonging to the object type.

The method may be performed in the camera system400and may more specifically be for masking or counting an object captured in a stream of image frames. The masking or counting of the object may be performed when the probability value indicating that an object captured in a stream of image frames422belongs to an object type is above a threshold value for masking the object or a threshold value for counting the object. The threshold value for masking the object and the threshold value for counting the object may be different.

In particular, the embodiments may be performed by an image-processing device of the multi-camera system400. The image-processing device may be any of the first camera401and the second camera402or the video-server460. The first camera401and the second camera402may each be a video camera, such as a surveillance camera.

The below actions may be taken in any suitable order, e.g., in another order than the order presented below.

Action501

The method comprises detecting the first object431or the first part431aof the first object431in a first area441of a scene captured in the first stream of image frames421captured by the first camera401of the multi-camera system400.

Action502

The method further comprises determining, based on characteristics of the first object431or of the first part431aof the first object431, a first probability value indicating a first probability that the detected first object431or first part431abelongs to the object type, such as humans. In other words, the method comprises determining the first probability of the first object belonging to the object type.

For example, the determining may be performed by weighting probability values for several parts of the first object431. A respective probability value indicating a respective probability that the detected part431aof the first object431belongs to an object part type may be determined based on characteristics of the detected part431aof the first object431.

Action503

When the first probability value is above a first threshold value it may be determined that the detected first object431or first part431abelongs to the object type, such as humans. Further, when the first probability value is above the first threshold value, some further action may be performed: For example, a privacy mask, such as a masking filter or a masking overlay, may be applied to the first object431or to at least a part of the first object431, such as the first part431aof the first object431, in the first stream of image frames421in order to mask out, e.g. conceal, the first object431or the at least part of the first object431, such as the first part431aof the first object431, in the first stream of image frames421. In particular, the privacy mask may be obtained by masking out an area in each image frame and may comprise: color masking, which may also be referred to solid color masking or monochrome masking, mosaic masking, also referred to as pixelation, pixelated privacy masking or transparent pixelated, Gaussian blur, Sobel filter, background model masking by applying the background as mask (the object looks transparent), Chameleon mask (a mask that changes colour dependent on the background). In a detailed example, a color mask may be obtained by ignoring the image data and using another pixel value instead for a pixel to be masked. For example, the other pixel value may correspond to a specific color such as red or grey.

In another embodiment the object may be counted as specific pre-defined object when the first probability value is above the first threshold value. Thus, the first threshold value may be a masking threshold value, a counting threshold value or another threshold value associated with some other function to be performed on the object as a consequence of the first probability value being above the first threshold value.

Action504

The method further comprises detecting the second object432or the second part432aof the second object432in a second area442of the scene captured in the second stream of image frames422by the second camera402of the camera system400. The second camera402is different from the first camera401. The second area442at least partly overlaps the first area441.

Action505

The method further comprises determining, based on characteristics of the second object432or of the second part432aof the second object432, a second probability value indicating a second probability that the detected second object432or the second part432abelongs to the object type. In other words, the method comprises determining the second probability of the second object belonging to the object type.

When the second probability value is above a second threshold value it may be determined that the detected second object432or second part432abelongs to the object type, such as humans. In other words, the detected second object432or second part432amay be detected as a human or belonging to a human.

When the second probability value is below the second threshold value it may be determined that the second object432does not belong to the object type. However, in embodiments herein the method continues to evaluate whether the second object432belongs to the object type also when the second probability value is below the second threshold value by taking into account the first probability value from the first camera401.

Action506

A yet further condition for continued evaluation of the detection of the second object432based on the first probability value may be a determination of co-location of the first object431and the second object432to make sure that the first object431is the same object as the second object432and thus that it is appropriate to take into account the first probability value when evaluating detection of the second object432.

Thus, the method may further comprise determining that the second object432or the second part432aof the second object432and the first object431or the first part431aof the first object431are co-located in an overlapping area of the second area442and the first area441.

In other words, the method may further comprise determining that the first and second objects431,432are the same object.

For example, it may be determined that the second object432and the first object431are co-located. For example, it may be determined that a first person in the first stream of image frames421is co-located with a second person in the second stream of image frames422. Based on the determination of the co-location it may be determined that the first person is the same person as the second person. For example, if it is determined that the first object431is a person with 90% probability and it is further determined that the second object432is a person with 70% probability and there are no other objects detected in the image frames, then it may be determined that it is probable that the person is the same person.

In other words, it may be determined that the first and second objects431,432are linked, for example by determining that motion track entries associated with the first and second objects431,432are linked (i.e., determined to belong to one real-world object) given a matching level based on a set of constraints. The track-entries may be created based on received first and second image series and determined first and second characterizing feature sets and movement data.

In another example, it may be determined that the second object432is co-located with the first part431aof the first object431.

In another example, it may be determined that the second part432aof the second object432is co-located with the first object431.

In another example, it may be determined that the second part432aof the second object432is co-located with the first part of the first object431. For example, it may be determined that a head of the first object is co-located with a head of the second object. This method may be applied to other parts such as arms, torsos, and legs as well.

Action506may be performed after or before action507.

Action507

When the second probability value is below a second threshold value and the first probability value is above the first threshold value the method comprises determining an updated second probability value by increasing the second probability value.

The second threshold value may also be a masking threshold value, a counting threshold value or another threshold value associated with some other function to be performed on the second object432or on the second part432aas a consequence of the second probability value being above the second threshold value.

The second threshold value and the first threshold value may be different. However, in some embodiments herein they are the same.FIG.4cillustrates a simple example of how the second probability value may be increased from below the second threshold value to above the second threshold value when the first and second threshold values are the same and the first probability value is above the first threshold.

In some embodiments herein the first threshold value is 90%, while the second threshold value is 70%. The second threshold value may be lower than the first threshold value. This may for example be an advantage when the second object432is partly occluded by some other object, such as a wall.

In a scenario, the first camera401determines the first probability value to be 95% for the first object to be a human. The second camera402determines the second probability value to be 68% for the second object to be a human. Then the second probability value may be increased, e.g., with 5 or 10%. The increase may be a fixed value as long as the first probability value is above the first threshold value. However, in some embodiments herein the increasing of the second probability value is based on the first probability value. For example, the increase of the second probability value may be proportional against the first probability value. In some embodiments herein the increase of the second probability value is 5% when the first probability value is 60% and the increase of the second probability value is 10% when the first probability value is 70% and the increase of the second probability value is 15% when the first probability value is 80%.

The increasing of the second probability value based on the first probability value may comprise: determining a difference between the first probability value and the first threshold value and increasing the second probability value based on the difference. For example, if the difference between the first probability value and the first threshold value is 5% then the second probability value may be increased by 10%. In another example, if the difference between the first probability value and the first threshold value is 10% then the second probability value may be increased by 20%.

In some other embodiments the increasing of the second probability value based on the first probability values comprises increasing the second probability value with the difference. For example, if the difference between the first probability value and the first threshold value is 5% then the second probability value may be increased by 5%. In another example, if the first probability value is 95% and a common threshold value, such as a common masking threshold value, is 80%, the difference is 15%, and thus the second probability value of e.g. 67% may be increased by 15% resulting in 82% which is above the common threshold value of 80%. Consequently, the second object may also be masked or counted.

In some embodiments herein the updated second probability value is determined in response to determining that the second object432or part432aof the second object432and the first object431or part431aof the first object431are co-located in the overlapping area according to action506above.

In some embodiments herein the respective first and second threshold value is specific for the type of object or object part. For example, the respective first and second threshold value may be specific for different object types or for different object part types, such as head, arm, torso, leg etc. or both. Since it is likely more important to mask a face than an arm, a masking threshold value for the face may be lower than another masking threshold value for the arm. For example, the masking threshold value for heads may be 70% while the masking threshold value for arms may be 90% and the threshold value for torsos may be 80%.

A further condition for determining the updated second probability value by increasing the second probability value may be that the second probability value in addition to being below the second threshold value is above a third threshold value. Thus, it may be an additional condition that the second probability value is above the lower third threshold value. A reason for why it may be an advantage that the second probability value is above the lower third threshold value is that if the second probability value is below the third threshold value, e.g., below 20%, the object detector is quite confident in that the object is not an object that should be masked, e.g., not a human. However, if the second probability value is between 20% and 80% the object may be an occluded person and therefore it's probability value may be increased if another camera is more confident in the detection of the object as an object that is to be masked.

In some embodiments herein a second object part type of the second part432ais the same object part type as a first object part type of the first part431a. For example, the method may compare a first face with a second face and a first leg with a second leg etc.

It may be an advantage to only increase the second probability value when the difference between the first probability value and the first threshold value is above a fourth threshold value, e.g., when the difference is above 10%. In this way the number of false positives may be controlled. For example, with a larger threshold value difference the number of false positives may be lower.

For example, in a scenario the first threshold value is 70%, the second threshold value is 90% and the fourth threshold value is 75%. A first probability value of 72% is large enough for detecting the first object as a human in the first stream of image frames421but it may be considered too low for increasing the second probability value.

Action508

In some embodiments herein further actions may be performed in response to the updated second probability value being above the second threshold value and in response to determining that the second object belongs to a certain object type. For example, when the object type is an object type to be masked out then the first and second threshold values may be for masking objects or parts of objects of the object type to be masked out. Then the method further comprises: when the updated second probability value is above the second threshold value, applying a privacy mask to at least a part of the second object432, such as the second part432a, in the second stream of image frames422to mask out that part. For example, if the face of a human is captured in both the first and second camera401,402and a face score is updated for the second camera402this may lead to privacy masking of the face in the second stream of images422. Thus, the method may further comprise anonymising an unidentified person by removal of identifying features, e.g., by any of the methods mentioned above in action503.

In some other embodiments the object type is an object type to be counted. Then the first and second threshold values may be for counting objects or parts of objects of the object type to be counted. Then the method further comprises: when the updated second probability value is above the second threshold value, increasing a counter value associated with the second stream of image frames422. For example, the counter value may be for the object or the object part.

FIG.4dillustrates a scenario in which a scene comprises a first human451and a second human452and a third object453between the two humans451,452. A shape of the third object453resembles a shape of a body part of the humans451,452. The third object may for example be a balloon which resembles a head. In an example, the second camera402captures the three objects451,452,453and the method ofFIG.5may be used for each of the three objects451,452,453. Thus, each of the three objects451,452,453inFIG.4dmay be the second object432in the second stream of image frames422. Correspondingly, each of the three objects inFIG.4dmay be the first object431in the first stream of image frames421.

The method may be performed by the second camera or by the video server460, or even by the first camera401.

The method may then comprise determining the second probability value. The second probability value may be 69%, 70% and 80% respectively for the first human451(left), the third object453(balloon) and the second human452(right). In a scenario the second threshold value for detecting and masking a human is 80%. This means that without the method ofFIG.5only the second human452will be masked. If a general decrease of the second threshold value is performed by 10% the third object453will be masked but not the first human451. However, if the first probability value derived from the first stream of image frames421is above the first threshold value and the second probability value is below the second threshold value for a respective first object431, such as the first human451and the second human452, then the second probability value is increased. Thus, if the first human451is detected in the first stream of image frames421from the first camera401with the first probability value being 90% and indicating that the detected first human451belongs to the human type, then the second probability value is increased, e.g., by 15%. The updated second probability value will then be 84% which is above the second threshold value and the first human451will be masked. The first probability value of the third object453indicating the probability of the detected third object453belonging to a human object type will be low, e.g. 18%. This means that since the first probability value of the third object453is below the first threshold value the second probability value will not be increased. Thus, the third object453will not be masked in any of the stream of images from the first and second cameras401,402.

With reference toFIG.6, a schematic block diagram of embodiments of an image-processing device600is shown. As mentioned above, the image-processing device600is configured for determining the probability value indicating that the object captured in a stream of image frames belongs to an object type. Further, the image-processing device600may be part of the multi-camera system400.

As mentioned above, the image-processing device600may comprise or be any of a camera, such as a surveillance camera, a monitoring camera, a camcorder, a network video recorder, and the wireless communication device130. In particular, the image-processing device600may be the first camera401or the second camera402, such as a surveillance camera, or the video-server460which may be part of the multi-camera system400. The method for determining the probability value indicating that the object captured in the stream of image frames belongs to the object type may also be performed in a distributed manner in several image-processing devices, such as in the first camera401and the second camera402. For example, actions501-503may be performed by the first camera401, while actions504-508may be performed by the second camera402.

The image-processing device600may further comprise a processing module601, such as a means for performing the methods described herein. The means may be embodied in the form of one or more hardware modules and/or one or more software modules.

The image-processing device600may further comprise a memory602. The memory may comprise, such as contain or store, instructions, e.g. in the form of a computer program603, which may comprise computer readable code units which when executed on the image-processing device600causes the image-processing device600to perform the method of determining the probability value indicating that the object captured in the stream of image frames belongs to the object type. The image-processing device600may comprise a computer and then the computer readable code units may be executed on the computer and cause the computer to perform the method of determining the probability value indicating that the object captured in the stream of image frames belongs to the object type.

According to some embodiments herein, the image-processing device600and/or the processing module601comprises a processing circuit604as an exemplifying hardware module, which may comprise one or more processors. Accordingly, the processing module601may be embodied in the form of, or ‘realized by’, the processing circuit604. The instructions may be executable by the processing circuit604, whereby the image-processing device600is operative to perform the methods ofFIG.5as described above. As another example, the instructions, when executed by the image-processing device600and/or the processing circuit604, may cause the image-processing device600to perform the methods according toFIG.5.

In view of the above, in one example, there is provided an image-processing device600for determining the probability value indicating that the object captured in a stream of image frames belongs to an object type.

Again, the memory602contains the instructions executable by said processing circuit604whereby the image-processing device600is operative for performing the method according toFIG.5.

FIG.6further illustrates a carrier605, or program carrier, which comprises the computer program603as described directly above. The carrier605may be one of an electronic signal, an optical signal, a radio signal and a computer readable medium.

In some embodiments, the image-processing device600and/or the processing module601may comprise one or more of a detecting module610, a determining module620, a masking module630, and a counting module640, as exemplifying hardware modules. In other examples, one or more of the aforementioned exemplifying hardware modules may be implemented as one or more software modules.

Moreover, the processing module601may comprise an Input/Output unit606. According to an embodiment, the Input/Output unit606may comprise an image sensor configured for capturing the raw image frames described above such as the raw image frames comprised in the video stream310from the image sensor301.

According to the various embodiments described above, the image-processing device600and/or the processing module601and/or the detection module610is configured to receive the captured image frames311,312of the image stream310from the image sensor301of the image-processing device600.

The image-processing device600and/or the processing module601and/or the detecting module610is configured to detect the first object431or the first part431aof the first object431in the first area441of the scene captured in the first stream of image frames421captured by the first camera401of the multi-camera system400.

The image-processing device600and/or the processing module601and/or the determining module620is further configured to determine, based on characteristics of the first object431or of the first part431aof the first object431, the first probability value indicating the first probability that the detected first object431or first part431abelongs to the object type.

The image-processing device600and/or the processing module601and/or the detecting module610is further configured to detect the second object432or the second part432aof the second object432in the second area442of the scene captured in the second stream of image frames422by the second camera402of the camera system400. The second camera402is different from the first camera401. The second area442at least partly overlaps the first area441.

The image-processing device600and/or the processing module601and/or the determining module620is further configured to determine, based on characteristics of the second object432or of the second part432aof the second object432, the second probability value indicating the second probability that the detected second object432or the second part432abelongs to the object type.

The image-processing device600and/or the processing module601and/or the detecting module610is further configured to when the second probability value is below the second threshold value and the first probability value is above the first threshold value determine an updated second probability value by increasing the second probability value.

The image-processing device600and/or the processing module601and/or the determining module620may be further configured to increase the second probability value based on the first probability value.

The image-processing device600and/or the processing module601and/or the determining module620may be further configured to increase the second probability value based on the first probability value by determining the difference between the first probability value and the first threshold value and increasing the second probability value based on the difference.

The image-processing device600and/or the processing module601and/or the masking module630may further be configured to apply the privacy mask to the at least part of the second object432in the second stream of image frames422when the updated second probability value is above the second threshold value.

The image-processing device600and/or the processing module601and/or the counting module640may further be configured to increase the counter value associated with the second stream of image frames422when the updated second probability value is above the second threshold value.

The image-processing device600and/or the processing module601and/or the determining module620may be further configured to increase the second probability value when the second probability value in addition to being below the second threshold value is above the third threshold value.

The image-processing device600and/or the processing module601and/or the determining module620may be further configured to determine that the second object432or the second part432aof the second object and the first object431or the first part431aof the first object431are co-located in the overlapping area of the second area442and the first area441and determine the updated second probability value in response to determining that the second object432or the second part432aof the second object432and the first object431or the first part431aof the first object431are co-located in the overlapping area.

As used herein, the term “module” may refer to one or more functional modules, each of which may be implemented as one or more hardware modules and/or one or more software modules and/or a combined software/hardware module. In some examples, the module may represent a functional unit realized as software and/or hardware.

As used herein, the term “computer program carrier”, “program carrier”, or “carrier”, may refer to one of an electronic signal, an optical signal, a radio signal, and a computer readable medium. In some examples, the computer program carrier may exclude transitory, propagating signals, such as the electronic, optical and/or radio signal. Thus, in these examples, the computer program carrier may be a non-transitory carrier, such as a non-transitory computer readable medium.

As used herein, the term “processing module” may include one or more hardware modules, one or more software modules or a combination thereof. Any such module, be it a hardware, software or a combined hardware-software module, may be a connecting means, providing means, configuring means, responding means, disabling means or the like as disclosed herein. As an example, the expression “means” may be a module corresponding to the modules listed above in conjunction with the figures.

As used herein, the term “software module” may refer to a software application, a Dynamic Link Library (DLL), a software component, a software object, an object according to Component Object Model (COM), a software component, a software function, a software engine, an executable binary software file or the like.

The terms “processing module” or “processing circuit” may herein encompass a processing unit, comprising e.g. one or more processors, an Application Specific integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA) or the like. The processing circuit or the like may comprise one or more processor kernels.

As used herein, the expression “configured to/for” may mean that a processing circuit is configured to, such as adapted to or operative to, by means of software configuration and/or hardware configuration, perform one or more of the actions described herein.

As used herein, the term “action” may refer to an action, a step, an operation, a response, a reaction, an activity or the like. It shall be noted that an action herein may be split into two or more sub-actions as applicable. Moreover, also as applicable, it shall be noted that two or more of the actions described herein may be merged into a single action.

As used herein, the term “memory” may refer to a hard disk, a magnetic storage medium, a portable computer diskette or disc, flash memory, Random Access Memory (RAM) or the like. Furthermore, the term “memory” may refer to an internal register memory of a processor or the like.

As used herein, the term “computer readable medium” may be a Universal Serial Bus (USB) memory, a DVD-disc, a Blu-ray disc, a software module that is received as a stream of data, a Flash memory, a hard drive, a memory card, such as a MemoryStick, a Multimedia Card (MMC), Secure Digital (SD) card, etc. One or more of the aforementioned examples of computer readable medium may be provided as one or more computer program products.

As used herein, the term “computer readable code units” may be text of a computer program, parts of or an entire binary file representing a computer program in a compiled format or anything there between.

As used herein, the terms “number” and/or “value” may be any kind of number, such as binary, real, imaginary or rational number or the like. Moreover, “number” and/or “value” may be one or more characters, such as a letter or a string of letters. “Number” and/or “value” may also be represented by a string of bits, i.e. zeros and/or ones.

As used herein, the expression “in some embodiments” has been used to indicate that the features of the embodiment described may be combined with any other embodiment disclosed herein.

Even though embodiments of the various aspects have been described, many different alterations, modifications and the like thereof will become apparent for those skilled in the art. The described embodiments are therefore not intended to limit the scope of the present disclosure.