Field of the Invention
[0001] The invention relates to methods and apparatuses for temporally synchronizing the input video bit stream of a video decoder with the processed video sequence decoded by the video decoder.
Background of the Invention
[0002] The proliferation of video communication applications over the last years has necessitated the development of robust video quality measures to assess the Quality of Experience (QoE), defined as the service quality perceived by the user. The assessment of video quality is a critical aspect for the efficient designing, planning, and monitoring of services by the content providers.
[0003] Nowadays, hybrid video quality assessment models/systems use a combination of packet information, bit stream information and the decoded reconstructed image. In general, in a hybrid video quality assessment algorithm the features extracted or calculated from the bit stream (e.g., motion vectors, macroblock types, transform coefficients, quantization parameters, etc.), and the information extracted by packet headers (e.g., bit rate, packet loss, delay, etc.) are combined with the features extracted from the output reconstructed images in the pixel domain. However, if the former features do not temporally correspond to the latter due to loss of temporal alignments, then the evaluation of quality would not be accurate. Thus, the first step in every hybrid video quality assessment algorithm is the synchronisation of the video bit stream with the decoded reconstructed images.
[0004] A block diagram of a hybrid video quality assessment system is depicted in Fig. 1. At the end-user side, a probe device captures the incoming bit stream, and then parses and analyses it in order to extract and compute some features. These features are input to the module which is responsible for the temporal synchronization of the video bit stream with the output video sequence.
[0005] Moreover, the decoding device, e.g., the set-top-box (STB), decodes the received bit stream and generates the processed video sequence (PVS) which is displayed by the output device. The PVS is also input to the module which is responsible for the temporal synchronization so that it can be temporally aligned with the video bit stream.
[0006] In general, the main reason for temporal misalignment between the bit stream and the PVS is the delay. When the video stream is transmitted over a best-effort network, such as the Internet, the arrival time of each packet is not constant and may vary significantly. The variability over time of the packet latency across a network is called
jitter. To ensure a smooth playback of the sequence without jerkiness, most video systems employ a de-jitter buffer. The received bit stream is written to the input buffer based on the arrival time of each packet, and the picture data corresponding to a frame are read out of it into the decoder at predetermined time intervals corresponding to the frame period. The display timing of each picture is determined by the timestamp field recorded in the packet header. That is, the timestamp value corresponds to the delay time period which elapses from the detection of picture start code until the picture display timing.
[0007] In the above described video decoding system, the display timing of each video frame is determined according to the data which is included in the video bit stream for determination of the display timing. Since the time for the display of a frame is not fixed, the PVS can not always be matched exactly to the original bit stream.
[0008] In the literature, the problem of temporal alignment between a source and a distorted video sequence has been previously studied and is also referred to as video registration. In
M. Barkowsky, R. Bitto, J. Bialkowski, and A. Kaup, "Comparison of matching strategies for temporal frame registration in the perceptual evaluation of video quality, Proc. of the Second International Workshop on Video Processing and Quality Metrics for Consumer Electronics, Jan. 2006 , a comparison between block matching and phase correlation for video registration is presented and examined in terms of performance and complexity. Also, a frame-matching algorithm to account for frame removal, insertion, shuffling, and data compression was presented in
Y. Y. Lee, C. S. Kim, and S. U. Lee, "Video frame-matching algorithm using dynamic programming," Journal of Electronic Imaging, SPIE, 2009, based on the minimization of a matching cost function using dynamic programming. In J. Lu, "Fast video temporal alignment estimation," (
US-B1-6 751 360), a fast temporal alignment estimation method for temporally aligning a distorted video with a corresponding source video for video quality measurements was presented. Each video sequence is transformed into a signature curve by calculating a data-point for each frame as a cross-correlation between two subsequent frames. The temporal misalignment of the distorted video is then determined by finding the maximum value of the normalized cross-correlation between the signature curves of the examined video sequences. Another method for identifying the spatial, temporal, and histogram correspondence between two video sequences is described in H. Cheng, "Video registration based on local prediction errors," (
US-B2-7 366 361). The PVS is aligned to the reference video sequence by generating a mapping from a selected set of one or more original frames to the processed set so that each mapping minimizes a local prediction error. In K. Ferguson, "Systems and methods for robust video temporal registration," (
US-A-2008/0253689), frame and sub-image distillation measurements are produced from the reference and test video sequences. Then, they are linearly aligned using local Pearson's cross-correlation coefficient between frames. Finally, in C. Souchard, "Spatial and temporal alignment of video sequences," (
US-A-2007/0097266), a motion function is defined to describe the motion of a set of pixels between the frames of the test and the reference video sequence and a transform is used to align the two images.
Summary of the Invention
[0009] It is the object of the invention to provide a method and apparatus to temporally align the input video bit stream of a video decoder, e.g. a set-top-box (STB), with the processed video sequence (PVS) and enable their synchronization. This object is achieved with the features of the claims.
[0010] According to a first aspect, one example provides a method for temporally synchronizing the input bit stream of a video decoder with the processed video sequence decoded by the video decoder, the method comprising the steps of:
- a) capturing the input bit stream and supplying it to a bit stream analyzer;
- b) parsing and analyzing the captured input bit stream by the bit stream analyzer;
- c) decoding the input bit stream and providing reconstructed images Nrec therefrom;
- d) storing the reconstructed images Nrec in a buffer; and
- e) comparing a processed video sequence received from the output side of the video decoder with each of the stored reconstructed images, to find a matching frame n from the set of reconstructed images in the buffer.
[0011] The method may further comprises the step f) of supplying the matching frame
n* and its corresponding part of the bit steam to a video quality assessment unit. The video quality assessment unit may estimate a subjective quality score based on the obtained information from the bit stream and the processed video sequence.
[0012] Step b) of the method may further comprise extracting, from the bit stream, for each image the packets that have been lost due to transmission errors and the corresponding areas within each frame that have been affected by the packet loss; and an error propagation map based on the motion vectors and macro block types, which denotes which pixels of each frame reference an erroneous region for their prediction and are thus prone to have been impacted by the packet loss.
[0013] Furthermore, step e) may comprise computing a distance metric between the processed video sequence and the reconstructed image in the buffer by exploiting information extracted from the bit stream and the PVS. The information extracted from the bit stream may comprise spatial and temporal location of impairments due to packet loss.
[0014] According to a second aspect, the invention provides a method for temporally synchronizing the input bit stream of a video decoder with the processed video sequence decoded by the video decoder, the method comprising the steps of:
- a) capturing the input bit stream and supplying it to a bit stream analyzer;
- b) analyzing the captured bit stream by the bit stream analyzer to generate error maps I(x,y,t) and a set A of pixels that have been impacted by packet loss, wherein I(x,y,t) denote the error map value at location (x,y) of the t-th frame, x = 0, 1, ..., M, and y = 0, 1,..., N, where M, N are the horizontal and vertical dimensions of each frame of the video sequence, respectively;
- c) storing, in a buffer, the error maps of reconstructed frames Nrec, being reconstructed by the bit stream analyzer; and
- d) comparing the stored error maps of the Nrec reconstructed frames with the corresponding error map of the current processed video sequence, to find a matching frame n* from the set of reconstructed frames in the buffer that matches the current image of the processed video sequence.
[0015] The method may comprise step e) of supplying the matching frame
n* and its corresponding part of the bit steam to a video quality assessment unit.
[0016] It is furthermore preferred that between steps c) and d) the following steps are performed: extracting the edges of current image of the processed video sequence;
computing the contour of the edges that are likely to belong to an area affected by the packet loss;
comparing the edge contour of the processed video sequence with the edge contour of the error maps stored in the buffer.
[0017] According to a third aspect, one further example provides a method for temporally synchronizing the encrypted input bit stream of a video decoder with the processed video sequence decoded by the video decoder, the method comprising the steps of:
- a) supplying the encrypted input bit stream to an analysis module;
- b) analysing, in the analyser module, the packet header information of the encrypted input bit stream, and calculating the size and the type of the frames contained in the bit stream;
- c) extracting, on the basis on the calculated frame sizes and types, features that are representative of the content depicted in the video frames;
- d) extracting the type of content and respective features representative of the content from the pictures of the processed video sequence;
- e) comparing the features extracted in step d) from the current picture of the processed video sequence with the features extracted in step c) from the analysed frames to find a matching frame n*.
[0018] The features extracted in steps c) and d) are preferably time-varying features, and these steps may be performed in the pixel domain.
[0019] According to a preferred embodiment, the feature and time-alignment for matching frame
n* is further input to a video quality assessment module.
[0020] Step b) may further detect frames that have been affected by the packet loss, and may further comprise the steps of:
f) examining the current picture of the processed video sequence for artifacts generated due to packet losses; and
g) matching of the processed video sequence with the corresponding frame of the bit stream, wherein, if the current picture of the processed video sequence was detected in step f) to contain artefacts that were inserted as a result of a packet loss, then that picture is matched with the part of the bit stream corresponding to the frame which was found in step b) to contain the packet loss.
[0021] A further aspect of an example relates to an apparatus for temporally aligning the input bit stream of a video decoder with the processed video sequence decoded by the video decoder, the apparatus comprising:
a bit stream analyzer receiving the input bit stream, the bit stream analyzer being configured for parsing and analyzing the input bit stream, and
a synchronization module being configured for aligning the analyzed bit stream with the processed video sequence,
the synchronization module comprising:
a decoder receiving from the bit stream analyzer the analyzed bit stream, and configured to provide therefrom reconstructed images Nrec,
a buffer being configured to store said reconstructed images Nrec from said decoder so that the output image represented by the processed video sequence can be compared to this specific number of previously reconstructed images, and
a pixel-domain comparison unit receiving the analyzed bit stream from the bit stream analyzer, the reconstructed images from the buffer, and the processed video sequence, the comparison unit being configured to
compare the processed video sequence with each one of the reconstructed images in the buffer, and
determine the best matching image in the video buffer.
[0022] The apparatus preferably comprises a video quality assessment module which combines information from the bit stream and the processed video sequence to evaluate the quality of the video sequence. The comparison unit may further be configured to compute a distance metric between the processed video sequence and the examined reconstructed image in the buffer by exploiting information extracted from the bit stream. Furthermore, the comparison unit is configured to output the best matching image to the video quality assessment module for estimating a subjective quality score based on information from the bit stream and the processed video sequence.
[0023] It is furthermore preferred that the bit stream analyzer is configured to extract, from the bit stream, for each picture the packets that have been lost due to transmission errors and the corresponding areas within each frame that have been affected by the packet loss; and an error map based on the motion vectors and macro block types, which denotes which pixels of each frame reference an erroneous region for their prediction and are thus prone to have been impacted by the packet loss.
[0024] According to a further aspect, the invention provides an apparatus for temporally aligning the input bit stream of a video decoder with the processed video sequence decoded by the video decoder, the apparatus comprising:
a bit stream analyzer receiving the input bit stream, the bit stream analyzer being configured for analyzing the input bit stream for packet header information of the encrypted input bit stream, and calculating the size and the type of the frames contained in the bit stream, and
a synchronization module being configured for aligning the analyzed bit stream with the processed video sequence,
the synchronization module comprising:
an extraction module receiving from the bit stream analyzer the analyzed bit stream, and configured to generate error maps I(x,y,t) and a set A of pixels that have been impacted by packet loss, wherein I(x,y,t) denote the error map value at location (x,y) of the t-th frame, x = 0, 1, ..., M, and y = 0,1,..., N, where M, N are the horizontal and vertical dimensions of each frame of the video sequence, respectively,
a buffer being configured to store the error maps of reconstructed frames Nrec, being reconstructed by the bit stream analyzer, and
an error pattern search module receiving the error maps of the reconstructed frames Nrec, from the buffer, and the corresponding error map of the processed video sequence, the error pattern search module being configured to
compare the stored error maps of the Nrec reconstructed frames with the corresponding error map of the current processed video sequence, and to
determine a matching frame n *from the set of reconstructed frames in the buffer that matches the current image of the processed video sequence.
[0025] According to a further aspect, an example provides an apparatus for temporally aligning the encrypted input bit stream of a video decoder with the processed video sequence decoded by the video decoder, the apparatus comprising:
a bit stream analyzer receiving the encrypted input bit stream, the bit stream analyzer being configured for parsing and analyzing the input bit stream, and
a synchronization module being configured for aligning the analyzed bit stream with the processed video sequence,
characterized in that
the synchronization module comprises
an first extraction module being configured for extracting, on the basis on the calculated frame sizes and types, features that are representative of the content depicted in the video frames,
a second extraction module being configured for extracting the type of content and respective features representative of the content from the pictures of the processed video sequence, and
a comparison unit connected to the first extraction unit and the second extraction unit, the comparison unit being configured to
compare the features extracted from the current picture of the processed video sequence with the features extracted from the analysed frames, and to
determine the matching frame n*.
[0026] Coming back to the object of the invention, it can be achieved in general terms by the provision of a device (probe) which, according to the present invention, includes a bit stream analyzer for parsing and decoding the input bit stream, a synchronization module which is responsible for temporally aligning the bit stream with the PVS.
[0027] The device which is responsible for the temporal alignment of the video bit stream and the PVS comprises of a buffer which stores the reconstructed images which are output from the decoder. This buffer should be able to store a specific number of reconstructed images
Nrec from the decoding device within the probe so that the output image can be compared to this specific number of previously reconstructed images.
[0028] The module which is responsible for the synchronization of the PVS and the video bit stream performs the following operations:
- a) compares the PVS with each one of the reconstructed images in the buffer
- b) computes a distance metric between the PVS and the examined reconstructed image in the buffer by exploiting information extracted from the bit stream (e.g., spatial and temporal location of impairments due to packet loss)
- c) determines the best matching image in the video buffer and outputs it to the video quality assessment module which is responsible for estimating the subjective score MÔS based on information from the bit stream and the PVS.
[0029] In the following, the invention will be described in more detail.
[0030] First, a first example of temporal synchronization between the bit stream and the PVS will be described with reference to Fig. 2.
[0031] The temporal synchronization between the bit stream and the decoded/processed video sequence consists of two steps. Initially, in the first step, the apparatus according to the invention, i.e. a probe device, captures the bit stream and feeds it to the bit stream analyzer which extracts the following information for each picture:
- a. the packets that have been lost due to transmission errors and the corresponding areas within each frame that have been affected by the packet loss; and
- b. an error propagation map based on the motion vectors and macroblock types, which denotes which pixels of each frame reference (for prediction) an erroneous region for their prediction and are thus prone to have been impacted by the packet loss.
[0032] Let
A denote the set of pixels that have been affected by the packet loss and the pixels that reference lost pixels for their prediction. Also, let
I(x,y,t) denote the error map value at location (
x,y) of the
t-th frame,
x = 1, 2, ...,
M, and
y = 1, 2,...,
N, where
M, N are the horizontal and vertical dimensions of each frame of the video sequence, respectively. The value for those pixels that belong to the set
A is one, otherwise their value is zero. Thus:

