Patent Publication Number: US-2004047511-A1

Title: Iterative compression parameter control technique for images

Description:
RELATED APPLICATION DATA  
       [0001] This application claims the benefit of and priority under 35 U.S.C. §119(e) to U.S. patent application Ser. No. 60/394,820, filed Jul. 9, 2002, entitled “Iterative Rate Control Technique For Motion JPEG2000,” which is incorporated herein by reference in its entirety.  
       BACKGROUND OF THE INVENTION  
       [0002] 1. Field of the Invention  
       [0003] This invention relates to the encoding and decoding of images. In particular, an exemplary aspect of this invention relates to systems and methods for iteratively adapting compression parameters for image compression.  
       [0004] 2. Description Of Related Art  
       [0005] With the dependence on multimedia technologies becoming greater exponentially, image compression techniques need to correspondingly increase in performance. The JPEG2000 standard is intended to provide rate distortion and subjective image quality performance superior to existing standards, and to also provide features and functionalities that current standards address only partially or do not address at all. The JPEG2000 standard is designed to address requirements of a diversity of applications, for example, images, internet multimedia, color facsimile, printing, color printing, scanning, digital photography, remote sensing, mobile applications, medical imagery, digital libraries, and e-commerce, just to name a few.  
       [0006] The JPEG2000 standard is the new image compression standard created by ISO/IEC JTC1 SC29 Working Group 1, also known as the Joint Photographic Experts Group (JPEG). Part 1 of the JPEG standard, which is incorporated herein by reference in its entirety, addresses the compression of still images. Part 3 of the JPEG standard, which is also incorporated herein by reference in its entirety, and is also referred to as Motion JPEG2000, describes a file format for JPEG2000 compressed video sequences. Each image in a sequence of images in motion JPEG20000 is compressed using the JPEG 2000 Part 1 standard.  
       [0007] As is common with the majority of compression standards, Part 1 of the JPEG2000 standard is a decoder standard. The standard specification addresses the syntax of the compressed code stream and the required behavior of the decoder, i.e., exactly how the decoder is to decode a compliant coded stream. Although the encoding process is implicitly dictated by the standard, not all encoding details are specified by the standard. In fact, there are several decisions and options that are left up to the encoder. A simple example is the number of wavelet transform levels, which is strictly an encoder determined option. Specifically, the number of transform levels is not dictated by the standard, only a range of allowable values, i.e., from 0 to 32, is provided.  
       SUMMARY OF THE INVENTION  
       [0008] JPEG2000 image compression allows both lossless and lossy compression of images. Lossless compression stipulates that, after decompression, an image identical to the original image is produced. Lossy compression on the other hand, indicates that, after decompression, an image which is a representation, but not identical to, the original image is produced.  
       [0009] During lossy compression, distortion or data loss is introduced in the multiple steps of the compression process. The sources of this distortion include, for example, implementation precision, quantization distortion, codestream truncation, and the like.  
       [0010] Specifically, implementation precision introduces distortion during image processing and operations. This distortion is associated with the fact that the required arithmetic operations are not performed with infinite precision. Since some of the operands are irrational numbers they are necessarily approximated. The precision of these approximations, e.g., 32 bit or 16 bit, can directly affect the quality of the resulting image.  
       [0011] A second way that distortion is introduced is via quantization. Quantization is the process of mapping the calculated wavelet coefficients, which are the result of applying the wavelet transform to the original image, to a set of integer indices. The set of unique integer indices is smaller than the set of unique input wavelet coefficients. During the dequantization process, each integer index is mapped to a representative wavelet coefficient value. This introduces distortion since the representative value is an approximation of the original wavelet coefficient. After quantization, the quantized wavelet coefficients are encoded into codestreams.  
       [0012] A third way distortion is introduced is the truncation of these encoded codestreams. The decisions on how to truncate might be based on desired compressed image size or desired compressed image quality.  
       [0013] Accordingly, exemplary embodiments of the invention iteratively adapt one or more parameters that govern one or more of distortion and rate of a compressed image or sequence of images, individually or as a whole. These parameters include, for example, but are not limited to, quantization parameters, which may include binwidths or other quantization decisions, and truncation parameters, which may include specific truncation points or other truncation decisions.  
       [0014] Thus, as a specific example, the exemplary systems and methods discussed herein at least address an iterative technique for performing rate allocation on video sequences, where each image is compressed using Part 1 of the JPEG2000 Standard. However, it should be appreciated that in general any compression parameter can be adapted based on the general techniques discussed herein. Furthermore, the techniques disclosed herein can be expanded to any type or format of image or image sequence. Additionally, the techniques disclosed herein can be applied to the compression of time-series data, such as video sequences, as well as other 3 dimensional data sets, such as medical data, such as, CAT or MRI scans, which are 2 dimensional slices cut along a volume, and hyperspectral data, which are 2 dimensional images differing by the acquisition spectral band, i.e., their color.  
       [0015] In particular, the exemplary technique disclosed hereinafter at least provides greater computational efficiency because the rate control calculations only need be performed on a subset of images in a sequence of images. Subsequent images in the sequence of images are processed using an adapted value of the parameter(s) that were determined for the previous image.  
       [0016] Additionally, the exemplary systems and methods discussed herein provide a technique for compressing a video sequence using Motion JPEG2000, where, for example, a rate control algorithm is applied to each image in a sequence of images.  
       [0017] The rate control algorithm can be used to control the file size or the quality of the compressed images. In accordance with this technique, the rate control technique can be performed using very few computations for each image in the sequence. Furthermore, the technique can be used for controlling the bit rate for the entire sequence as a whole. In addition, the technique can be used for controlling the quality of the entire sequence as a whole. Accordingly, the exemplary systems and methods of this invention at least provide a technique for controlling one or more compression parameters for a series of images and/or an image sequence.  
       [0018] Aspects of the invention also relate to iteratively controlling one or more compression parameter values for a plurality of images in an image sequence.  
       [0019] Aspects of the invention also relate to iteratively controlling one or more compression global parameter values for a plurality of images in an image sequence.  
       [0020] Aspects of the invention further relate to an iterative rate control system for images.  
       [0021] Aspects of the invention further relate to an iterative distortion control system for images.  
       [0022] Aspects of the invention also relate to using an adapted compression parameter to compress subsequent images in an image sequence.  
       [0023] Aspects of the invention further relate to an iterative rate control system for compressing video sequences that adapts the value of the slope of the rate distortion curve from one frame to the next frame in the sequence.  
       [0024] Aspects of the invention further relate to an iterative rate control system where the value of the slope of the rate distortion curve is estimated based on the assumption that the quantized wavelet coefficients follow a statistical distribution.  
       [0025] Aspects of the invention further relate to an iterative rate control system where the value of the slope of the rate distortion curve is estimated based on the assumption that the quantized wavelet coefficients follow a generalized Gaussian distribution.  
       [0026] Aspects of the invention additionally relate to an iterative rate control system where the value of the slope of the rate distortion curve is estimated based on the assumption that the quantized wavelet coefficients follow a Laplacian distribution.  
       [0027] A further aspect of the invention relates to an iterative rate control system where the value of the slope of the rate distortion curve is determined by computing the actual rates after compressing the quantized wavelet coefficients.  
       [0028] Aspects of the invention further relate to an iterative rate control system where the value of the slope of the rate distortion curve is adapted based on the assumption that the slope of the rate distortion curve and the resulting total rate follow a functional relationship.  
       [0029] Theses and other features and advantages of this invention are described in, or are apparent from, the following detailed description of the embodiments. 
     
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
     [0030] The embodiments of this invention will be described in detail, with reference to the following figures, wherein:  
     [0031]FIG. 1 illustrates an exemplary compression system according to this invention;  
     [0032]FIG. 2 is a flowchart illustrating an exemplary compression method according to this invention;  
     [0033]FIG. 3 is a functional block diagram illustrating a second exemplary compression system according to this invention;  
     [0034] FIGS.  4 - 6  are plots illustrating the performance of the exemplary techniques according to this invention; and  
     [0035]FIG. 7 is a flowchart illustrating a second exemplary compression method according to this invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
     [0036] The exemplary systems and methods of this invention will be described in relation to image encoding and image decoding. However, to avoid unnecessarily obscuring the present invention, the following description omits well-known structures and devices that may be shown in block diagram form or otherwise summarized. For the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It should however be appreciated that the present invention may be practiced in a variety of ways beyond the specific details set forth herein.  
     [0037] Furthermore, while the exemplary embodiment illustrated herein show the various components of the system collocated, it is to be appreciated that the various components of this system can be located at distant portions of a distributed network, such as a LAN and/or the internet, or within a dedicated image processing system. Thus, it should be appreciated that the components of the image processing system can be combined into one or more devices or collocated on a particular node of a distributed network, such as a communications network. It will be appreciated from the following description, and for reasons of computational efficiency, that the components of the image processing system can be arranged at any location within a distributed network without affecting the operation of the system.  
     [0038] Furthermore, it should be appreciated that the various links connecting the elements can be wired or wireless links, or any combination thereof, or any other known or later developed element(s) that is capable of supplying and/or communicating data to and from the connected elements. Additionally, the term module as used herein can refer to any known or later developed hardware, software, or combination of hardware and software that is capable of performing the functionality associated with that element.  
     [0039]FIG. 1 illustrates an exemplary image compression system  100 . The image compression system  100  comprises an image receipt module  110 , a compression module  120 , an image output module  130 , a memory  140  and a compression parameter module  150 , all interconnected by links  5 . In operation, the image receipt module  110  receives a first image  10 . The first image  10  can be independent or in a sequence of images. Next, and in cooperation with the compression module  120  and the memory  140 , the first image is compressed. The parameters used for the compression by the compression module  120  are then stored in the compression parameter module  150 . The compressed first image is then output via the image output module  130 .  
     [0040] In preparation for compression of the second image in a sequence of images, the value of the one or more stored compression parameter(s) are adapted based on, for example, a metric. These parameters control, for example, the distortion or file size in the compressed image. These parameters can include, but are not limited to, quantization parameters, which may include binwidths or other quantization decisions, and truncation parameters, which may include specific truncation points or other truncation decisions. Implementation precision generally tends to be fixed by various architectures, systems, and implementation choices.  
     [0041] The metric, in general, relates to iterative technique, in that it can be used to control the quality, size, or the like, of the compressed images or sequence of images. If, for example, size is the target metric, an aim would be to introduce the least possible distortion while maintaining a target image size for each image or sequence. If, for example, quality is the target metric, a aim is to produce the smallest possible image size while maintaining a target quality for each image or sequence. Thus, for example, for image quality either or both of objective image quality metrics, such as the peak signal to noise ratio (pSNR), mean squared error (MSE), or the like, or subjective metrics, e.g., based on human visual system models or operator inspection, can be used. For image size, for example, bitrate, compression ratio, and file size can be controlling metrics.  
     [0042] Having the adapted value of the one or more compression parameters, the adapted value, in conjunction with the compression parameter module  150 , memory  140  and compression module  120 , compresses the next images in the sequence of images. The adapted compression parameters are then stored in the compression parameter module  150  and the compressed image output via the image output module  130 , in cooperation with the memory  140  and a controller (not shown). This sequence of operations continues until all or a predetermined number of images have been compressed and output.  
     [0043]FIG. 2 outlines an exemplary method of performing image compression based on an adapted value of a compression parameter(s) according to this invention. In particular, control beings on step S 100  and continues to step S 110 . In step S 110 , the first image in a sequence of images is received. Next, in step S 120 , the first image is compressed, using a compression algorithm such as JPEG, JPEG2000, or the like. Then, in step S 130 , the compression parameter(s) used for compressing the first image are stored. Control then continues to step S 140 .  
     [0044] In step S 140 , the first compressed image is output. Next, in step S 150 , the value of the compression parameter(s) that were used on the first image are adapted based on, for example, a metric, as discussed above. Next, in step S 160 , the adapted compression parameter(s) are used to compress the next image in the sequence. Then, in step S 170 , the adapted compression parameter(s) are stored. Control then continues to step S 180 .  
     [0045] In step S 180 , the compressed image is output. Next, in step S 190 , a determination is made whether all images have been compressed. If all images have been compressed, control continues to step S 200  where the control sequence ends Otherwise, control jumps back to step S 150 .  
     [0046] As discussed above, and in general, the techniques illustrated herein address controlling one or more compression parameters for an image, a series of images and/or an image sequence. To specifically illustrate an exemplary application of these general techniques, the following sections will discuss the underlying theory of optimal rate allocation of compressed images, including a description of a technique directly applicable to JPEG2000 based on Laplacian distributions.  
     [0047] Specifically, consider an image that has been decomposed into N subbands using a 2-dimensional wavelet transform. Each subband is denoted as S i , i=1, . . . , N. Quantizing each subband S i  to a rate R i  result in some amount of distortion on the final reconstructed image. This distortion will be denoted as D i (R i ). Assuming that the distortion measure is additive across all subbands, the total distortion on the final image will be:  
                 D   total     =       ∑     i   =   1     N            n   i          N   i            D   i          (     R   i     )             ,           (   1   )                       
 
     [0048] where n i  is the fraction of coefficients in subband i, and N i  is a normalization factor that accounts for the wavelet transform synthesis gain.  
     [0049] The total achieved encoding rate over all subbands is:  
             R   =       ∑     i   =   1     N            n   i            R   i     .                 (   2   )                       
 
     [0050] The exemplary optimal rate allocation technique attempts to minimize the distortion D total  subject to the constraint that the total achieved rate, R, satisfies the condition R≦R target , where R target  is a desired rate. This constraint minimization problem can be solved using the method of Lagrangian Multipliers. Using this technique, the problem is equivalent to minimizing the Lagrangian function J, given by:  
               J   =         ∑     i   =   1     N            n   i          N   i            D   i          (     R   i     )           -     λ          ∑     i   =   1     N            n   i          R   i               ,           (   3   )                       
 
     [0051] where λ is the Lagrangian Multiplier. Differentiating J with respect to R i  and setting equal to 0 leads to the following expression for λ:  
               λ   =       N   i            D   i   ′          (     R   i     )           ,       f                 o                 r                 i     =   1     ,   …              ,   N   ,           (   4   )                       
 
     [0052] where  
         D   i   ′          (     R   i     )                   
 
     [0053] is the derivative of the distortion D i (R i ) for subband S i  evaluated at the specific rate R i .  
     [0054] The value of λ is approximately the slope of the rate distortion curve at R i . Therefore, determining the optimal rate allocation can be considered equivalent to estimating or approximating the rate distortion curve for each subband, and selecting a point on the curve that equals a specific λ. There are several exemplary methods of estimating or approximating the rate distortion curve.  
     [0055] A common technique for estimating the rate distortion curve is to assume a statistical model for the quantized wavelet coefficients, and derive the rate distortion relationship based on this assumption. In this approach, both the rate and distortion values are estimated before the data is encoded. Quantization binwidths are selected based on these estimates and the quantized coefficients are encoded without any truncation. However, the rate control accuracy of this approach is heavily dependent on the data following the assumed statistical model.  
     [0056] In this exemplary embodiment, we assumed that the quantized wavelet coefficients can be modeled using a Laplacian density. Under this assumption, the rate distortion curve can be approximated by simply calculating the variance of each subband. However, it should be appreciated that while Laplacian modeling was used for this exemplary embodiment, in general Generalized Gaussians or any other statistical model could be used.  
     [0057] The rate control accuracy of this approach is heavily dependent on the data following the assumed Laplacian model. In practice, this approach may result in compressed image files that deviate 10-20% from the target size.  
     [0058] In particular, in accordance with this exemplary embodiment, the technique comprises compressing the first image in a sequence of images using the rate distortion theory described above, assuming that the quantized wavelet coefficients follow a Laplacian distribution, and saving the value of the Lagrangian Multiplier that was used. The value of the Lagrangian Multiplier is then adapted based on, for example, the difference between a target rate for the current image undergoing processing and an achieved rate for one or more prior images that have been compressed. The value of the Lagrangian Multiplier could also be adapted based on the difference between a target image quality for the current image being processed and the achieved quality for one or more prior image(s) that have been compressed. The adapted Lagrangian Multiplier is then utilized to select binwidths and to compress a next image in the sequence of images. The new adapted Lagrangian Multiplier is then saved and the next image in the sequence of images is processed.  
     [0059] More specifically, and in relation to FIG. 3, an image compression system  200  is illustrated. The image compression system  200  comprises an image receipt module  210 , a compression module  220 , and image output module  230 , a memory  240 , a Lagrangian Multiplier adaptation module  250  and a binwidth selection module  260 , all interconnected by links  5 .  
     [0060] In operation, a first image  20  in a sequence of images is received via the image receipt module  210 . In cooperation with the compression module  220  and the memory  240 , the first image in the sequence of images is compressed and the used value of the Lagrangian Multiplier stored with the cooperation of the memory  240  in the Lagrangian Multiplier adaptation module  250 . The first compressed image is then output via the image output module  230 .  
     [0061] The value of the Lagrangian Multiplier is then adapted based on a difference between a target rate and an achieved rate for the current image with the cooperation of the Lagrangian Multiplier adaptation module  250  and memory  240 . However, as discussed above, the Lagrangian Multiplier could also be adapted based on a difference between a target quality and an achieved quality, or combination thereof, for the current image. This adapted Lagrangian Multiplier is then used to select binwidths and compress the next image in the sequence by the compression module  220 , with the cooperation of the image receipt module  210 , the binwidth selection module  260  and the memory  240 . The adapted Lagrangian Multiplier is then stored in the Lagrangian Multiplier adaptation module  250  and a determination made whether all images in the sequences of images have been compressed. If all images have been compressed, the processing is done. However, if additional images exist, the process continues until all images, or a predetermined number of images, have been compressed.  
     [0062] An important aspect of this technique is the adaptation step where the Lagrangian Multiplier is adapted based on the difference between at least one of the target rate and an achieved rate, and the target quality and an achieved quality. The functional relationship between the Lagrangian Multiplier and R total  must be understood to arrive at a proper technique to adapt the Lagrangian Multiplier.  
     [0063]FIG. 4 illustrates the relationship between the Lagrangian Multiplier (λ) and the achieved R total , for an exemplary single image, compressed using the Laplacian modeling technique discussed above at a plurality of different compression ratios. This exemplary relationship is specific to the data being processed and the exact exemplary setup that was used. Thus, it should be fully appreciated that this exemplary relationship is merely illustrative and does not limit the scope of this invention.  
     [0064] For this exemplary single image, note that the relationship between the Lagrangian Multiplier and R total  is approximately linear, and by plotting the same curve for a plurality of images, comparable results can be achieved.  
     [0065] Furthermore, it can be illustrated that for an Independent Identically Distributed sequence quantized using a Scalar Quantizer, as is used in JPEG2000, the relationship between the Lagrangian Multiplier and R total  is very close to being linear, especially at higher bit rates. Given the approximately linear relationship between the Lagrangian Multiplier and R total , the following adaptive procedure can be used to modify the Lagrangian Multiplier from frame to frame within the sequence.  
     [0066] Specifically, the first image is compressed and R achieved  designated as the compressed image size and R target  designated as the target compressed image size. The rate control error can then be determined in accordance with:  
               RC   error     =           R   achieved     -     R   target         R   target       .             (   5   )                       
 
     [0067] Of course, a comparable equation can be written for the quality control error.  
     [0068] Then, the value of the Lagrangian Multiplier is adapted based a percent based on this error in accordance with: 
     λ new =λ previous   *ƒ ( RC   error ),   (6) 
     [0069] where ƒ is a function representing quality or rate difference that approximates the relationship between the Lagrangian Multiplier and R total . The next image in the sequence is then compressed using λ new , at which time the process continues back to determining the next rate control or quality control error.  
     [0070] Having experimented with different functions to arrive at the best approximation, the function ƒ was initially estimated by fitting a line to a curve similar to the one illustrated in FIG. 4, which was calculated for a single image in the sequence. This technique works well for a sequence of similar images. However, once the images change significantly, as may happen when the scene changes in a video sequence, the estimate becomes less accurate, causing the rate control to be less accurate.  
     [0071] To compensate for this affect, another approach could be to update the estimate of ƒ every N frames in the sequence.  
     [0072] The performance of the above exemplary iterative rate control procedure was analyzed on real video sequences, by analyzing the quality of the compressed images and the rate control accuracy. However, it should be appreciated that performance figures will vary based on, for example, the data being processed and the exact configuration, and the following performance figures are to be considered merely illustrative and the techniques of this invention not limited thereto.  
     [0073] In particular, the exemplary embodiments discussed above was applied to a series of exemplary video images. All of the results discussed below were determined by compressing high action video sequences. These sequences are difficult to compress as they have a large amount of detail in the scene and frequent scene changes. In particular, the exemplary performance was analyzed based on a comparison between the resulting compressed image quality and rate control accuracy.  
     [0074] Specifically, the exemplary results presented below were created by compressing a 2 minute 25 second video sequence. Each image in the 30 frames/second sequence was 320 by 240 pixels, 3 channel, 24 bit color. The original uncompressed sequence comprised 4,303 images, for a total of 945 MBytes, which is equivalent to a data rate of 6.59 MBytes/sec. This sequence will be referred to below as Sequence #1. The exemplary results presented in the following sections for Sequence #1 are representative of the results for all the sequences tested.  
     [0075] Analyzing the rate control accuracy of the proposed iterative approach, Sequence #1 was compressed using the proposed iterative rate control procedure at target compression ratios ranging from 10 to 1 to 80 to 1. The rate control accuracy results are presented below in Table 1. Note that the achieved compression ratio, or bitrate, is within 1% of the target rate for all cases.  
               TABLE 1                          Rate control accuracy: Results of compressing Sequence #1       at different compression ratios.                             Target                   Compression   Target Bitrate   Achieved   Achieved Bitrate       Ratio   (KBytes/sec)   Compression Ratio   (KBytes/sec)                                     10   675.0   10.0   675.0       15   450.0   15.1   447.0       20   227.5   20.1   335.8       25   270.0   25.2   267.9       30   225.0   30.3   222.8       40   168.8   40.4   167.1       50   135.0   50.5   133.7       60   112.5   60.6   111.4       70   96.4   70.7   95.5       80   84.4   80.8   83.5                  
 
     [0076] For additional insight, FIG. 5 compares the achieved compressed image size for all 4,303 images in the sequence, for the 20 to 1 compression ratio case. The target rate for each image is 11.3 KBytes. Note that the rate control technique was fairly accurate, but deviates from this target rate on certain images. This is usually caused by a change in the scene within the sequence. In the cases where the scene changes from a relatively simple scene to a more complicated scene that is more difficult to compress, the resulting compressed image size could jump above the target rate. Conversely, in cases where the scene changes to a simpler scene, the image size falls below the target rate. Note however that the adaptive nature of the algorithm woks well and the compressed image size converges quickly back to the desired size. As a result, the overall compressed sequence size is very close to the desired target size, as illustrated in Table 1.  
     [0077] In relation to the image quality, the exemplary sequences were compressed at 20 to 1 as described in the previous section and each image in the sequence was then decompressed and compared to the corresponding original image in the sequence. FIG. 6 illustrates the exemplary resulting pSNR of each of the 4,303 images in the sequence. The pSNR values shown are actually the average of the pSNRs for the three color channels. Note that the quality was consistently high, usually above 35 dB. The average pSNR for this compressed sequence is 42.3 dB.  
     [0078] The exemplary embodiment discussed herein address a computationally efficient iterative rate control procedure for compressing video sequences using JPEG2000. The proposed technique is targeted, for example, at applications where real-time or near real-time encoding of the video sequence is necessary, however is not limited thereto and can be applied to any image, image type or video sequence. An exemplary aspect of the general technique provides accurate rate control for an image sequence as a whole.  
     [0079]FIG. 7 illustrates an exemplary method of compressing images in a sequence using rate distortion optimization by data modeling based on Laplacian distributions. In particular, control beings in step S 900  and continues to step S 910 . In step S 910 , a first image in a sequence of images is received. Next, in step S 920 , the first image is compressed. Then, in step S 930 , the used value of the Lagrangian Multiplier is stored. Control then continues to step S 940 .  
     [0080] In step S 940 , the first compressed image is output. Next, in step S 950 , the value of the Lagrangian Multiplier is adapted based on a difference between a target rate or target quality and the achieved rate for the current image. Then, in step S 960 , this adapted Lagrangian Multiplier value is used to select the binwidths and compress the next image in the sequence of images. Control then continues to step S 970 .  
     [0081] In step S 970 , the adapted value of the Lagrangian Multiplier is saved. Next, in step S 980 , the compressed image is output and control continues to step S 990 . Then, in step S 990 , a determination is made whether all images have been compressed. If all images have been compressed, control continues to step S 1000  where the control sequence ends. Otherwise, control jumps back to step S 950 .  
     [0082] The above-described systems and methods can be implemented on an image processing device, an encoding/decoding device, or the like, or on a separate programmed general purpose computer having image processing capabilities. Additionally, the systems and methods of this invention can be implemented on a special purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit element(s), an ASIC or other integrated circuit, a digital signal processor, a hard-wired electronic or logic circuit such as discrete element circuit, a programmable logic device such as PLD, PLA, FPGA, PAL, or the like. In general, any device capable of implementing a state machine that is in turn capable of implementing the flowcharts illustrated herein can be used to implement the image processing system according to this invention.  
     [0083] Furthermore, the disclosed methods may be readily implemented in software using object or object-oriented software development environments that provide portable source code that can be used on a variety of computer or workstation platforms. Alternatively, the disclosed system may be implemented partially or fully in hardware using standard logic circuits or a VLSI design. Whether software or hardware is used to implement the systems in accordance with this invention is dependent on the speed and/or efficiency requirements of the system, the particular function, and the particular software or hardware systems or microprocessor or microcomputer systems being utilized. The systems and methods illustrated herein however can be readily implemented in hardware and/or software using any known or later developed systems or structures, devices and/or software by those of ordinary skill in the applicable art from the functional description provided herein and with a general basic knowledge of the computer and data encoding/decoding arts.  
     [0084] Moreover, the disclosed methods may be readily implemented in software executed on programmed general purpose computer, a special purpose computer, a microprocessor, or the like. In these instances, the systems and methods of this invention can be implemented as program embedded on personal computer such as JAVA® or CGI script, as a resource residing on a server or graphics workstation, as a routine embedded in a dedicated encoding/decoding system, as a plug-in, or the like. The system can also be implemented by physically incorporating the system and method into a software and/or hardware system, such as the hardware and software systems of an image processor.  
     [0085] It is, therefore, apparent that there has been provided, in accordance with the present invention, systems and methods for iterative coding. While this invention has been described in conjunction with a number of embodiments, it is evident that many alternatives, modifications and variations would be or are apparent to those of ordinary skill in the applicable arts. Accordingly, it is intended to embrace all such alternatives, modifications, equivalents and variations that are within the spirit and scope of this invention.