Matrix multiplication is not commutative If A and B are matrices, we cannot say that AB = BA

Printing QR Code In Visual Studio .NETUsing Barcode generator for VS .NET Control to generate, create QR Code ISO/IEC18004 image in .NET framework applications.

Matrix multiplication is associative If A, B, and C are matrices, then

Decode Denso QR Bar Code In .NETUsing Barcode reader for .NET framework Control to read, scan read, scan image in VS .NET applications.

(AB)C = A(BC)

Drawing Barcode In VS .NETUsing Barcode generator for .NET framework Control to generate, create bar code image in .NET applications.

The matrix transpose operation is denoted by AT If B = AT, then for every element in B, BNM = AMN as in the following example

Recognizing Bar Code In Visual Studio .NETUsing Barcode decoder for Visual Studio .NET Control to read, scan read, scan image in .NET framework applications.

A matrix is multiplied by a number by multiplying each clement in the matrix by the number

Encoding QR-Code In C#Using Barcode encoder for Visual Studio .NET Control to generate, create Denso QR Bar Code image in VS .NET applications.

wwwvsoftsnet

QR Code Encoder In VS .NETUsing Barcode drawer for ASP.NET Control to generate, create Quick Response Code image in ASP.NET applications.

oldroad

QR Code Creator In Visual Basic .NETUsing Barcode encoder for Visual Studio .NET Control to generate, create QR Code 2d barcode image in .NET framework applications.

Using the 2-D Forward DCT

Draw EAN / UCC - 13 In VS .NETUsing Barcode creation for .NET Control to generate, create EAN 128 image in Visual Studio .NET applications.

That is all the linear algebra we need to get through the rest of the chapter However, before we move on I would like to point out an interesting property of the DCT matrix M shown previously M is what is known as an orthogonal matrix If you take the dot product of any row or column with itself the result is 1 If you take the dot product of any row with any other row or any column and any other column the result is 0 If you multiply M by its transpose you get

Create EAN / UCC - 13 In .NETUsing Barcode creation for VS .NET Control to generate, create European Article Number 13 image in VS .NET applications.

MMT =

DataMatrix Encoder In .NETUsing Barcode generator for .NET Control to generate, create Data Matrix ECC200 image in Visual Studio .NET applications.

Any square matrix with values of 1 on the diagonal running from the upper left to the bottom right and values of 0 everywhere else is known as an identity matrix Multiplying any matrix A by the identity matrix results in A

Code 39 Encoder In .NETUsing Barcode creation for .NET framework Control to generate, create Code 39 Full ASCII image in .NET applications.

Using the 2-D Forward DCT Now we return to the image IRENEJPG to show what happens to an image using the 2-dimensional DCT Figure 76 contains an 8 8 block of Y component samples from the area around Irene's eye and the 2-dimensional DCT coefficients generated from them In the figure the larger coefficient values are concentrated in the upper left corner The trend is that the farther you get from the DC coefficient in the upper left corner, the smaller the values become The DC coefficient is nearly three times as large as any of the AC coefficients

Bookland EAN Creation In Visual Studio .NETUsing Barcode generator for .NET framework Control to generate, create ISBN image in VS .NET applications.

Figure 76 Sample Data Unit from IRENEJPG and Its DCT Coefficients

Paint Bar Code In JavaUsing Barcode creation for Java Control to generate, create barcode image in Java applications.

Y Component Samples from IRENEBMP

Data Matrix ECC200 Encoder In .NETUsing Barcode drawer for ASP.NET Control to generate, create ECC200 image in ASP.NET applications.

58 62 48 59 98 115 99

Scanning Code 128C In .NET FrameworkUsing Barcode decoder for Visual Studio .NET Control to read, scan read, scan image in .NET applications.

45 52 47

Barcode Printer In JavaUsing Barcode generator for Java Control to generate, create barcode image in Java applications.

78 138 160 137 95

Encoding UCC - 12 In JavaUsing Barcode generator for Java Control to generate, create UCC - 12 image in Java applications.

29 42 49 49 116

Recognizing European Article Number 13 In VS .NETUsing Barcode recognizer for VS .NET Control to read, scan read, scan image in .NET applications.

143 127 82

Generating Bar Code In .NET FrameworkUsing Barcode creation for ASP.NET Control to generate, create bar code image in ASP.NET applications.

27 41 44 32 78 97 84 67

Code39 Generation In .NET FrameworkUsing Barcode encoder for ASP.NET Control to generate, create USS Code 39 image in ASP.NET applications.

24 38 40 28 39 48 42 40

19 30 36 31 24 27 25 25

17 22 31 31 25 24 24 25

20 18 25 31 27

20 19 -7 2

DCT Coefficients

-603 -108 -42 56 -33 -16 0 8

203 -93 -20 69 -21 -14 -5 5

11 10 -6

7 17

8 -6 -6

45 49 16 -25 8 2 -1

27 17 -10

-14 6 9

-14 8 3 -2 -5 1 1

-2 -3

oldroad

wwwvsoftsnet

The Discrete Cosine Transform

Quantization We saw with the 1-dimensional DCT that you do not always need to use all the of the DCT coefficients with the Inverse DCT to reconstruct a close approximation of the original data We also saw that there are situations when we need to use most, if not all, of the coefficients to reproduce something that is close The same is true with the 2-dimensional DCT After calculating the DCT, the next step is to find and discard the coefficients that contribute the least to the image The JPEG standard defines a simple mechanism for doing this known as quantization, which is a fancy name for division To quantize the DCT coefficients we simply divide them by another value and round to the nearest integer

To reverse the process multiply Coefficient = Quantized Value Quantum value Choosing a quantum value as small as 20 would convert over half the coefficients in Figure 76 to zeros JPEG uses a 64-element array called a quantization table to define quantum values for an image Quantization tables are defined in the DQT marker described in 5 It is possible to use multiple quantization tables so that not all components need be quantized using the same values Each value in a quantization table is used to quantize the corresponding DCT coefficient The JPEG standard does not specify the quantization values to be used This is left up to the application However, it does provide a pair of sample quantization tables that it says have been tested empirically and found to generate good results These tables are shown in Figure 77 Y Component Quantization Table

12 14 14