[0033] In other words, the set
A contains all pixels that will not be identical between the processed video sequence and the reconstructed image of the decoder within the probe due to the different error concealment techniques. For this reason, all pixels belonging to set
A are denoted as unavailable for the temporal alignment in the following stage. An example of the derivation of the error propagation maps is depicted in Fig. 5. The packet loss occurs in the first frame (in Fig. 5 the dark area in the picture on the right denotes the macroblocks that have been impaired due to the packet loss) and the pixels of the subsequent frames that reference the affected area of the first frame for the prediction process are computed and marked as unavailable for the synchronization process. This will assist in eliminating those pixels that may be different between the reconstructed images and the processed video sequence due to the application of different error concealment techniques between the internal video decoder of the probe and the decoder of the decoding device, e.g., the STB.
[0034] Furthermore, the separate decoder within the probe device decodes the received bit stream, and the reconstructed pictures are stored in a buffer. The size of the buffer should be large enough to account for the delay that may be incurred by the STB. Let the maximum expected delay be
d (in seconds), and let
f be the frame rate of the video sequence. Then, the buffer should be able to store
Nrec =
d · f frames in total.
[0035] In the second step, the processed video sequence is compared with each one of the reconstructed pictures in the buffer. The purpose of this comparison is to find a matching frame
n* from the set of reconstructed pictures in the buffer, based on the following equation:

