List of partial main program to test MDCT module in .NET

Printing qr codes in .NET List of partial main program to test MDCT module
List of partial main program to test MDCT module
Qr Codes encoder with .net
using .net framework toaccess qr barcode for asp.net web,windows application
mdct(pcm_data_in,mdct_enc16,FRAME); // Perform MDCT of N samples for (j = 0; j < M; j++) { pcm_data_in[j] = pcm_data_in[j+M]; } fwrite(mdct_enc16, sizeof(short),(FRAME>>1),f_enc ); inv_mdct(mdct_enc16,mdct_proc,FRAME); // Inverse MDCT overlap(mdct_proc,prevblck,pcm_data_out);// Overlap addition }
decode qr code 2d barcode for .net
Using Barcode reader for visual .net Control to read, scan read, scan image in visual .net applications.
PCM sample PCM sample
Barcode creation with .net
generate, create barcode none with .net projects
Data framing Overlap and add
Barcode implement with .net
generate, create bar code none with .net projects
Block
Windowing
Control qr code 2d barcode image on .net
using an asp.net form todraw qr code on asp.net web,windows application
MDCT
Control qr code jis x 0510 data with vb.net
to render quick response code and qr code jis x 0510 data, size, image with visual basic.net barcode sdk
Windowing
Add code128 with .net
using barcode maker for .net framework control to generate, create code 128c image in .net framework applications.
IMDCT
3 Of 9 barcode library in .net
using barcode encoder for .net framework control to generate, create code 39 extended image in .net framework applications.
Quantization in frequency domain
Datamatrix 2d Barcode barcode library with .net
using barcode writer for .net control to generate, create datamatrix 2d barcode image in .net applications.
Figure 13.13 Table 13.3
Create bar code on .net
generate, create barcode none in .net projects
MDCT block processing
ANSI/AIM Codabar creator in .net
using barcode integrating for .net framework control to generate, create rationalized codabar image in .net framework applications.
C code for implementing MDCT
/* Function: Calculation of the direct MDCT */ void mdct(short *in, short *out, short N) { short k,j; float acc0; for (j = 0; j < N / 2; j++) { for (acc0 = 0.0, k = 0; k < N; k++) { acc0 += win[k]*(float)in[k]*cos_enc[j][k]; } out[j] = float2short(acc0); } }
Control code128 size with visual c#.net
to receive code 128b and code 128a data, size, image with visual c# barcode sdk
Table 13.4
2D Barcode writer on .net
using barcode printer for local reports rdlc control to generate, create matrix barcode image in local reports rdlc applications.
C code for IMDCT
PDF 417 barcode library on .net
use sql database pdf417 creator toinclude pdf-417 2d barcode in .net
void inv_mdct(short *in, short *out, short N) { short j,k; float acc0; for(j= 0;j<N;j++) { acc0 = 0.0; for(k=0;k<N/2;k++) { acc0 += (float)in[k]*cos_dec[((2*j+1+N/2)*(2*k+1))%(4*N)]; } acc0 = acc0*win[j]; out[j] = float2short(acc0); // Convert to 16 bits } }
Control european article number 13 image on .net
generate, create gtin - 13 none with .net projects
104 3
Control ucc.ean - 128 data with java
to incoporate ucc ean 128 and gs1 barcode data, size, image with java barcode sdk
AUDIO SIGNAL PROCESSING
.net Winforms bar code 39 creation for .net
using barcode maker for windows forms control to generate, create ansi/aim code 39 image in windows forms applications.
Original input signal
.NET WinForms Crystal ucc ean 128 generating in visual c#.net
use .net for windows forms crystal ean / ucc - 14 development toreceive with .net c#
1 Amplitude
3 0 200 400 600 800 Samples (a) Original input signal. 1000 1200
Difference between original input and inverse MDCT output 10 8 6 4 Amplitude 2 0 2 4 6 8 10 0 200 400 600 800 Samples (b) Amplitude differnce.
Figure 13.14 The original signal and amplitude difference between the original signal and the IMDCT output: (a) original input signal; (b) amplitude difference
Differenced between maximum +3 minimum 3
EXPERIMENTS AND PROGRAM EXAMPLES
Table 13.5 Files floatPoint_mdctTest.c floatPoint_mdct.c floatPoint_mdct_init.c floatPoint_mdct.h floatPoint_mdct.prj floatPoint_mdct.cmd input.pcm File listing for experiment exp13.5.1_floatingPointMdct Description Main function for testing experiment Direct and inverse MDCT functions Generate window and coef cient tables C header le DSP project le DSP linker command le Data le
signal input.pcm and the IMDCT output mdctProc.pcm is plotted in Figure 13.14(b). The maximum distortion is 3. Table 13.5 lists the les used for this experiment. Procedures of the experiment are listed as follows: 1. Start CCS, open the project, build, and load the program. 2. Check the experiment results with different frame sizes de ned in floatPoint_mdct.h. 3. Further optimization of table to make the table size smaller. Change the two-dimensional array cos_enc[ ][ ] table to one-dimensional array cos_enc[ ] and try to reduce the table size by taking the advantage of periodic property.
13.5.2 Implementation of MDCT Using C55x Intrinsics
In this experiment, we replace all oat variables with short in the oating-point C code, and use the C55x intrinsics for multiplication and other DSP-speci c functions. The intrinsic implementation of MDCT is listed in Table 13.6. Comparing the code between Tables 13.3 and 13.6, the differences are using mult_r and L_mac functions to implement the multiplication and accumulation.
Table 13.6
C55x intrinsics implementation of MDCT
void mdct(short *in, short *out, short N) { short k,j; long acc0; short temp16; for (j = 0; j < N / 2; j++) { acc0 = 0; for (k = 0; k < N; k++) { temp16 = mult_r(win[k],(in[k])); acc0 = L_mac(acc0,temp16,(cos_enc[j][k])); } acc0 = L_add(acc0, 0x8000L); out[j] = (short) (acc0>>SFT16); } }
AUDIO SIGNAL PROCESSING
Difference between original input and fixed-point inverse MDCT output 10 Differenced between maximum +9 minimum 9 8 6 4 Amplitude 2 0 2 4 6 8 10 0 200 400 600 800 Samples 1000 1200
Amplitude distortion between the original signal and the C55x IMDCT output
Similar to the experiment given in Section 13.5.1, we compare the result with the original data. The distortion is shown in Figure 13.15. The distortion is higher in the 16-bit C55x implementation as compared with the 32-bit oating-point implementation. At the active segment, the maximum distortion in amplitude is 9, which is higher than the oating-point implementation with the maximum distortion of 3. The les used for this experiment are listed in Table 13.7. Procedures of the experiment are listed as follows: 1. Start CCS, open the project, build, and load the program. 2. Run the experiment using different frame sizes (de ned in intrinsic_mdct.h). Check the experiment results obtained with different frame sizes. 3. Convert the direct and reverse MDCT functions in xed-point C code to C55 assembly code, and benchmark the cycles needed for both programs.
Table 13.7 Files intrinsic_mdctTest.c intrinsic_mdct.c intrinsic_mdctInit.c intrinsic_mdct.h intrinsic_mdct.pjt intrinsic_mdct.cmd input.pcm
File listing for experiment exp13.5.2_intinsicMdct Description Main function for testing experiment MDCT and IMDCT functions Experiment initialization C header le DSP project le C55x linker command le Data le