Two-dimensional SEMG encoding
In order to compress SEMG records using image encoders, one of the simplest approaches is to split the one-dimensional input signal into segments, of fixed or variable length, and then insert each one into a row or a column of a two-dimensional array. Later, given that the SEMG matrix was suitably assembled, an image compressor shall explore inter and intrasegment dependencies, with its available coding tools. The complete procedure is shown in Fig. 1.
Normally, image compressors used for encoding SEMG signals are based on the transform-quantization-coding paradigm [26, 29]. Indeed, that technique employs transforms for exploiting intra- and intersegment redundancies, which is followed by data quantization and, finally, entropy coding. In the quantization step, transform coefficients are quantized, which results in a smaller number of bits, and entropy coding provides an even more compact representation, by exploiting statistical dependencies regarding resulting symbols.
Such methods present good performance for natural images [30], which are normally smooth and then concentrate most of their energy at low frequencies. However, images generated from SEMG signals tend to behave as noise, since their energy is more evenly distributed throughout the signal frequency range, as can be seen in Fig. 2, which tends to decrease the performance of two-dimensional encoders. In order to overcome that, two main approaches can be employed: rearranging the SEMG matrix [26], that is, adding a additional preprocessing step, with the goal of helping image encoders to better exploit signal redundancies, or choosing a two-dimensional encoder that does not expect large low-frequency content or is able to adapt to the input data [30].
Regarding the first approach, some recent studies [26, 29, 32] have proposed preprocessing techniques, which, in general, attempt to increase correlation among signal segments (columns or rows) or make them more evident, in such a way that two-dimensional coding tools can provide good performance. For instance, preprocessing techniques may rely on segment reordering [26, 29], which is based on some metric, length equalization [33], DC component removal [32], or even some kind of signal decomposition [34]. Here, two preprocessing techniques will be tackled: the newly proposed SbS, which splits the input signal adaptively, by altering the number of samples within segments, and the PDS algorithm, which rearranges segments of the input signal, based on their similarities.
The second approach may be implemented through the use of an alternative paradigm for data compression, known as pattern matching [35, 36], which is easily identified in the available image literature. The related algorithms can operate in spatial domain, where the input image is divided into blocks that are approximated by patterns available in a dictionary. In summary, those schemes can be developed without assuming any signal behavior and perform encoding in an adaptive way, which is interesting for SEMG compression.
A viable two-dimensional option is the MMP algorithm, which is based on recurrent pattern matching, uses adaptive dictionaries, and presents competitive results, for both smooth and nonsmooth images [30]. Besides, MMP has been already used for compressing ECG signals [15], stereoscopic images [37], speech signals [38], and video [39], which reinforces its universal behavior. It is worth noticing that MMP also presents good performance when used for compressing Gaussian signals [30], which, along with its universal behavior, makes MMP a good option for SEMG image encoding.
This work explores the two mentioned approaches for SEMG signal compression, in order to produce new schemes that are able to better exploit signal redundancies and provide good performance, as explained in the following sections.
The MMP algorithm
The MMP is a data compression algorithm based on recurrent pattern matching, which was introduced by de Carvalho, da Silva e Finamore [40], in 2002, and has been updated over the years; its most recent version was named as MMP-II [30]. In the present work, the most relevant features of MMP are presented, which include its basic operation and main coding techniques.
MMP is an algorithm able to approximate image blocks at a given scale l, using elements from an adaptive dictionary \(\mathcal D\). Actually, the latter consists of subdictionaries \(\mathcal {D}^{l}\), in order to address each scale l. MMP starts by searching, for every block \(X^l\) of the input image, an element \(S_i^l\), from dictionary \(\mathcal {D}^{l}\) , that minimizes the Lagrangian cost function J, defined by
$$\begin{aligned} J(X^l) = D(X^l,S_i^l)+\lambda R(S_i^l), \end{aligned}$$
(1)
where \(D(X^l,S_i^l)\) is the sum of squared differences, \(\lambda\) is a Lagrangian multiplier [41], and \(R(S_i^l)\) is the rate necessary for encoding the dictionary element.
After selecting the element with smallest cost, the original block is segmented across the vertical and horizontal directions [42], as shown in Fig. 3. The vertical segmentation generates two new subblocks, \(X_0^{l-1}\) and \(X_1^{l-1}\), each with half size, considering the original block. Then, the algorithm will look for the elements \(S_{i0}^{l-1}\) and \(S_{i1}^{l-1}\), in \(\mathcal {D}\)
\(^{l-1}\), that minimize the Lagrangian costs regarding \(X_0^{l-1}\) and \(X_1^{l-1}\), respectively. Subblocks \(X_2^{l-2}\) and \(X_3^{l-2}\) are generated through the horizontal segmentation and the same coding procedure is applied. Indeed, the mentioned segmentation procedure is recursively performed: MMP operates with an initial block size of \(16 \times 16\), which corresponds to the highest scale (\(l = 25\)), and segments down until the lowest possible level (\(l = 1\)), that is, blocks of size \(1 \times 1\). The result of such a procedure is shown in Fig. 3.
Given that block dimensions are equal to \(2^m\times 2^n\), with \(m,n=\{0, 1, 2, 3, 4\}\), and considering an input block of \(16 \times 16\), the MMP dictionary is composed by 25 subdictionaries, at different scales. The relationship between scale and blocks, of size \(M \times N\), is provided by
$$\begin{aligned} Scale= \left\{ \begin{array}{ll} (\log _2 M+1)(\log _2 N+1), & \text {if} \,\, M = N \\ (\log _2 M+1)(\log _2 N+1) + (\log _2 M-1)\left( \log _2 \frac{\displaystyle M}{\displaystyle N}\right) , & \text {if} \ M > N \\ (\log _2 M+1)(\log _2 N+1) + (\log _2 N-1)\left( \log _2 \frac{\displaystyle N}{\displaystyle M}\right) + 1, & \text {if} \,\, M < N \\ \end{array} \right. \end{aligned}$$
(2)
The next procedure performed by the MMP algorithm is the optimization of the segmentation tree, where it analyzes the Lagrangian cost, for each possible partition, and decides whether subblocks, at some scale, are segmented or not. For instance, if the coding cost of a parent block, at level l, is lower than the overall cost of its two children blocks, at level \(l-1\), the parent block will not be segmented. The cost function for a block that is not segmented is defined by
$$\begin{aligned} J_{ns}(X^l) = J(X^l)+\lambda R(flag), \end{aligned}$$
(3)
where R(flag) is the rate needed for encoding an element flag, which informs that the associated block was not segmented. The Lagrangian cost regarding children blocks (subblocks) is defined by
$$\begin{aligned} J_{s}(X^l) = J(X_j^{l-1})+J(X_{j+1}^{l-1})+\lambda R(flag), \end{aligned}$$
(4)
where R(flag) is the rate needed for encoding the segmentation direction.
The result of the presented optimization process is the best possible representation, for the original input block, and can be represented by an optimal tree, which is obtained after pruning the full segmentation one. In the example shown in Fig. 4, every leaf of the optimal tree corresponds to a nonsegmented block, which was approximated by a single dictionary element, and every node corresponds to a segmented block, which is approximated by the concatenation of two elements available in a given dictionary.
Combining MMP and predictive coding
Rodrigues et al. [43] presented a new image coding algorithm called MMP-Intra, whose goal was to improve the performance of the original MMP algorithm, when compressing smooth images. Such an approach employs predictive coding techniques for exploiting spatial correlations, within input images, in the same fashion as done in H.264/MPEG-4 advanced video coding (AVC) [28]. As a result, MMP ultimately encodes residue signals with highly peaked probability distributions, which favors its block approximation procedure [30]. The same prediction modes used in the H.264/AVC standard [28] are adopted by MMP-Intra; however, the DC mode is replaced by the most frequent value (MFV) [30].
In order to generate residue blocks, MMP-Intra uses previously encoded neighboring samples for creating prediction blocks \(P_M^l\), which are then subtracted from the current block \(X^l\). Such a procedure is modeled by
$$\begin{aligned} R_{P_M}^l=X^l-P_M^l, \end{aligned}$$
(5)
where \(P_M^l\) is the prediction block, at scale l, and M is the chosen prediction mode for generating the residue block \(R_{P_M}^l\).
Each prediction mode has a Lagrangian cost regarding residue reconstruction, which is given by the coding cost imposed by MMP, according to (3) and (4), and the rate required to transmit the prediction mode, that is,
$$\begin{aligned} J_{P_M}(X^l)=J(R_{P_M}^l)+\lambda R(M). \end{aligned}$$
(6)
The MMP-Intra algorithm employs prediction techniques across the segmentation tree, in a hierarchical way. It tests each available prediction mode for every block, whose scale rages from 25 to 9, in order to find the best possible approximation. Thus, the segmentation procedure can be associated with the prediction and optimization processes.
The final result of that procedure is represented by a segmentation tree, which is then optimized. In Fig. 5, the original block is vertically segmented and prediction procedures are performed in both halves, which generates residue blocks through prediction modes M1 and M2. The right half is also further segmented by MMP, in order to achieve an optimal representation.
The dictionary update procedure
The dictionary update procedure is one of the most important tasks performed by MMP, given that it is responsible for generating new matching patterns and increasing its representation power. It can be regarded as an adaptive module and is the main responsible for the universal behavior of MMP [30].
The MMP dictionary does not require any knowledge of the input signal, although that can be done, in order to improve its coding efficiency. The initial elements, of each subdictionary, are homogeneous blocks obtained within the range \([-255, 255]\), in a nonuniform fashion, except for the dictionary at scale 1 (\(1 \times 1\)), which includes all possible values. When a block \(X^l\) is segmented, a new dictionary pattern is created, by concatenating the dictionary blocks, at scale \(l - 1\), used for representing the resulting children blocks. Indeed, that new element updates every possible scale, through a separable scale transformation \(T_l^s\) [40].
Every time a new element is added to the multiscale dictionary, a new index is created and, consequently, the average entropy of existing dictionary indexes increases, which reduces the MMP coding performance. Rodrigues et al. [30] introduced an efficient redundancy control scheme that limits the dictionary increase, given that a new element is added only if its relative distance, regarding existing blocks, is superior to a given threshold. Therefore, it avoids the creation of new elements that contribute little to coding.
Rodrigues et al. [30] also added geometric transforms and the additive symmetric, to the dictionary update procedure, rearranged dictionary elements within partitions with different probability contexts, according to the original element scale, and employed a norm-equalization procedure.
The MMP bitstream
In order to encode an optimal tree, the original MMP algorithm represents tree nodes through flags; however, due to the addition of hierarchical prediction techniques, the current tree also contains nodes for identifying segmentation procedures. In summary, a node may be created by hierarchical prediction techniques or provided by the residue segmentation process. Accordingly, five different flags should be used for identifying nodes:
-
Flag “0” represents a tree leaf, which is followed by a dictionary index; however, if a prediction mode is sent for this block, it is also followed by a prediction mode flag;
-
Flag “1” represents a tree node with vertical segmentation;
-
Flag “2” represents a tree node with horizontal segmentation;
-
Flag “3” represents a tree with vertical segmentation, through the hierarchical prediction process;
-
Flag “4” represents a tree with horizontal segmentation, through the hierarchical prediction process.
The resulting optimal tree is converted into a symbol string, through a top-down approach. When a vertical or horizontal segmentation occurs, the subtree that corresponds to the left or upper branch, respectively, is first encoded and then followed by the right or lower branch subtree. In the example of Fig. 5, MMP-II would generate the following symbol string:
$$\begin{aligned} 3 \quad \quad 0 \quad \quad M1 \quad \quad i0 \quad \quad 2 \quad \quad M2 \quad \quad 0 \quad \quad i1 \quad \quad 2 \quad \quad 0 \quad \quad i2 \quad \quad 0 \quad \quad i3. \end{aligned}$$
The generated symbols are then fed to an adaptive arithmetic encoder [30], which use distinct probabilistic models. In order to code dictionary indexes, the MMP algorithm takes into account the block scale and the element that gave rise to a respective pattern. It is done this way because the adaptive dictionary of MMP, at a given scale, is partitioned according to the scale of the block that gave rise to a given pattern.
Optimizing MMP for SEMG signals
In this section, the contributions of the present work to the base MMP algorithm, with the goal of improving compression performance regarding SEMG signals, will be clarified.
In order to use the MMP algorithm for encoding SEMG signals and improve the associated performance, an adaptation for that kind of signal and an investigation of different predictive schemes are presented. The new prediction approach is similar to what is done in the HEVC standard [44], whose goal is to improve the exploitation of intra- and intersegment correlations.
Adaptation of the current MMP version (MMP-II)
MMP was developed to work with portable grayscale map images, which present 8 bits per pixel and positive dynamic range. Considering that prediction techniques may produce negative amplitudes, even when derived from grayscale levels, the dictionary is built with blocks composed by elements within \([-X, X]\). Besides, images generated from SEMG signals present a bit depth greater than 8, that is, the necessary dynamic range is different. In order to overcome those problems, MMP was adapted to handle larger dynamic ranges and thus build its dictionary according to that.
The initial dictionary elements are determined nonuniformly, as in the original MMP, but with a slight difference: specifically, the first block is the largest image value multiplied by \(-1\); then, the next one is determined by the value of the previous block plus step p, which is defined according to
$$\begin{aligned} \left\{ \begin{array}{ll} p=1, & \text {if} \,\, |f(S_{0i}^{l})| \le 10 \\ p=4,& \text {if} \,\,10 < |f(S_{0i}^{l})| \le 22 \\ p=8, & \text {if} \,\, 22 < |f(S_{0i}^{l})| \le 86 \\ p=13, & \text {if} \,\, |f(S_{0i}^{l})| > 86. \\ \end{array} \right. \end{aligned}$$
(7)
As one may notice, the range of intensity values near zero is the most explored, due to the fact that the sample distribution regarding residue signals tends to be clustered around zero.
The MMP redundancy control scheme introduced a minimum distortion value d, among blocks of a given dictionary scale. Indeed, d must be carefully determined, because it will influence the resulting coding performance. For example, when it is too large, patterns can not be accurately matched, because there will be a lower number of blocks with great variation among them, which is an interesting approach for low rates. However, for high rates, lower values of d must be used, given that a larger number of blocks will be added to the multiscale adaptive dictionary, with small variations among them, which then allows a more accurate block matching. As the bitrate is a consequence of the numerical value chosen for \(\lambda\), the function relating \(\lambda\) and d is defined by
$$\begin{aligned} d(\lambda )= \left\{ \begin{array}{ll} 20, \quad \text {if} \,\, \lambda \le 4 \\ 40, & \text {if} \,\, 4 < \lambda \le 22 \\ 60, \quad \text {if} \,\, 22 < \lambda \le 50 \\ 80, \quad \text {if} \, \lambda > 50. \\ \end{array} \right. \end{aligned}$$
(8)
The relation between d and \(\lambda\) was determined in a heuristic way, in order to optimize values for d and provide a good dictionary composition, for a given bitrate. In each experimental test, distinct pairs, composed of values for d and \(\lambda\), were employed. As a result, (8) is capable of generating pairs that achieve the best results, for the entire SEMG test database, in average.
Improved prediction techniques
Intraframe prediction techniques have been successfully used in MMP, given that the related experimental results showed an increase in performance, for smooth and nonsmooth images. The main reason behind such an improvement is that prediction techniques change the data to be encoded, with the goal of making residue samples present highly peaked probability distributions, centered around zero [30]. Due to that, the dictionary adaptation procedure was favored, which resulted in a more efficient encoding, regarding rate-distortion figures.
Prediction algorithms basically create an estimation of image blocks, through prediction directions, which results in a difference signal that may be encoded at lower rates. Generally, prediction schemes with more prediction directions may lead to better block estimation, as long as the necessary coding rate (increased by new symbols) is compensated by the distortion gain.
Based on that, the adoption of more angular predictions, as done in HEVC, is proposed in this work. In summary, the new scheme replaces the eight original directional modes, used in MMP-Intra/MMP-II, by 33 new directional modes, as shown in Fig. 6. Moreover, while the current MMP approach uses neighboring samples from previously left, above, and upper-right coded blocks, in order to perform intra prediction [30], the proposed scheme also includes lower-left coded blocks.
The MMP-II algorithm performs angular predictions based on an extrapolation regarding reconstructed samples, from previously encoded blocks, through a given direction. However, such samples may be obtained, during prediction procedures, from blocks with different scales. In order to optimize this process, two reference vectors are created, during the intra prediction procedure, which are used in all scales. The first reference, called vertical vector, contains all necessary samples to carry out angular modes 2 to 17, while the second one, called horizontal vector, contains all necessary samples to carry out angular modes 18 to 34.
In addition to angular predictions, the proposed scheme employs the planar and MFV modes, as nonangular predictions, which are commonly used for smooth regions. The MFV mode uses the most frequent value in the reference vectors, in order to compute a prediction, while the planar mode performs two linear interpolations, one using the horizontal vector and other using the vertical one; the average of those interpolations results is the predicted value.
Typically, some prediction directions may produce similar values, when used for small blocks. Due to that, it is interesting not to use prediction modes for some blocks, with small scales, in order to improve coding performance (entropy coding). Nonetheless, as SEMG images are similar to noise, small variations in prediction data may produce distorted representations. Consequently, the proposed scheme adopts the use of all possible angular prediction modes, regarding blocks at scales higher than 3; in the remaining scales, no prediction mode is used. Furthermore, the planar mode is used only in scales 4, 9, 16, and 25, because this mode has similar results regarding the MFV one, for other scales.
Since the same prediction techniques available in HEVC are used in the proposed scheme, and HEVC employs blocks of size \(32 \times 32\), it may be worthwhile to investigate the use of input blocks with the same dimensions. The first consequence is the inclusion of eleven more scales (e.g., \(32 \times 16\), \(16 \times 32\), etc.), which would result in a coding procedure with 35 scales. Indeed, HEVC uses larger blocks, due to the need for handling high definition, which normally presents larger smooth areas. However, this is not the case with images generated from SEMG signals, since, as already mentioned, they tend to present a behavior that is still similar to noise, no matter the chosen segment size. As a consequence, matching larger blocks is still difficult, which results in further block partitioning (more segmentation and prediction mode flags) that consequently decreases the expected coding efficiency.
Another important issue regarding the use of larger blocks is the resulting coding complexity. More scales result in more dictionaries and consequently greater number of operations, since the selection of a dictionary element involves a search for the block that causes the lowest distortion. Furthermore, for each block segmentation, prediction is performed for the new children blocks, which involves operations with 33 angular and 2 nonangular prediction modes.
Based on what was presented, one can easily conclude that larger blocks would result in higher computational complexity and, for images generated from SEMG signals, the resulting coding efficiency is expected to decrease. Indeed, such conclusions were confirmed by experimental results, which were performed during the development of this work. Consequently, the largest scale for encoding SEMG signals remained as 25, that is, input blocks of \(16 \times 16\).
The final result of the modifications performed in MMP-II is a new encoder, which is able to quickly adapt to nonsmooth-signal characteristics and has the potential to efficiently exploit the similarities present in SEMG images.
Preprocessing techniques
SEMG signals may present nonstationary behavior [45], which means that the initial segmentation procedure, employed for creating image columns, may produce a two-dimensional signal with low correlation among samples from different segments, or even regarding the same segment.
However, preprocessing techniques can reshape or reorganize signals, in order to increase intra- and intersegment correlations. For instance, reordering signal segments may lead to more homogeneous areas within a SEMG image, which contributes to an increase in intersegment dependencies. In addition, preprocessing techniques can also segment input signals, according to the correlation among neighboring samples, which would directly increase intrasegment dependencies. Therefore, preprocessing techniques have the potential to improve the exploitation of signal redundancies, when taking into account image encoders.
The percentage difference sorting algorithm
Since images are generated from one-dimensional SEMG signals, adjacent signal segments may present low correlation, which tends to decrease the performance of image encoders. Nonetheless, each SEMG segment can be treated as an independent unit, which means that segments can be rearranged, in order to increase correlations associated with two-dimensional signals.
Given that, this paper employs a technique that reorders segments based on their similarities, known as the PDS algorithm [29], which computes similarities through
$$\begin{aligned} PD(x,m) = \frac{\sum\nolimits _{n=0}^{N-1}(x[n]-m[n])^2}{\sum\nolimits_{n=0}^{N-1}x^2[n]}, \end{aligned}$$
(9)
where PD(x, m) represents the percentage difference regarding x and m segments, x[n] is the last sorted segment, m[n] is the segment under analysis, and N is the number of samples in each segment.
The PDS procedure begins by finding the segment with smallest variance, which is inserted into the first column of the SEMG matrix; the next columns are then rearranged, according to their percentage difference relative to the last sorted element. An SEMG image rearranged through PDS is shown in Fig. 7. It is possible to notice that the new representation presents a more organized texture, whose complexity increases from left to right.
It is worth noticing that when PDS is used, it is necessary to transmit the original segment positions within an SEMG image, in order to rebuild the original one-dimensional signal, during the decoding process.
The adaptive segmentation procedure
As mentioned earlier, in order to compress SEMG signals with image coders, one needs to split the input signal, so that the resulting segments are inserted into matrix columns. However, the way segments are chosen and also the number of samples, in each segment, usually influence the resulting intra- and intersegment dependencies, which may compromise the exploitation of signal correlations.
Another important aspect is the need for transmitting side information. Although reordering techniques have the potential to improve the efficiency of two-dimensional compressors, the requirement of transmitting original segment positions may decrease the obtained coding gains, which arose by better exploiting signal correlations. In other words, the influence of the added side information lies on the need for making the sum between the new compressed-file size (whose original SEMG matrix was rearranged) and the side-information amount lower than the original compressed-file size, for the same quality. Thus, if the amount of side information is high, the achieved coding gains, due to the increase in signal correlations, may not compensate the transmission loss regarding side information, which makes a given preprocessing procedure too expensive.
In this context, if the segmentation procedure is adaptively performed, the need for segment reordering may be reduced. Therefore, the next proposed preprocessing technique seeks the optimal number of samples within a signal segment, in order to improve both intra- and intersegment correlations, which is called segmentation by similarity.
Here, (9) (the same used for the PDS technique) is used to compute similarities between adjacent segments. The proposed procedure begins with a segment of N samples, which is used for computing the percentage difference between adjacent segments. Then, the average value, regarding percentage differences among segments, is obtained and stored.
The explained procedure is recursively performed, where the number of samples within a segment is given by \(N=16n\), with \(n=\{2,3, \ldots ,64\}\). Then, the segment size N, employed for creating SEMG images, that provides the lowest average percentage difference value is chosen.
One may notice that such a procedure may encounter difficulties when applied to real-time SEMG compression, due to the need for computing many possible configurations. However, if the target SEMG records already exist, an offline encoding is feasible and may lead to good results, given that the proposed technique improves the generation process of two-dimensional SEMG matrices, which produces a representation that enhances the exploitation of signal dependencies, without the need for sending additional side information.
The compression architecture
In the proposed methodology, the SEMG encoding is performed in three stages: matrix formation, preprocessing, and image compressor, as shown in Fig. 8. The matrix formation stage splits an input one-dimensional SEMG signal, in such a way that a matrix with K rows and L columns is built and each segment occupies one of its columns. The number of samples in the input SEMG record is then sent as side information, in order to allow the decoder to correctly reconstruct the original signal. Next, the resulting matrix is preprocessed (e.g., reordering, length equalization, etc.), with the goal of increasing signal correlations, which will probably result in a good performance regarding the two-dimensional coding step. Finally, the resulting matrix signal is encoded by an image compressor. At the decoder end, the mentioned steps are just performed in reverse order, according to what was done during encoding (see Fig. 8).
It is worth noticing that if the PDS algorithm is used, which happens in the preprocessing step, a segment size is firstly defined in the matrix formation step, in order to generate a square matrix, and a list with original column indexes is created, arithmetically coded, and then added to the file header. Besides, if the SbS technique is employed, the first two stages are performed in only one step, given that the matrix is already created with a column length (and consequently number of rows) adapted to the current signal features. As a result, no further preprocessing is required. Finally, if MMP is employed, no preprocessing is performed.
Although it was developed for SEMG signals, the proposed compression scheme is able to encode other biological signals, by employing different preprocessing techniques and image compressors. Besides, different biological signals may benefit from specific tools for their compression. For instance, ECG signals may be segmented, based on their QRS complexes, and then inserted into matrix rows, through a length equalization procedure [46].
Database
The evaluation of the proposed method was carried out by experiments with real isometric and dynamic SEMG signals, acquired in laboratory. A sample SEMG signal, retrieved from the ones used in the experiments, is shown in Fig. 9.
The isometric records were collected from the biceps brachii muscle of 13 volunteers, during isometric contractions. The volunteers were sat, with their forearm parallel to their torso and sustaining an MVC of 60 %. The resulting signals were sampled at 2000 Hz, quantized with 12 bits, and present durations ranging from 1.3 to 3.0 minutes.
The dynamic records, in turn, were collected from the vastus lateralis of 13 volunteers, when performing knee-joint controlled exercises in the isokinetic concentric mode [47], through an isokinetic dynamometer, as described by Schwartz et al. [48, 49]. The resulting signals were sampled at 2048 Hz, quantized with 12 bits, bandpass filtered in the range 10–500 Hz, and present durations about 4 min.
Performance metrics
The distortion level of reconstructed signals, after decoding, is measured through the percent root-mean-square difference (PRD) and compression factor (CF) metrics, which are commonly adopted in the related literature. The equations that define the PRD and CF figures are, respectively,
$$\begin{aligned} PRD = \sqrt{\frac{\sum\nolimits _{i=0}^{N-1}(x[i]-\hat{x}[i])^2}{\sum\nolimits _{i=0}^{N-1}x^2[i]}} \times 100, \end{aligned}$$
(10)
where x[i] is the original signal, \(\hat{x}[i]\) is the reconstructed one, and N is the number of samples, and
$$\begin{aligned} CF = \frac{B_o-B_c}{B_o} \times 100, \end{aligned}$$
(11)
where the \(B_o\) is the total number of bits, in the original signal, and \(B_c\) is the total number of bits, in the compressed format. For every SEMG signal used in the performed experiments, \(B_o = 12 n\), which represents 12 bits resolution and n samples, for each signal.