where
F'(x,y,t) is the pixel value in position
(x,y) of the
t-frame of the processed video picture under examination, and
F(x,y,n) is the pixel in the same position of the
n-th frame in the buffer of reconstructed pictures,
n=0,1,...,
Nrec. The multiplication of the pixel values of each picture with the error propagation map is applied in order to exclude those pixels that have been affected by the packet loss (either directly or due to error propagation) and ensure that the matching process is restricted to those pixels that are likely to be more similar between the two pictures. It must be also noted, that instead of the specific function used here (which is called sum of absolute differences, SAD) for the minimization, any similar function could be used, for example the mean-squared error.
[0036] After the matching process is finished, the matched frame
n* is removed from the buffer of the reconstructed pictures and the matched frame, along with its corresponding part of the bit stream can be further employed, e.g., to be used as input to the module which is responsible for hybrid video quality assessment.
[0037] In the following, a second embodiment of the synchronization between the video bit stream and the decoded video sequence will be described.
[0038] In the second embodiment of the present invention, the synchronization between the bit stream and the processed video sequence is performed by analyzing the bit stream, extracting information for the area of each frame that is affected from the packet loss, and then examining if the same pattern of errors appears in the processed video sequence. The block diagram of the overall procedure is depicted in Fig. 3.
[0039] In the first step, the bit stream analyzer within the probe device processes and analyzes the bit stream to generate (for each frame) the error map
I(.,.,.) and, thus, the set
A of pixels that have been impacted by the packet loss, as defined above in the context of the first embodiment. The error maps of
Nrec frames are stored in a buffer so that they can later be matched with the corresponding error maps of the processed video sequence, as explained below.
[0040] In the following step, the macroblocks of current picture of the processed video sequence that have been impaired due to a packet loss are estimated and the error map
IPVS(...) and the set A
PVS are generated, as defined above in the context of the first embodiment. Next, the contour of the pixels of the error map
IPVS(...) is estimated The method for estimating the impaired macroblocks of the current picture and the contour of the pixels belonging to these macroblocks is out of scope of this invention, thus any method known to the skilled person could be used, for example the method proposed in
G. Valenzise et. al., "Estimating channel-induced distortion in H.264/AVC video without bitstream information," QoMEX, 2010.
[0041] The edge of the contour of the processed video sequence is to be compared with the edge of the contour of the error maps that have been previously stored in the buffer. If the matching of the contours is constrained in the area defined by the error map, which is the pixels belonging to the set
A, then the edges of the contour detected from the processed video sequence are not taken into consideration. Also, since there are typically slight misinterpretations of the area detected as erroneous and the corresponding area that is detected as erroneous from the processed video sequence, the area of search is increased by
k pixels to ensure that the edges of the contour detected by the decoder are not smaller than those detected in the processed video sequence. In this embodiment,
k is selected to be equal to 5. However, any other value could be selected.
[0042] Thus, the set
APVS of pixels that belong to the area where the edges of the contour due to the packet loss are detected (increased as noted above) is produced, and the error map
IPVS is generated. Let
IPVS (x,y,t) denote the error map value of the
t-th processed video sequence picture at location (
x,
y),
x = 1, 2, ..., M, and
y =1, 2,...,
N, where
M, N are the horizontal and vertical dimensions of each frame of the video sequence, respectively. Then:

