wwwvsoftsnet oldroad

QR Code Generation In VS .NETUsing Barcode creator for .NET framework Control to generate, create QR image in .NET framework applications.

Optimizing the DCT going to multiply the rows of T by the columns of M to create a temporary matrix Then we are going to multiply the columns of the temporary matrix by the rows of MT When we multiply T M each output row depends only on the corresponding row in T so we can treat the calculation of each row separately Similarly, when we multiply MT and the temporary matrix, each column in the output depends only on the corresponding column in the temporary matrix The DCT transform matrix as originally presented in 7 is repeated with the substitution in Equation 102 Each row/column dot product requires 8 multiplication operations and 7 additions; therefore, transforming each row requires 64 multiplication operations and 56 additions

Scanning QR Code 2d Barcode In Visual Studio .NETUsing Barcode scanner for .NET Control to read, scan read, scan image in .NET applications.

Equation 102

Bar Code Printer In .NET FrameworkUsing Barcode encoder for Visual Studio .NET Control to generate, create barcode image in .NET framework applications.

Notice that there is much symmetry in the matrix We will exploit these symmetries by factoring the DCT transform matrix into the product of several sparse matrices The first transformation we are going to make is to factor out the constant value from each element in the matrix and redefine the IDCT using the equivalent definition shown in Equation 103 Equation 103 V = MTTM

Read Barcode In Visual Studio .NETUsing Barcode scanner for .NET framework Control to read, scan read, scan image in VS .NET applications.

wwwvsoftsnet

QR Code 2d Barcode Drawer In C#Using Barcode encoder for .NET Control to generate, create QR image in Visual Studio .NET applications.

oldroad

Draw QR-Code In .NET FrameworkUsing Barcode drawer for ASP.NET Control to generate, create Quick Response Code image in ASP.NET applications.

Factoring the DCT Matrix

QR-Code Printer In Visual Basic .NETUsing Barcode creator for .NET Control to generate, create QR Code image in VS .NET applications.

For now we will ignore the in Equation 104

EAN13 Encoder In VS .NETUsing Barcode maker for .NET Control to generate, create EAN-13 image in Visual Studio .NET applications.

factor and simply work with the matrix shown

Bar Code Generator In VS .NETUsing Barcode generator for Visual Studio .NET Control to generate, create barcode image in .NET applications.

Equation 104

Universal Product Code Version A Drawer In .NET FrameworkUsing Barcode encoder for .NET framework Control to generate, create GTIN - 12 image in Visual Studio .NET applications.

The next few simplifications take advantage of the symmetries in the values of the cosine function to reduce the number of unique values in the transform matrix The properties of the cosine function can be found in any mathematical handbook If you refer to Figure 101 you can see that the cosine function is cyclical such that Equation 105

Generate ECC200 In VS .NETUsing Barcode drawer for .NET framework Control to generate, create Data Matrix image in VS .NET applications.

cos x = cos (x + 2 )

Paint MSI Plessey In .NETUsing Barcode maker for Visual Studio .NET Control to generate, create MSI Plessey image in Visual Studio .NET applications.

Using Equation 105 we can replace every occurrence of with , giving Equation 106

Bar Code Scanner In JavaUsing Barcode scanner for Java Control to read, scan read, scan image in Java applications.

in Equation 104

UPC - 13 Creation In .NET FrameworkUsing Barcode drawer for ASP.NET Control to generate, create UPC - 13 image in ASP.NET applications.

Figure 101 Cosine Function

Barcode Encoder In JavaUsing Barcode maker for Java Control to generate, create barcode image in Java applications.

wwwvsoftsnet

Encoding Barcode In Visual Basic .NETUsing Barcode encoder for Visual Studio .NET Control to generate, create barcode image in Visual Studio .NET applications.

oldroad

Barcode Generator In .NET FrameworkUsing Barcode generator for ASP.NET Control to generate, create barcode image in ASP.NET applications.

Optimizing the DCT

Code-39 Creation In C#Using Barcode creation for .NET Control to generate, create Code 3 of 9 image in .NET framework applications.

Equation 106

Encode Code128 In JavaUsing Barcode creator for Java Control to generate, create ANSI/AIM Code 128 image in Java applications.

Again referring to Figure 101, the cosine function is symmetric along the x-axis such that Equation 107 Using Equation 107 we can replace all the matrix elements in Equation 106 with arguments to the cosine function that are greater than , giving Equation 108 Equation 108

Recognizing EAN-13 Supplement 5 In .NET FrameworkUsing Barcode recognizer for .NET framework Control to read, scan read, scan image in .NET applications.

The cosine function is also symmetric along the y-axis such that Equation 109

wwwvsoftsnet oldroad

Factoring the DCT Matrix

Using Equation 109 we can replace all arguments to the cosine function in Equation 108 that are greater than , giving Equation 1010

Equation 7070

The value of the cosine function at Equation 1011

is well known

Substituting Equation 1011 in to Equation 1010 gives Equation 1012

Equation 1012

wwwvsoftsnet

oldroad

Optimizing the DCT Disregarding the sign, only seven distinct values remain in the transform matrix Now that the values within the transform matrix have been simplified we will factor the matrix into the product of several sparse matrices The primary goal in the factorization of the transform matrix is to create matrix factors with as many zero values as possible The secondary goal is to create matrices with the values +/-1 Zeros are great, ones are so-so, and everything else is bad The process used to factor the matrix is called Gaussian elimination Gaussian elimination is beyond the scope of this book However we have attempted to include enough steps for a reader with a basic knowledge of linear algebra to clearly see how the factors are obtained The following examples of matrix multiplication operations illustrate the principles of row reduction used to factor the DCT matrix

= = = = = =

Column Interchange Column Addition Row Interchange Row Addition

Notice that if the matrix in Equation 1012 is divided in half vertically, the left half of each row is either a mirror image of the right or a negative mirror image We can factor the matrix to group the mirror image rows together and the negative mirror image rows together (Equation 1013) This first factorization is not strictly necessary Its only purpose is to make the remaining factorization steps clearer

wwwvsoftsnet

oldroad

Factoring the DCT Matrix

Equation 7073

wwwvsoftsnet

oldroad

Optimizing the DCT

Equation 1014

In Equation 1014, notice that the nonzero elements at the upper left corner of the center matrix form the same mirror pattern as the rows of the matrix in Equation 1013 We factor again in a similar manner to attack that corner (Equation 1015)

wwwvsoftsnet

oldroad

Factoring the DCT Matrix

Take a look at the 4 4 submatrix at the lower right corner of the second matrix in Equation 1015 and in Equation 1016 Equation 1015