, JPEG
(1) technical support
GIF NLP
GIF (Graphics Interchange Format; animated cross-border format) is the specification that CompuServe uses to define a general color image (color Raster image: under the constraints of the original creator and the user's hardware, the GIF policy defines the transfer between the online images and electronic images? #092; The Lempel-Ziv linear regression algorithm is used to show the variation duration, this method replaces the bitwise metadata (pattern) of the original data with a variable length. What is this algorithm? #092; it is processed by using the metadata table created in the raw data format. Each new metadata has been written to this metadata table, and then in the metadata stream? #092; replace the metadata with the index value.
In this way, the image can be used as an example to describe and show the image, GIF provides an efficient one-pass processing method. On April 9, gif87a was finalized. The relevant standards and materials can be tested online.
Because GIF resources can contain multiple images, This section describes how to handle and display GIF images, the gif89a specification supports the appearance of mobile shame circles through multiple image display controls (see the web hosting http://members.aol.com/royale/gifanim.htm ). Microsoft GIF Animator is a GIF tool that can be downloaded without any need. It is used to assist Image Combination tools in Microsoft FrontPage 2000, microsoft gifanimator1.0 is a simple program, but almost all GIF animation functions are provided.
The GIF animation algorithm is a cutting-edge technology developed by the Unisys company. In 1995, Unisys began to collect profits from providers that use the gif lzw transfer method in their products, however, local users, local servers, and non-profit organizations are not included. However, in order to avoid such benefits, as a result, a new GIF replacement solution for PNG (portable network graphic) has been developed. For example, Microsoft can use it in products that require manual use? #092; the PNG architecture is used (please refer to the webpage http://members.aol.com/royalef/gifanim.htm ).
Finally, the author describes when the g1f architecture is used and when the JPEG architecture is used for processing the image. Generally, for the application of pornographic or gray-colored images such as general photos, the use of JPEG should be a good choice; however, for some images that contain only a few numbers of colors or only 2 to 16 gray colors, such as a simple cartoon or a simple cartoon, the watermark method of JPEG is not applicable, but GIF does not exist on the images that are not properly handled by JPEG. Although GIF uses highly precise images for these images, the original images can still be clearly defined, however, such plain pictures do not usually exist in actual photos.
(2) Copyright and Solution
JPEG is a standard for color or gray-colored parallel coloring for linear regression and decoding. this criterion is set by ISO/IEC JTC1/sc29 WG10. JPEG images can be used in a variety of photo images, such as research images, color electronic devices, image data sources, table Publishing Systems, multi-media and photo formats.. The most basic concept of JPEG is to convert a region of an image from an empty domain to a transfer rate domain. Generally, the amount of images in the higher half is much smaller than that in the lower half. however, human eyes are not sensitive to parts of the sky, therefore, the high aspect can be represented by a large number of processing operations to generate a rough image. As a result, a rough image requires a small bit, therefore, the amount of information that can be stored or accessed can be greatly reduced, and the images after the operation can be accepted by the human sensory experience.
The preceding section briefly describes the entire processing process of JPEG. First, the image is divided into multiple 8x8 pixels, these regions further scatter the FDCT; Forward discrete cosine transform from the empty domain into the response rate domain, and then the three values (2D) the DCT numeric value is then quantified by 8x8 quantization moment, because the original value cannot be completely restored after quantification. this quantitative processing process may cause some distortion. The DCT ratio of the higher part is smaller than that of the lower part, and the human stress is less sensitive to the higher part than the lower part, therefore, during the quantitative step, you can perform greater quantitative processing on the higher part than the lower part, this also produces many zero values for the high part of the 2D DCT regression. After quantification, the 2D DCT regression data is transformed into a linear (LD) regression column by zig-zag scan, and then the first defined Huffman (Hoffman) the linear regression table is used to compare the values of this parameter column. The result of oblique profiling makes the zero values of a high part of the parameter appear together, with the help of Huffman regression, we can get a better failover rate. the Huffman Compaction Method is a non-distorted compaction method, and the compression rate can be up to two times, as for the previous quantitative processing, we can increase the response rate to a higher ratio. In the final processing step, the JPEG encoding method is used to generate a JPEG compression case, so that the compression case can be resolved as a jpeg. In fact, the process of JPEG decoding has been described as follows, but the process of processing has been reversed, first, decode the JPEG encoding method. Then? #092; using the Huffman table as the Huffman solution produces a batch column of data values for each region. then, a reverse oblique profiling (1 nversed zig-zag scan) is used to merge a batch column into a binary regression column, then, the original quantization table is used as the solution to quantify the processing and re-generate a binary DCT regression data column. finally, use the inverse argument to scatter the string transform (IDCT: inverse DCT) to retrieve the empty domain and re-establish the region.
Because different channels and memory storage channels are used, JPEG provides two different memory encoding methods.
1. sequential mode ):
In the sequential mode, images are scanned from left to right, and the images are scanned from top to bottom. This sequential mode is simple and efficient, most of the applications are suitable for image processing in a single way, that is, the sequential sort mode of all workers. This method provides an 8-bit resolution for each incoming item.
2. Progress mode ):
The establishment of an image is not to mention the use of blurred low-latency images to clear high-resolution images (that is, the selection method ), or the method from the maximum valid bitwise to the minimum valid bitwise (that is, the linear approximation method), the progressive pattern of the linear regression is used for multi-dimensional image processing. For example, the video images are encoded in DCT to the sampling rate, while some linear images can be obtained immediately from the DCT data, because only one line of DCT is performed, therefore, in this way, there is only one blank resolution. The progressive mode is useful for image embedding on restricted channels. Users can first see rough images and decide whether to use the most appropriate images. For example, a customer who wants to purchase real estate products can buy products in this mode, when you see a rough image of a product that you don't like, you can immediately jump over to save time without looking at the latest clear image. After the progressive mode is used, the blurred low-intensity image is displayed, and then the clear high-intensity image is displayed. This sort of attention method satisfies the high requirements of many application programming programs for presentation, computation, and resolution (such as 12-bit RMB, the algorithm provides 5-10% better disaster recovery than the Huffman algorithm. In addition, this mode also supports sequential and eight-bit resolution.
3. hierarchical mode ):
The linear regression mode first describes low-altitude images, then, this low-resolution image is used as the basis for embedding the difference between a high-resolution image and a low-resolution image to obtain a high-resolution hybrid image. As shown in article 3 and article 7, the same image can be used in different resolution encoding modes, the Zookeeper mode allows you to configure different types of servers with different capacities at the same time, so that even low-definition devices can parse this multi-resolution image to get the best products they can offer? #124 ;. In comparison. the progressive mode can only be used to reconstruct and reproduce images at a single resolution. The progressive mode ensures better resolution and resolution for different devices.
4. distortion-free mode ):
The undistorted representation indicates that the original image can be restored in this mode. In order to obtain the same image as the original image during reconstruction, DCT is not used in the non-distortion mode, therefore, the distortion-free mode is much lower than the distortion method that uses DCT for processing. This mode is generally used only in scenarios that require no distortion for images, such as important hidden images, the number of pixels ranges from two to sixteen. In addition, this processing mode also provides support for sequential processing. Users can choose the huffmar processing mode or the calculation method.
(3) brightness and color
JPEG uses different colors as independent components, so each component can be processed as a gray image, if there is no correlation between the color components. this allows you to better manage the effect of failover. Therefore, you can set failover (R), Failover (G), and Failover ( According to the following formula, components of brightness (luminance) (Y) and chrominance (CB and Cr) are equal to components that will make each component irrelevant to each other:
Y = 0.299r + 0.587G + 0.144b
CB =-0.169r-0.331G + 0.500b
Cr = 0.500r-0.419G-0.081b
Although JPEG does not specify the color space, most JPEG applications do not use the RGB representation. in contrast, YCbCr is used for representation. In addition, the sensitivity ratio of human stress system to color is lower than that of linear system, therefore, the YCbCr color indicates that subsampling can be performed again to reduce the amount of data, which is also widely used in YCbCr. Another important reason. As shown in the following figure, the 4:4 format represents the original complete information of YCbCr. the color representation can be used to represent the table again in the format of or. The original information is reduced to 2/3 in the format, the format can reduce the number of users to half. Although there is less information in the color, it is just a small difference for the human experience.
(4) scatter the string
In order to explain the effect of discrete string transform (DCT: discrete cosine transform, we will use the brightness information of a small area (8x8 pixels) taken from one region and convert it into an empty rate field, after that, the number of pixels in each pixel value is reduced to 128, so that each pixel can be consistent with the 8-bit yuan in the DCT algorithm? #092; Calculate "invalid. The number of second-digit (2D) records after the last modification is as follows. The second region of this 2D correlation rate is represented by FX, while the second region is represented by FY; the upper left corner indicates the value of DC-80. The lower part includes most of the energy of the region. the high aspect that is not sensitive to human eyes usually contains low energy.
-80 4-6 6 2-2-2 0
24-8 8 12 0 0 2
10-4 0-12-4 4 4-2
8 0-2-6 10 4-2 0
-2 8 6-4 0-2 0 0
12 0 6 0 0 0-2-2
0 8 0-4-2 0 0
As a result, the inverse operation is performed based on Inverse DCT, And the pixel point value in the sampling rate field is converted into the value of the pixel point in the blank domain.
(5) Quantification
The Quantization moment proposed by JPEG is listed below, in order to process and display the image of 30 720x576 pixel faces per second.
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
72 92 95 98 112 100 103 99
The purpose of this moment is to quantify the luminance aspect, and to process the chrominance aspect. In the aspect of brightness quantizing, divide each 2D DCT numeric value by the corresponding quantization moment numeric value, and obtain the following quantified DCT numeric value after:
-5 0 0 0 0 0 0 0
2-1 1 1 0 0 0
1 0 0-1 0 0 0 0
1 0 0 0 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
For example, if the value of DC-80 is divided by the corresponding value 16, the quantified value is-5. Pay attention to the fact that many zeros are generated in the higher part of the region after quantification. representative systems are not sensitive to the higher part. The four-digit five-digit part cannot be re-displayed during the resolution, so this step will be a distorted process.
(6) NLP
After quantification, only the low-cost parts have a non-zero value. In order to reduce the memory space and the size of the traffic capacity, the zero value may be put together so that the processing time can be expressed as zero rather than zero. Therefore? #092; perform oblique profiling (zigzag scan) in the following method ), this oblique profiling method is used to draw a picture in the direction of an increase in the percentage of null values, so that many zeros can be concatenated together, to the original expectations. The following section describes the case of oblique profiling of the quantified data, and oblique profiling of the data section of the AC, that is to say, if you skip the DC data area in the upper left corner, the area of the DC data area will be further illustrated in the following way.
(7) Text Stream length and the Hoffmann Embedding Method
After the profiling is completed, the next job will take place? #092; Use the Run Length and Huffman regression methods to optimize the amount of bits. First, obtain the number of AC segments in the sequence from the oblique line. In the preceding example, the following data columns are obtained:, 1,-, 0, 0, -1, 0, 0,-1 ,.., 0, and the subsequent stream length or variable length will be used to lower the required bitwise data for this sequence, the numeric value is constructed by the numeric value of zero value according to the number of non-zero value, and the following sequence format is obtained:
(Number of zero values in a word stream, number of the next non-zero value)
Therefore, the preceding example can be merged into: (), (), (0,-1 ), (0, 1), (2, 1), (3,-1), end of block (eob) to represent; then, the number of elements that represent the growth of the word stream is less than that of Hoffmann. The Hoffman comment is calculated to make the most common comment expressed in the least number of bits, JPEG provides a table to address the requirements of DC and AC's flux and brightness. In addition, when the intensity mode or distortion-free mode is used, which of the following statements can be used for calculation? #092; used to replace the Hoffmann orders table.