Abstract:
A computer-implemented method for decompression in data compression systems with decpder side-information including a plurality of signals each of which is correlated to a source, includes determining a conditional probability function of the source conditioned upon a subset of decoder side-information signals, wherein the decoder side-information signals include pre-stored and received statistical information, estimating an a-posteriori probability function based on the conditional probability function and extrinsic information, evaluating a stopping criterion for decompresiion, generating the extrinsic information based on the a-posteriori probability function, and determining a likelihood threshold for determining a most probable value of a quantized source signal based on the a-posteriori probability function and outputting the quantized source upon determining to stop decompression.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Technical Field 
         [0002]    The present invention relates to decompression in data compression systems with decoder side-information. More specifically, the present invention relates to decompression in data compression systems in which the decoder side-information includes a plurality of signals each of which is correlated to the source which is to be decompressed. 
         [0003]    2. Description of Related Art 
         [0004]    Data compression and decompression with decoder side-information is of practical interest in several applications. These include, but are not limited to, low complexity media coding, scalable and error-resilient data transmission, transmission of media and text over distributed and peer-to-peer networks, compression of sensor network data video, storage of biometric data etc. Data compression systems which utilize decoder side-information are commonly termed Wyner-Ziv coding systems. A typical Wyner-Ziv system includes an encoder which compresses a source signal, and a decoder which decodes the source signal with the help of one or more correlated signals, termed the decoder side-information. The case where more than one correlated signal is present at the decoder as side-information is termed the multi-hypothesis decoder side-information coding case. 
         [0005]      FIG. 1  depicts a Wyner-Ziv coding system. The system includes an encoder  100  and a decoder  111 . The input to the encoder is the source signal X  101 , which is to be compressed and communicated to the decoder. The source signal  101  is passed through a lossy source coder  102  which, typically, converts the input signal into a quantized signal  104  whose samples take values from a discrete set of integers. As an example, in the case of a video Wyner-Ziv encoder, the source to be compressed is the current video frame, and the lossy source coder  102  first transforms the data using a discrete cosine transform, and uses a uniform scalar quantizer with a deadzone to convert the transform coefficients into integers. The quantized signal  104  passes through a Slepian-Wolf coder  103 . The Slepian-Wolf coder  103  processes the quantized signal and generates a syndrome or parity bitstream  105  which is communicated to the decoder. As an example, the Slepian-Wolf coder  103  may include a good channel coder. The quantized signal  104  is multiplied by the parity-check matrix of the channel code to generate the syndrome bitstream  105 . As another example a systematic channel code may be used in the Slepian-Wolf coder  103 . The quantized signal  104  is multiplied by the generator matrix of the channel code, and the parity bits generated constitute the party bitstream  105 . Typically, the syndrome or parity bitstream includes a plurality of indices drawn from the set of integers or a Galois field. 
         [0006]    The inputs to the Wyner-Ziv decoder  110  are the syndrome/parity bitstream  105 , and the decoder side-information signals Y, . . . ,Y J    113 . The Slepian-Wolf decoder  111  processes the syndrome/parity bitstream  105  and the decoder side-information  113  to reconstruct the quantized source signal  114 . As an example, in the case of video Wyner-Ziv decoding, the side-information signal may include a previously reconstructed video frame, and the Slepian-Wolf decoder treats the side-information as a corrupted version of the source video frame and may use a soft channel decoding algorithm to correct the side-information. The quantized source signal  114  is passed through the source reconstruction means  112  which converts it into a reconstructed source signal X r    115  which lies in the same domain as the source signal  101 . The source reconstruction may utilize the side-information  113 . As an example, in the case of video Wyner-Ziv decoding, the source reconstruction means using an inverse quantizer whose reconstruction points may depend on the side-information  113 , and using an inverse discrete cosine transform to reconstruct the source video frame. 
         [0007]    When the quantized source signal  114  at the decoder does not match the quantized source signal  104  at the encoder, the Slepian-Wolf decoding is deemed to have failed, and the result is a distorted source reconstruction  115 . To avoid Slepian-Wolf coding failure, the rate of the syndrome/parity bitstream  105  (i.e. the number of syndrome or parity symbols) needs to be sufficiently high. However, having a high rate of the syndrome/parity bitstream  105  conflicts with the goal of compression, which is to transmit as low rate a bitstream as possible from encoder to decoder. In general the better the Slepian-Wolf decoder the lower is the rate of the syndrome/parity bitstream needed for decoding without failure, and thus the greater is the achieved compression. 
         [0008]      FIG. 2  shows the detailed working of a conventional Slepian Wolf decoding means in the case where the decoder side-information includes two signals Y 1  and Y 2 . As an example, in the case of a video Wyner-Ziv decoder, the decoder side-information may includes two previously reconstructed video frames. The inputs to the Slepian-Wolf decoder  200  are the syndrome/parity bitstream  201  received from the Wyner-Ziv encoder, and the side-information signals Y 1    207  and Y 2    208 . The side-information signals are combined using a fixed linear combination  205  and the linearly combined signal is passed to the probability estimation means  206 . The probability estimation means  206  computes the conditional probability P(X|Y 1 ,Y 2 )  209  of the source signal, conditioned on the computed linear combination. The syndrome/parity bitstream  201  and the conditional probability distribution  209  are both input to the soft channel decoder  202 . The output of the soft channel decoder is an a-posteriori probability distribution Q(X)  203  of the quantized source signal. The a-posteriori probability distribution Q(X)  203  is passed through a likelihood threshold means  204  which computes the most probable value of the quantized source signal based on Q(X). The computed most probable source signal value is output as the quantized source signal  210 . 
         [0009]    One limitation of the Slepian-Wolf decoding method described above is that it is inefficient in terms of the syndrome/parity bitstream rate needed for Slepian-Wolf coding to occur without failure. This is because the soft channel coding requires the probability estimate P(X|Y 1 , . . . ,Y J ) for best compression efficiency, i.e. for correct decoding with the minimum possible syndrome/parity bitstream rate. However computing P(X|Y 1 , . . . ,Y J ) is, typically, infeasible since it includes computation of the high-dimensional probability function P(X,Y 1 , . . . ,Y J ), and that would need more samples than are typically available at the decoder. Consequently the conventional Slepian-Wolf decoding method described above uses the probability function P(X|a 1 Y 1 +. . . +a J Y J ) where a 1 +. . . +a J =1 as an approximation to P(X|Y 1 , . . . Y J ), as shown in  FIG. 2  for the case where J=2. This approximation, however, is often not very good and thus the Slepian-Wolf decoder needs high syndrome/parity bitstream rate for correct decoding. This results in poor compression performance. 
         [0010]    Therefore, a need exists for an improved method for Slepian-Wolf decoding needing a small syndrome/parity bitstream rate to provide Slepian-Wolf decoding without failure. 
       SUMMARY OF THE INVENTION 
       [0011]    According to an embodiment of the present disclosure, a computer-implemented method for decompression in data compression systems with decoder side-information including a plurality of signals each of which is correlated to a source, includes determining a conditional probability function of the source conditioned upon a subset of decoder side-information signals, wherein the decoder side-information signals include pre-stored and received statistical information, estimating an a-posteriori probability function based on the conditional probability function and extrinsic information, evaluating a stopping criterion for decompression, generating the extrinsic information based on the a-posteriori probability function, and determining a likelihood threshold for determining a most probable value of a quantized source signal based on the a-posteriori probability function and outputting the quantized source upon determining to stop decompression. 
         [0012]    According to an embodiment of the present disclosure, a computer readable medium is provided embodying instructions executable by a processor to perform a method for decompression in data compression systems with decoder side-information including a plurality of signals each of which is correlated to a source. The method comprises determining a conditional probability function of the source conditioned upon a subset of decoder side-information signals, wherein the decoder side-information signals include pre-stored and received statistical information, estimating a plurality of a-posteriori probability functions based on the conditional probability function and extrinsic information, evaluating a stopping criterion for decompression, generating the extrinsic information based on the a-posteriori probability function, and determining a likelihood threshold for determining a most probable value of a quantized source signal based on the a-posteriori probability function and outputting the quantized source upon determining to stop decompression. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0013]    Preferred embodiments of the present disclosure will be described below in more detail, with reference to the accompanying drawings: 
           [0014]      FIG. 1  is a diagram illustrating a prior-art Wyner-Ziv coding system illustrating the operation of the Wyner-Ziv encoder and Wyner-Ziv decoder. 
           [0015]      FIG. 2  is a diagram illustrating a prior-art Slepian-Wolf decoder. 
           [0016]      FIG. 3  is a diagram illustrating an embodiment of a Slepian-Wolf decoder according to an embodiment of the present invention. 
           [0017]      FIG. 4  is a diagram illustrating a method according to an embodiment of the present invention for Wyner-Ziv coding of a digital video sequence. 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0018]    Embodiments of the present invention disclosure herein are intended to be illustrative only, since numerous modifications and variations therein will be apparent to those of ordinary skill in the art. In reference to the drawings, like numbers will indicate like parts continuously throughout the views. 
         [0019]    Referring to  FIG. 3 , an exemplary embodiment of the present invention a system for multi-hypothesis Slepian-Wolf decoding within a Wyner-ziv decoder receives inputs comprising a syndrome/parity bitstream  301  received from a Wyner-Ziv encoder, and side-information signals Y 1 , . . . ,Y J  ( 307 ,  308 ). The syndrome/parity bitstream  301  includes a plurality of indices drawn from the set of integers or a Galois field. The set of side-information signals is artitioned into K subsets by a partitioner  311 . Each of the K subsets is passed through a probability estimator, which may include first and second probability estimators  305  and  315 , respectively. The subset S 1    306  is passed through the first probability estimator  305 , which computes the probability function P(X|S 1 )  309 . The subset S K    316  is passed through the second probability estimator  315 , which computes the probability function P(X|S 1 )  319 . In addition to a side-information subset, the probability estimator  305 / 315  may utilize a-priori correlation model information stored in a look-up table at the decoder, as well as model information transmitted separately from the syndrome/parity bitstream  301  by the Wyner-Ziv encoder. This model information may include, but is not limited to, the instantaneous and long-term mean-squared energy of the source signal. 
         [0020]    Each of the K probability functions is passed through a soft channel decoder including first and second soft channel decoders  302  and  312 , respectively. Probability function P(X|S 1 )  309  is passed through the first soft channel decoder  302 . The first soft channel decoder  302  makes use of the syndrome/parity bitstream S B    301 , the probability function  309 , the extrinsic information  322  and a pre-stored codebook C used by the Wyner-Ziv encoder, to estimate the a-posteriori probability function Q 1 (X)=P(X|Y 1 , . . . ,Y J , S B , C)  303 . In an exemplary embodiment the codebook C is that of a linear block code, and the first soft channel decoder  302  uses maximum a-posteriori decoding to compute the function Q 1 (X)  303 . In another embodiment the codebook C is that of a low-density parity-check code and the channel decoder  302  uses graph decoding wherein the graph is a function of the codebook C, and graph node probabilities are computed as a function of S B    301 , the probability function  309  and the extrinsic information  322 . In another embodiment graph decoding is performed using the belief propagation algorithm. Similarly, probability function P(X|S K )  319  is passed through the second soft channel decoder  312 . The second soft channel  312  makes use of the syndrome/parity bitstream S B    301 , the probability function  319 , the extrinsic information  323  and the pre-stored codebook C used by the Wyner-Ziv encoder, to estimate the a-posteriori probability function Q K (X)=P(X|Y 1 , . . . , Y J , S B , C)  313 . 
         [0021]    The computed a-posteriori probability functions Q 1 (X) Q...vQ (X) are passed through a stopping criterion (SC) evaluator  320 . The stopping criterion evaluation means  320  may use data including, but not limited to, the a-posteriori probability functions, and statistical information (e.g., the mean and variance of the marginal distribution of the source, transmitted by the encoder to the decoder) from the Wyner-ziv encoder, to determine whether the Slepian-Wolf decoding is to be terminated. In an exemplary embodiment, the stopping criterion evaluator  320  computes the maximum integrated square error between the K a-posteriori functions Q 1 (X), . . . , Q K (X) to make this determination, for example, the stopping criterion evaluation means  320  implements the following computation 
         [0000]        SC =(max i,j∈{1, . . . , K} ∫( Q   i ( X )− Q   j ( X )) 2   dX&lt;θ)    
         [0000]    for a pre-determined constant θ. In another exemplary embodiment, the stopping criterion evaluator  320  makes additional use of the marginal probability distribution f(X) of the source, received from the Wyner-Ziv encoder, and implements the following computation to determine the stopping criterion 
         [0000]        SC =(max{max i∈{1, . . . , K} ∫( Q   i ( X )−ƒ( X )) 2   dX , max i,j∈{1, . . . , K} ∫( Q   i ( X )− Q   j ( X )) 2   dX }&lt;θ) 
         [0022]    If the stopping criterion evaluator  320  determines that SC=1, it computes the true a-posteriori probability function as a function of the a-posteriori probability functions Q 1 (X), . . . , Q K (X) and statistical information from the encoder. In an exemplary embodiment, the true a-posteriori function Q(X) is computed as 
         [0000]    
       
         
           
             
               Q 
                
               
                 ( 
                 X 
                 ) 
               
             
             = 
             
               
                 1 
                 
                   K 
                   + 
                   1 
                 
               
                
               
                 { 
                 
                   
                     f 
                      
                     
                       ( 
                       X 
                       ) 
                     
                   
                   + 
                   
                     
                       ∑ 
                       
                         i 
                         ∈ 
                         
                           { 
                           
                             1 
                             , 
                             … 
                              
                             
                                 
                             
                             , 
                             K 
                           
                           } 
                         
                       
                       
                           
                       
                     
                      
                     
                       
                         Q 
                         i 
                       
                        
                       
                         ( 
                         X 
                         ) 
                       
                     
                   
                 
                 } 
               
             
           
         
       
     
         [0000]    In an additional exemplary embodiment the true a-posteriori function is computed by taking the mean of the subset of a-posteriori functions Q 1 (X) which have mean square integrated error with respect to f(X) less than a fixed threshold. In an additional exemplary embodiment the true a-posteriori function is computed as 
         [0000]    
       
         
           
             
               Q 
                
               
                 ( 
                 X 
                 ) 
               
             
             = 
             
               
                 
                   λ 
                   0 
                 
                  
                 
                   f 
                    
                   
                     ( 
                     X 
                     ) 
                   
                 
               
               + 
               
                 
                   ∑ 
                   
                     i 
                     ∈ 
                     
                       { 
                       
                         1 
                         , 
                         … 
                          
                         
                             
                         
                         , 
                         K 
                       
                       } 
                     
                   
                   
                       
                   
                 
                  
                 
                   
                     λ 
                     i 
                   
                    
                   
                     
                       Q 
                       i 
                     
                      
                     
                       ( 
                       X 
                       ) 
                     
                   
                 
               
             
           
         
       
     
         [0000]    where λ i  are weights which may be fixed or determined on the basis of f(X) and Q i (X). The computed function Q(X)  324  is passed through a likelihood-threshold means  304  which computes the most probable value of the quantized source signal based on Q(X). The computed most probable source signal value is output as the quantized source signal  310 . 
         [0023]    If the stopping criterion evaluator  320  determines that SC=0, it passes the a-posteriori functions Q 1 (X), . . . , Q K (X) to an extrinsic information generator  321 . The extrinsic information generator means  321  computes extrinsic information functions E 1 (X), . . . , E K (X) to send to the soft channel decoders  302 / 312 . The extrinsic information function E 1 (X)  322  is computed by the use of data including, but not limited to the a-posteriori functions Q 1 (X), . . . , Q K (X) and the source statistics received from the Wyner-Ziv encoder including the marginal probability distribution f(X) of the source. The exemplary embodiment the extrinsic information generator  321  implements the following computation to generate the extrinsic information E 1 (X)  322 : 
         [0000]    
       
         
           
             
               
                 E 
                 1 
               
                
               
                 ( 
                 X 
                 ) 
               
             
             = 
             
               
                 
                   λ 
                   0 
                 
                  
                 
                   f 
                    
                   
                     ( 
                     X 
                     ) 
                   
                 
               
               + 
               
                 
                   ∑ 
                   
                     
                       i 
                       ∈ 
                       
                         { 
                         
                           1 
                           , 
                           … 
                            
                           
                               
                           
                           , 
                           K 
                         
                         } 
                       
                     
                     , 
                     
                       i 
                       ∈ 
                       1 
                     
                   
                   
                       
                   
                 
                  
                 
                   
                     λ 
                     i 
                   
                    
                   
                     
                       Q 
                       i 
                     
                      
                     
                       ( 
                       X 
                       ) 
                     
                   
                 
               
             
           
         
       
     
         [0000]    The additional exemplary embodiment the extrinsic information generator  321  implements the following computation to generate the extrinsic information E 1 (X)  322 : 
         [0000]    
       
         
           
             
               
                 E 
                 1 
               
                
               
                 ( 
                 X 
                 ) 
               
             
             = 
             
               
                 1 
                 
                   ∫ 
                   
                     
                       ∏ 
                       
                         
                           i 
                           ∈ 
                           
                             { 
                             
                               1 
                               , 
                               … 
                                
                               
                                   
                               
                               , 
                               K 
                             
                             } 
                           
                         
                         , 
                         
                           i 
                           ∈ 
                           1 
                         
                       
                     
                      
                     
                         
                     
                      
                     
                       
                         
                           Q 
                           i 
                         
                          
                         
                           ( 
                           X 
                           ) 
                         
                       
                        
                       
                          
                         X 
                       
                     
                   
                 
               
                
               
                 
                   ∏ 
                   
                     
                       i 
                       ∈ 
                       
                         { 
                         
                           1 
                           , 
                           … 
                            
                           
                               
                           
                           , 
                           K 
                         
                         } 
                       
                     
                     , 
                     
                       i 
                       ∈ 
                       1 
                     
                   
                 
                  
                 
                     
                 
                  
                 
                   
                     Q 
                     i 
                   
                    
                   
                     ( 
                     X 
                     ) 
                   
                 
               
             
           
         
       
     
         [0000]    The generated extrinsic information function E 1 (X)  322  is sent to the first soft channel decoder  302  for use in the next decoding iteration. Similarly, the extrinsic information function E K (X)  323  is computed by the use of data including, but not limited to the a-posteriori functions Q 1 (X), . . . ,Q K (X) and the source statistics received from the Wyner-Ziv encoder including the marginal probability distribution f(X) of the source. The generated extrinsic information function E K (X)  323  is sent to the second soft channel decoder  312  for use in the next decoding iteration. 
         [0024]    The use of multiple soft channel decoders within an iterative method increases the efficacy of Slepian-Wolf decoding. This is reflected in the lower rate of the syndrome/parity bitstream S B  needed to achieve Slepian-Wolf decoding without failure. Thus the presented method allows for greater compression to be achieved. 
         [0025]    An exemplary embodiment of the present invention which relates to a system for Wyner-Ziv coding of digital video sequences is described in reference to  FIG. 4 , an input to the encoder is a video frame X  401 , which is to be compressed and transmitted to decoder. The video frame is input to a frame classifier  409 , which determines if the frame should be compressed using Wyner-Ziv coding or if it should be compressed using a differential pulse code modulation (DPCM) video encoder such as an MPEG or H.264 encoder. If the frame classifier  409  determines that the video frame  401  should be compressed using DPCM encoding, the frame is sent to a DPCM video encoder  408 . The DPCM encoder means  400  uses scalar quantization followed by entropy coding to compress the frame and sends the compressed data to the multiplexer and transmitter  407 . 
         [0026]    If the frame classifier  409  determines that the video frame  401  should be compressed using Wyner-Ziv coding the frame is sent to a Wyner-Ziv video encoder  400  which comprises an energy-compacting transformer  402 , a quantizer  406  and a Slepian-Wolf encoder  403 . The transformer  402  applies a discrete-cosine transform (or another similar transform) to the video frame. The transform coefficients are sent to the quantizer  406 . The quantizer  406  converts the real-valued transform coefficients to quantized symbols which take values in the set of integers. In an exemplary embodiment the quantizer  406  uses a uniform scalar quantizer with a deadzone to quantize the transform coefficients. The quantized coefficients  404  are sent to the Slepian-Wolf encoder  403 . The Slepian-Wolf encoder  403  processes the quantized signal and generates a syndrome or parity bitstream  405 , which includes a plurality of indices drawn from the set of integers or a Galois field. In an exemplary embodiment the Slepian-Wolf encoder  403  makes use of a linear block code and multiplies the parity-check matrix of the code with the quantized coefficient bitstream  404  to generate a syndrome bitstream  405 . In an additional exemplary embodiment the Slepian-Wolf encoder  403  uses a systematic channel code, and the quantized signal  404  is multiplied by the generator matrix of the channel code, and the parity bits generated constitute the party bitstream  405 . The generated syndrome/parity bitstream  405  is transmitted to a multiplexer and transmitter means  407 , which generates the bitstream to be transmitted to the decoder. 
         [0027]    To decode the compressed stream, a demultiplexer  417  first partitions the received stream according to the need for Wyner-Ziv decoding and DPCM decoding. The frame data which is to be decoded through the use of a DPCM video decoder is sent to the DPCM video decoder means  418 , which may be the same or different video decoder as the DPCM video decoder  408 . The DPCM decoder means  418  uses entropy decoding and inverse quantization to generate the reconstructed video frame which is sent to a decoder video buffer  416 . 
         [0028]    The frame data, including syndromes/parities, which is to be decoded by use of a Wyner-Ziv video decoder is sent to a multi-hypothesis Slepian-Wolf decoder  411 . An exemplary embodiment of the Slepian-Wolf decoder  411  is as described above in reference to  FIG. 3 . The side-information Y 1 , . . . , Y J    413  for the Slepian-Wolf decoder  411  consists of a plurality of previously decoded video frames stored in the decoder frame buffer  416 . The multi-hypothesis Slepian-Wolf decoder  411  makes use of the syndrome/parity bitstream and the side-information signal  413 , and iterates between multiple soft channel decoders until the stopping criterion is equal to one. The decoded quantized stream  414  is sent to the inverse quantizer  412 . The inverse quantizer  412  makes use of the side-information  413  and the quantized stream  414  to convert the quantized coefficients into real-valued transform coefficients. The real-valued transform coefficients are then passed through the inverse transform  419 , which reconstructs the source video frame. The reconstructed frame is sent to the decoder video buffer  416  and is output as the decoded frame  415 . The use of the multi-hypothesis Slepian-Wolf decoder increases the efficacy of video Wyner-Ziv decoding. This is reflected in the lower rate of the syndrome/parity bitstream transmitted from the video encoder to the video decoder. Thus the system and method allows for greater compression to be achieved in video coding. It is to be understood that the present invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. In one embodiment, the present invention may be implemented in software as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. 
         [0029]    Referring to  FIG. 5 , according to an embodiment of the present invention, a computer system  501  for implementing Wyner-Ziv decoding in the presence of multiple decoder side-information signals using multiple soft-channel decoders for Slepian-Wolf decoding can comprise, inter alia, a central processing unit (CPU)  502 , a memory  503  and an input/output (I/O) interface  504 . The computer system  501  is generally coupled through the I/O interface  504  to a display  505  and various input devices  506  such as a mouse and keyboard. The support circuits can include circuits such as cache, power supplies, clock circuits, and a communications bus. The memory  503  can include random access memory (RAM), read only memory (ROM), disk drive, tape drive, etc., or a combination thereof. The present invention can be implemented as a routine  507  that is stored in memory  503  and executed by the CPU  502  to process the signal from the signal source  508 . As such, the computer system  501  is a general-purpose computer system that becomes a specific purpose computer system when executing the routine  507  of the present invention. 
         [0030]    The computer platform  501  also includes an operating system and micro instruction code. The various processes and functions described herein may either be part of the micro instruction code or part of the application program (or a combination thereof) which is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device. 
         [0031]    It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying figures may be implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the present invention is programmed. Given the teachings of the present invention provided herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention. 
         [0032]    Having described embodiments for a mechanism and method for Wyner-Ziv decoding in the presence of multiple decoder side-information signals using multiple soft-channel decoders for Slepian-Wolf decoding, it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments of the invention disclosed which are within the scope and spirit of the disclosure.