|
In computing, JPEG (pronounced JAY-peg; IPA: ) is a commonly used standard method of compression for photographic images. The name JPEG stands for Joint Photographic Experts Group, the name of the joint ISO/CCITT committee which created the standard. The group was organized in 1986, issuing a standard in 1992 which was approved in 1994 as ISO 10918-1. JPEG should not be confused with MPEG, the Moving Picture Experts Group, which produces compression schemes for motion pictures. JPEG provides for lossy compression of images (although there are variations on the standard baseline JPEG which are lossless). The file format which employs this compression is commonly also called JPEG; the most common file extension for this format is .jpg, though .jpeg, .jfif, .JPG, and .JPE are also used. JPEG itself specifies only how an image is transformed into a stream of bytes, not how those bytes are encapsulated in any particular storage medium. A further standard created by the Independent JPEG Group, called JFIF (JPEG File Interchange Format), specifies how to produce a file suitable for computer storage and transmission (such as over the Internet) from a JPEG stream. In common usage, when one speaks of a "JPEG file" the actual file is generally found to be JFIF, or sometimes an Exif JPEG file. There are, however, other JPEG-based file formats, such as JNG. Additionally, the TIFF format can carry JPEG data. JPEG/JFIF is the format most used for storing and transmitting photographs on the World Wide Web. For this application, it is preferred to formats such as GIF, which has a limit of 256 distinct colors that is insufficient for colour photographs, and PNG, which produces much larger image files for this type of image. The compression algorithm is not as well suited for line drawings and other textual or iconic graphics, and thus the PNG and GIF formats are preferred for these types of images. The MIME media type for JPEG is image/jpeg (defined in RFC 1341).
Encoding Many of the options in the JPEG standard are not commonly used. Here is a brief description of one of the more common methods of encoding when applied to an input that has 24 bits per pixel (eight each of red, green, and blue). This particular option is a lossy data compression method. Color space transformation First, the image is converted from RGB into a different color space called YCbCr. This is the same as the color space used by PAL, MAC and Digital color television transmission but not by NTSC which uses IQ, a totally different color space based on different axes and asymmetrical bandwidth. Downsampling The human eye can see more detail in the Y component than in Cb and Cr. Using this knowledge, encoders can be designed to compress images more efficiently. The above transformation enables the next step, which is to reduce the Cb and Cr components (called "downsampling" or "chroma subsampling"). The ratios at which the downsampling can be done on JPEG are 4:4:4 (no downsampling), 4:2:2 (reduce by factor of 2 in horizontal direction), and most commonly 4:2:0 (reduce by factor of 2 in horizontal and vertical directions). For the rest of the compression process, Y, Cb and Cr are processed separately and in a very similar manner. Discrete cosine transform
Quantization The human eye is good at seeing small differences in brightness over a relatively large area, but not so good at distinguishing the exact strength of a high frequency brightness variation. This fact allows one to get away with greatly reducing the amount of information in the high frequency components. This is done by simply dividing each component in the frequency domain by a constant for that component, and then rounding to the nearest integer. This is the main lossy operation in the whole process. As a result of this, it is typically the case that many of the higher frequency components are rounded to zero, and many of the rest become small positive or negative numbers. A common quantization matrix is: egin 16 & 11 & 10 & 16 & 24 & 40 & 51 & 61 \ 12 & 12 & 14 & 19 & 26 & 58 & 60 & 55 \ 14 & 13 & 16 & 24 & 40 & 57 & 69 & 56 \ 14 & 17 & 22 & 29 & 51 & 87 & 80 & 62 \ 18 & 22 & 37 & 56 & 68 & 109 & 103 & 77 \ 24 & 35 & 55 & 64 & 81 & 104 & 113 & 92 \ 49 & 64 & 78 & 87 & 103 & 121 & 120 & 101 \ 72 & 92 & 95 & 98 & 112 & 100 & 103 & 99 end Using this quantization matrix with the DCT coefficient matrix from above results in: egin -26 & -3 & -6 & 2 & 2 & -1 & 0 & 0 \ 0 & -2 & -4 & 1 & 1 & 0 & 0 & 0 \ -3 & 1 & 5 & -1 & -1 & 0 & 0 & 0 \ -4 & 1 & 2 & -1 & 0 & 0 & 0 & 0 \ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 end For example, using −415 (the DC coefficient) and rounding to the nearest integer mathrm left( rac ight) mathrm left( -25.9375 ight) -26 Entropy coding Entropy coding is a special form of lossless data compression. It involves arranging the image components in a "zigzag" order employing run-length encoding (RLE) algorithm that groups similar frequencies together, inserting length coding zeros, and then using Huffman coding on what is left. The JPEG standard also allows, but does not require, the use of arithmetic coding which is mathematically superior to Huffman coding. However, this feature is rarely used as it is covered by patents and because it is much slower to encode and decode compared to Huffman coding. Arithmetic coding typically makes files about 5% smaller. The zig-zag sequence for the above quantized coefficients would be: −26, −3, 0, −3, −2, −6, 2, −4, 1, −4, 1, 1, 5, 1, 2, −1, 1, −1, 2, 0, 0, 0, 0, 0, −1, −1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 JPEG has a special Huffman code word for ending the sequence prematurely when the remaining coefficients are zero. Using this special code word: "EOB", the sequence becomes: −26, −3, 0, −3, −2, −6, 2, −4, 1, −4, 1, 1, 5, 1, 2, −1, 1, −1, 2, 0, 0, 0, 0, 0, −1, −1, EOB JPEG's other code words represent combinations of (a) the number of significant bits of a coefficient, including sign, and (b) the number of consecutive zero coefficients that follow it. (Once you know how many bits to expect, it takes 1 bit to represent the choices , 2 bits to represent the choices , and so forth.) In our example block, most of the quantized coefficients are small numbers that are not followed immediately by a zero coefficient. These more-frequent cases will be represented by shorter code words. The JPEG standard provides general-purpose huffman tables; encoders may also choose to generate huffman tables optimized for the actual frequency distributions in images being encoded. Compression ratio and artifacts
Decoding Decoding to display the image consists of doing all the above in reverse. Taking the DCT coefficient matrix (after adding the difference of the DC coefficient back in) egin -26 & -3 & -6 & 2 & 2 & -1 & 0 & 0 \ 0 & -2 & -4 & 1 & 1 & 0 & 0 & 0 \ -3 & 1 & 5 & -1 & -1 & 0 & 0 & 0 \ -4 & 1 & 2 & -1 & 0 & 0 & 0 & 0 \ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 end and multiplying it by the quantization matrix from above results in egin -416 & -33 & -60 & 32 & 48 & -40 & 0 & 0 \ 0 & -24 & -56 & 19 & 26 & 0 & 0 & 0 \ -42 & 13 & 80 & -24 & -40 & 0 & 0 & 0 \ -56 & 17 & 44 & -29 & 0 & 0 & 0 & 0 \ 18 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 end which closely resembles the original DCT coefficient matrix for the top-left portion. Taking the inverse DCT (type-III DCT) results in an image with values (still shifted down by 128) egin -68 & -65 & -73 & -70 & -58 & -67 & -70 & -48 \ -70 & -72 & -72 & -45 & -20 & -40 & -65 & -57 \ -68 & -76 & -66 & -15 & 22 & -12 & -58 & -61 \ -62 & -72 & -60 & -6 & 28 & -12 & -59 & -56 \ -59 & -66 & -63 & -28 & -8 & -42 & -69 & -52 \ -60 & -60 & -67 & -60 & -50 & -68 & -75 & -50 \ -54 & -46 & -61 & -74 & -65 & -64 & -63 & -45 \ -45 & -32 & -51 & -72 & -58 & -45 & -45 & -39 end and adding 128 to each entry egin 60 & 63 & 55 & 58 & 70 & 61 & 58 & 80 \ 58 & 56 & 56 & 83 & 108 & 88 & 63 & 71 \ 60 & 52 & 62 & 113 & 150 & 116 & 70 & 67 \ 66 & 56 & 68 & 122 & 156 & 116 & 69 & 72 \ 69 & 62 & 65 & 100 & 120 & 86 & 59 & 76 \ 68 & 68 & 61 & 68 & 78 & 60 & 53 & 78 \ 74 & 82 & 67 & 54 & 63 & 64 & 65 & 83 \ 83 & 96 & 77 & 56 & 70 & 83 & 83 & 89 end This is the uncompressed subimage and can be compared to the original subimage (also see images to the right) by taking the difference (original - uncompressed) results in error values egin -8 & -8 & 6 & 8 & 0 & 0 & 6 & -7 \ 5 & 3 & -1 & 7 & 1 & -3 & 6 & 1 \ 2 & 7 & 6 & 0 & -6 & -12 & -4 & 6 \ -3 & 2 & 3 & 0 & -2 & -10 & 1 & -3 \ -2 & -1 & 3 & 4 & 6 & 2 & 9 & -6 \ 11 & -3 & -1 & 2 & -1 & 8 & 5 & -3 \ 11 & -11 & -3 & 5 & -8 & -3 & 0 & 0 \ 4 & -17 & -8 & 12 & -5 & -7 & -5 & 5 end with an average absolute error of about 5 values per pixels (i.e., ). The error is most noticeable in the bottom-left corner where the bottom-left pixel becomes darker than the pixel to its immediate right. Color profile Many JPEG files embed an ICC color profile (color space). Commonly used color profiles are sRGB color space and Adobe RGB color space. Because these color spaces use a non-linear transformation, the dynamic range of an 8-bit JPEG file is about 11 stops. Usage JPEG is at its best on photographs and paintings of realistic scenes with smooth variations of tone and color. In this case it usually performs much better than purely lossless methods while still giving a good looking image. In fact, it will usually produce much better results for such images than, for example, GIF, which can be lossless as long as the image contains 256 or fewer unique colors but requires severe quantization for full-color images. Some operations on JPEG images, such as rotation by multiples of 90°, can be performed losslessly as long as the image size is a multiple of eight pixels in both directions. One program which can do this is the jpegtran utility which comes with the reference implementation. Photographs JPEG compression artifacts blend well into photographs with detailed non-uniform textures, allowing higher compression ratios. NOTE: The above images are not IEEE / CCIR / EBU test images, and the encoder settings are not specified or available. The mid-quality photo uses only one sixth the storage space but has little noticeable loss of detail or visible artifacts. However, once a certain threshold of compression is passed, compressed images show increasingly visible defects. See the article on rate distortion theory for a mathematical explanation of this threshold effect. Medical Imaging: JPEGs 12-bit mode There are many medical imaging systems that create and process 12-bit JPEG images. The 12-bit JPEG format has been part of the JPEG specification for some time, but very few consumer programs (including web browsers) support this rarely used JPEG format. Potential patent issues In 2002 Forgent Networks asserted that it owned and would enforce patent rights on the JPEG technology, arising from a patent that had been filed on October 27, 1986, and granted on October 6, 1987 (). The announcement created a furor reminiscent of Unisys' attempts to assert its rights over the GIF image compression standard. The JPEG committee investigated the patent claims in 2002 and were of the opinion that they were invalidated by prior art. Others also concluded that Forgent did not have a patent that covered JPEG. Nevertheless, between 2002 and 2004 Forgent was able to obtain about US$90 million by licensing their patent to some 30 companies. In April 2004, Forgent sued 31 other companies to enforce further license payments. In July of the same year, a consortium of 21 large computer companies filed a countersuit, with the goal of invalidating the patent. Surprisingly, in contrast to the other major computer companies such as Sony and Philips, Microsoft launched a major lawsuit against Forgent. In February 2006, the United States Patent and Trademark Office agreed to re-examine Forgent's JPEG patent at the request of the Public Patent Foundation. On May 26, 2006 the USPTO found the patent invalid based on prior art. The USPTO also found that Forgent knew about the prior art, and did not tell the Patent Office, making any appeal to reinstate the patent highly unlikely to succeed. Forgent also possesses a similar patent granted by the European Patent Office in 1994, though it is unclear how enforceable it is. As of October 6, 2006, the U.S. patent's 20-year term appears to have expired, and in November 2006, Forgent agreed to abandon enforcement of patent claims against use of the JPEG standard. The JPEG committee has as one of its explicit goals that their standards (in particular their baseline methods) be implementable without payment of license fees, and they have secured appropriate license rights for their upcoming JPEG 2000 standard from over 20 large organizations. Standards See also | |||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
![]() |
|
| |