[0043] In the third step, the error map of the current picture of the processed video sequence is compared with each one of the error maps (that were generated by analyzing the bit stream in the first step) which are stored in the buffer. The purpose of this comparison is to find a matching frame
n* from the set of reconstructed pictures in the buffer, that matches the current picture of the processed video sequence based on the following equation:

where
IPVS (x,y,t) is the value in position
(x,y) of the
t-frame of the error map of the PVS under examination, and
I(
x,y,n) is the pixel in the same position of the error map corresponding to the
n-th frame,
n=1, 2,...,
Nrec.
[0044] Finally, a hybrid video quality assessment module which combines information from the bit stream and the processed video sequence to evaluate the quality of the video sequence may be present as shown in Fig. 3.
[0046] In the following, temporal synchronization between the bit stream and the decoded image of an encrypted video sequence according to a further embodiment of the invention will be described.
[0047] The problem of frame synchronization becomes more evident when the video sequence is encrypted and the only available information for the bit stream can be extracted from the packet headers. The parameters that can be extracted from the bit stream based only on the inspection of the packet headers are the size and the type of each frame.
Alignment based on frame-based feature matching
[0048] The first example, of the method for synchronization between the video bit stream and the decoded image of an encrypted video sequence addresses the case where there are no packet losses in the bit stream and is shown in Fig. 4.
[0049] In the first step, the video bit stream is fed to a module which is responsible for the analysis of the packet header information, and the calculation of the size and the type of the frames (intra, predictive, or bi-predictive). The method for the extraction of the type of frames of encrypted video based on their size is out of scope of this patent. For example, the method proposed in European Patent application no.
10 17 1431.9 of the present applicant filed on July 30, 2010 (herein incorporated by reference), could be used.
[0050] In the second step, the information about the frame sizes and types is used in order to extract (for example time-varying) features that are representative of the content depicted in the video frames. It is obvious, that since the payload information is not available due to encryption, only an approximation of the content class can be estimated. The method for content class estimation based on frame sizes and frame types is out of scope of the present invention. Any available method for this purpose could be used, e.g., A. Clark, "Method and system for content estimation of packet video streams,"
WO 2009/012297 A1.
[0051] Similarly, the type of content and respective (e.g. time-varying) features representative of the content are extracted from the pictures of the processed video sequence. Since the present invention focuses only on the synchronization aspects between the bit stream and the processed video sequence, the method for the extraction of features from the picture (in the pixel domain) and the detection of content type is not within its scope.
[0052] In the third step, the features extracted from the current picture of the processed video sequence are matched with the features extracted from the frames which were analyzed by the packet header analysis module. Note that the corresponding feature and time-alignment can be used as input to the module which is responsible for the assessment of video quality. As shown in Fig. 4, a hybrid video quality assessment module may be present which combines information from the bit stream and the processed video sequence to evaluate the quality of the video sequence.
Temporal alignment based on packet loss event triggering
[0053] In this example it is assumed that the bit stream and the processed video sequence are synchronized when no errors (e.g., due to packet losses) occur, based on the method described in the previous subsection and it considers the case when synchronization is required when a packet loss is detected.
[0054] In the first step, the video bit stream is fed to the module which is responsible for the analysis of the packet header information, the calculation of the frame types, and the detection of the frames that have been affected by the packet loss. The type of all the frames is detected and thus it is determined whether a packet loss propagates to its subsequent frames or not due the prediction process.
[0055] In the following step, the current picture of the processed video sequence is examined for distortions that may have been generated due to packet losses. It must be noted that this algorithm should be able to classify between distortions caused by packet losses and distortions that were produced as a result of the lossy compression of the original video sequence. The algorithm for the detection and classification of distortions is out of the scope of the present invention. For example, the method in
G. Valenzise et. al., "Estimating channel-induced distortion in H.264/AVC video without bitstream information," QoMEX, 2010, could be used for this purpose.
[0056] In the third step, the matching of the processed video sequence with the corresponding frame of the bit stream is performed. If the current picture of the processed video sequence was detected to contain distortions that were caused as a result of a packet loss, then that picture is matched with the part of the bit stream corresponding to the frame which was found (in the initial step) to contain the packet loss.
[0057] Finally, the synchronization information (that is, the current frame of the PVS along with its corresponding part of the video bit stream) is computed. This information can be forwarded as input to the module which is responsible for the assessment of video quality.
[0058] The prior art mentioned in the above introductory part considers the problem of temporal alignment between two video sequences due to frame skipping, repetition, deletion, shuffling, and data compression that may result due to the transmission of the video sequence over an erroneous network or the processing of the sequence. On the contrary, the present invention considers only the synchronization of the processed video sequence with the bit stream at the end-user side and, thus, the only source of misalignment is the delay introduced by the decoder device and the bit stream analyzer and the different error concealment techniques applied by the decoder (STB) and the decoder within the probe device.
- Fig. 1
- shows a conventional probe device for temporal alignment of the processed video sequence with the bit stream and the decoded image data;
- Fig. 2
- shows a block diagram for the synchronization of the bit stream with the output image according to a first example;
- Fig. 3
- shows a block diagram of a second preferred embodiment of the present invention for the synchronization between the video bit stream and the processed video sequence;
- Fig. 4
- shows synchronization between the bit stream and the decoded image of an encrypted video sequence, in accordance with a further example; and
- Fig. 5
- an example of error propagation maps for subsequent frames.
[0059] While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive. It will be understood that changes and modifications may be made by those of ordinary skill within the scope of the following claims.
[0060] Furthermore, in the claims the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. A single unit may fulfil the functions of several features recited in the claims. The terms "essentially", "about", "approximately" and the like in connection with an attribute or a value particularly also define exactly the attribute or exactly the value, respectively. Any reference signs in the claims should not be construed as limiting the scope.