X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fvideo_decoder%2Fvdec_idct.c;h=6fbfe8789cf9489208c65d49e2b6afe468bc0325;hb=dc804fe5e107ee240b89daa3b5c85da8ca029380;hp=4d00bc607384fe94c53dafe7e778d3ec0bb6e8ac;hpb=7e618974c2436ebd2cb18176da8dd75e02c65756;p=vlc diff --git a/src/video_decoder/vdec_idct.c b/src/video_decoder/vdec_idct.c index 4d00bc6073..6fbfe8789c 100644 --- a/src/video_decoder/vdec_idct.c +++ b/src/video_decoder/vdec_idct.c @@ -1,32 +1,44 @@ /***************************************************************************** * vdec_idct.c : IDCT functions - * (c)1999 VideoLAN + ***************************************************************************** + * Copyright (C) 1999, 2000 VideoLAN + * + * Authors: Gaƫl Hendryckx + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *****************************************************************************/ /***************************************************************************** * Preamble *****************************************************************************/ +#include "defs.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include /* on BSD, uio.h needs types.h */ +#include /* for input.h */ #include "config.h" #include "common.h" +#include "threads.h" #include "mtime.h" -#include "vlc_thread.h" +#include "plugins.h" #include "intf_msg.h" -#include "debug.h" /* ?? temporaire, requis par netlist.h */ -#include "input.h" -#include "input_netlist.h" -#include "decoder_fifo.h" +#include "stream_control.h" +#include "input_ext-dec.h" + #include "video.h" #include "video_output.h" @@ -36,40 +48,30 @@ #include "vpar_blocks.h" #include "vpar_headers.h" -#include "video_fifo.h" #include "vpar_synchro.h" #include "video_parser.h" +#include "video_fifo.h" /* * Local prototypes */ -//extern IDCT_mmx(dctelem_t*); - /* Our current implementation is a fast DCT, we might move to a fast DFT or * an MMX DCT in the future. */ /***************************************************************************** - * vdec_DummyIDCT : dummy function that does nothing - *****************************************************************************/ -void vdec_DummyIDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, - int i_idontcare ) -{ -} - -/***************************************************************************** - * init_SparseIDCT : initialize datas for vdec_SparceIDCT + * vdec_InitIDCT : initialize datas for vdec_SparceIDCT * vdec_SparseIDCT : IDCT function for sparse matrices *****************************************************************************/ -void vdec_InitIDCT (vdec_thread_t * p_vdec) -{ +void vdec_InitIDCT (vdec_thread_t * p_vdec) +{ int i; - + dctelem_t * p_pre = p_vdec->p_pre_idct; memset( p_pre, 0, 64*64*sizeof(dctelem_t) ); - - for( i=0 ; i < 64 ; i++ ) + + for( i=0 ; i < 64 ; i++ ) { p_pre[i*64+i] = 1 << SPARSE_SCALE_FACTOR; vdec_IDCT( p_vdec, &p_pre[i*64], 0) ; @@ -77,10 +79,9 @@ void vdec_InitIDCT (vdec_thread_t * p_vdec) return; } -void vdec_SparseIDCT (vdec_thread_t * p_vdec, dctelem_t * p_block, +void vdec_SparseIDCT (vdec_thread_t * p_vdec, dctelem_t * p_block, int i_sparse_pos) { - /*debug*/ short int val; int * dp; int v; @@ -89,23 +90,10 @@ void vdec_SparseIDCT (vdec_thread_t * p_vdec, dctelem_t * p_block, int coeff, rr; /* If DC Coefficient. */ - if ( i_sparse_pos == 0 ) + if ( i_sparse_pos == 0 ) { - dp=(int *)p_block; -// v=*p_block; -/* cuisine a verifier */ -/* if (v < 0) - { - val=-v; - val+=4; - val/=8; - val=-val; - } - else - {*/ -/* val= (v + 4) /8; */ + dp=(int *)p_block; val=RIGHT_SHIFT((*p_block + 4), 3); -// } /* Compute int to assign. This speeds things up a bit */ v = ((val & 0xffff) | (val << 16)); dp[0] = v; dp[1] = v; dp[2] = v; dp[3] = v; @@ -145,15 +133,16 @@ void vdec_SparseIDCT (vdec_thread_t * p_vdec, dctelem_t * p_block, } return; } - + /***************************************************************************** * vdec_IDCT : IDCT function for normal matrices *****************************************************************************/ + +#ifndef HAVE_MMX void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) { -//IDCT_mmx(p_block); -#if 0 +#if 0 /* dct classique: pour tester la meilleure entre la classique et la */ /* no classique */ s32 tmp0, tmp1, tmp2, tmp3; @@ -168,7 +157,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) /* furthermore, we scale the results by 2**PASS1_BITS. */ dataptr = p_block; - for (rowctr = DCTSIZE-1; rowctr >= 0; rowctr--) + for (rowctr = DCTSIZE-1; rowctr >= 0; rowctr--) { /* Due to quantization, we will usually find that many of the input * coefficients are zero, especially the AC terms. We can exploit this @@ -180,11 +169,11 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) */ if ((dataptr[1] | dataptr[2] | dataptr[3] | dataptr[4] | - dataptr[5] | dataptr[6] | dataptr[7]) == 0) + dataptr[5] | dataptr[6] | dataptr[7]) == 0) { /* AC terms all zero */ dctelem_t dcval = (dctelem_t) (dataptr[0] << PASS1_BITS); - + dataptr[0] = dcval; dataptr[1] = dcval; dataptr[2] = dcval; @@ -193,8 +182,8 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) dataptr[5] = dcval; dataptr[6] = dcval; dataptr[7] = dcval; - - dataptr += DCTSIZE; /* advance pointer to next row */ + + dataptr += DCTSIZE; /* advance pointer to next row */ continue; } @@ -215,7 +204,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp13 = tmp0 - tmp3; tmp11 = tmp1 + tmp2; tmp12 = tmp1 - tmp2; - + /* Odd part per figure 8; the matrix is unitary and hence its * transpose is its inverse. i0..i3 are y7,y5,y3,y1 respectively. */ @@ -230,7 +219,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z3 = tmp0 + tmp2; z4 = tmp1 + tmp3; z5 = MULTIPLY(z3 + z4, FIX(1.175875602)); /* sqrt(2) * c3 */ - + tmp0 = MULTIPLY(tmp0, FIX(0.298631336)); /* sqrt(2) * (-c1+c3+c5-c7) */ tmp1 = MULTIPLY(tmp1, FIX(2.053119869)); /* sqrt(2) * ( c1+c3-c5+c7) */ tmp2 = MULTIPLY(tmp2, FIX(3.072711026)); /* sqrt(2) * ( c1+c3+c5-c7) */ @@ -239,10 +228,10 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = MULTIPLY(z2, - FIX(2.562915447)); /* sqrt(2) * (-c1-c3) */ z3 = MULTIPLY(z3, - FIX(1.961570560)); /* sqrt(2) * (-c3-c5) */ z4 = MULTIPLY(z4, - FIX(0.390180644)); /* sqrt(2) * (c5-c3) */ - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 += z2 + z4; tmp2 += z2 + z3; @@ -259,7 +248,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) dataptr[3] = (dctelem_t) DESCALE(tmp13 + tmp0, CONST_BITS-PASS1_BITS); dataptr[4] = (dctelem_t) DESCALE(tmp13 - tmp0, CONST_BITS-PASS1_BITS); - dataptr += DCTSIZE; /* advance pointer to next row */ + dataptr += DCTSIZE; /* advance pointer to next row */ } /* Pass 2: process columns. */ @@ -267,7 +256,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) /* and also undo the PASS1_BITS scaling. */ dataptr = p_block; - for (rowctr = DCTSIZE-1; rowctr >= 0; rowctr--) + for (rowctr = DCTSIZE-1; rowctr >= 0; rowctr--) { /* Columns of zeroes can be exploited in the same way as we did with rows. * However, the row calculation has created many nonzero AC terms, so the @@ -279,12 +268,12 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) #ifndef NO_ZERO_COLUMN_TEST /*ajoute un test mais evite des calculs */ if ((dataptr[DCTSIZE*1] | dataptr[DCTSIZE*2] | dataptr[DCTSIZE*3] | - dataptr[DCTSIZE*4] | dataptr[DCTSIZE*5] | dataptr[DCTSIZE*6] | - dataptr[DCTSIZE*7]) == 0) + dataptr[DCTSIZE*4] | dataptr[DCTSIZE*5] | dataptr[DCTSIZE*6] | + dataptr[DCTSIZE*7]) == 0) { /* AC terms all zero */ dctelem_t dcval = (dctelem_t) DESCALE((s32) dataptr[0], PASS1_BITS+3); - + dataptr[DCTSIZE*0] = dcval; dataptr[DCTSIZE*1] = dcval; dataptr[DCTSIZE*2] = dcval; @@ -293,8 +282,8 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) dataptr[DCTSIZE*5] = dcval; dataptr[DCTSIZE*6] = dcval; dataptr[DCTSIZE*7] = dcval; - - dataptr++; /* advance pointer to next column */ + + dataptr++; /* advance pointer to next column */ continue; } #endif @@ -316,7 +305,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp13 = tmp0 - tmp3; tmp11 = tmp1 + tmp2; tmp12 = tmp1 - tmp2; - + /* Odd part per figure 8; the matrix is unitary and hence its * transpose is its inverse. i0..i3 are y7,y5,y3,y1 respectively. */ @@ -331,7 +320,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z3 = tmp0 + tmp2; z4 = tmp1 + tmp3; z5 = MULTIPLY(z3 + z4, FIX(1.175875602)); /* sqrt(2) * c3 */ - + tmp0 = MULTIPLY(tmp0, FIX(0.298631336)); /* sqrt(2) * (-c1+c3+c5-c7) */ tmp1 = MULTIPLY(tmp1, FIX(2.053119869)); /* sqrt(2) * ( c1+c3-c5+c7) */ tmp2 = MULTIPLY(tmp2, FIX(3.072711026)); /* sqrt(2) * ( c1+c3+c5-c7) */ @@ -340,10 +329,10 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = MULTIPLY(z2, - FIX(2.562915447)); /* sqrt(2) * (-c1-c3) */ z3 = MULTIPLY(z3, - FIX(1.961570560)); /* sqrt(2) * (-c3-c5) */ z4 = MULTIPLY(z4, - FIX(0.390180644)); /* sqrt(2) * (c5-c3) */ - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 += z2 + z4; tmp2 += z2 + z3; @@ -352,44 +341,44 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) /* Final output stage: inputs are tmp10..tmp13, tmp0..tmp3 */ dataptr[DCTSIZE*0] = (dctelem_t) DESCALE(tmp10 + tmp3, - CONST_BITS+PASS1_BITS+3); + CONST_BITS+PASS1_BITS+3); dataptr[DCTSIZE*7] = (dctelem_t) DESCALE(tmp10 - tmp3, - CONST_BITS+PASS1_BITS+3); + CONST_BITS+PASS1_BITS+3); dataptr[DCTSIZE*1] = (dctelem_t) DESCALE(tmp11 + tmp2, - CONST_BITS+PASS1_BITS+3); + CONST_BITS+PASS1_BITS+3); dataptr[DCTSIZE*6] = (dctelem_t) DESCALE(tmp11 - tmp2, - CONST_BITS+PASS1_BITS+3); + CONST_BITS+PASS1_BITS+3); dataptr[DCTSIZE*2] = (dctelem_t) DESCALE(tmp12 + tmp1, - CONST_BITS+PASS1_BITS+3); + CONST_BITS+PASS1_BITS+3); dataptr[DCTSIZE*5] = (dctelem_t) DESCALE(tmp12 - tmp1, - CONST_BITS+PASS1_BITS+3); + CONST_BITS+PASS1_BITS+3); dataptr[DCTSIZE*3] = (dctelem_t) DESCALE(tmp13 + tmp0, - CONST_BITS+PASS1_BITS+3); + CONST_BITS+PASS1_BITS+3); dataptr[DCTSIZE*4] = (dctelem_t) DESCALE(tmp13 - tmp0, - CONST_BITS+PASS1_BITS+3); - - dataptr++; /* advance pointer to next column */ + CONST_BITS+PASS1_BITS+3); + + dataptr++; /* advance pointer to next column */ } -#endif +#endif + +#if 1 /*dct avec non classique*/ -#if 1 /*dct avec no classique*/ - s32 tmp0, tmp1, tmp2, tmp3; s32 tmp10, tmp11, tmp12, tmp13; s32 z1, z2, z3, z4, z5; s32 d0, d1, d2, d3, d4, d5, d6, d7; dctelem_t * dataptr; int rowctr; - + SHIFT_TEMPS - + /* Pass 1: process rows. */ /* Note results are scaled up by sqrt(8) compared to a true IDCT; */ /* furthermore, we scale the results by 2**PASS1_BITS. */ dataptr = p_block; - for (rowctr = DCTSIZE-1; rowctr >= 0; rowctr--) + for (rowctr = DCTSIZE-1; rowctr >= 0; rowctr--) { /* Due to quantization, we will usually find that many of the input * coefficients are zero, especially the AC terms. We can exploit this @@ -403,22 +392,22 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) register int * idataptr = (int*)dataptr; d0 = dataptr[0]; d1 = dataptr[1]; - if ( (d1 == 0) && ((idataptr[1] | idataptr[2] | idataptr[3]) == 0) ) + if ( (d1 == 0) && ((idataptr[1] | idataptr[2] | idataptr[3]) == 0) ) { /* AC terms all zero */ - if (d0) + if (d0) { /* Compute a 32 bit value to assign. */ dctelem_t dcval = (dctelem_t) (d0 << PASS1_BITS); register int v = (dcval & 0xffff) | (dcval << 16); - + idataptr[0] = v; idataptr[1] = v; idataptr[2] = v; idataptr[3] = v; } - - dataptr += DCTSIZE; /* advance pointer to next row */ + + dataptr += DCTSIZE; /* advance pointer to next row */ continue; } d2 = dataptr[2]; @@ -430,13 +419,13 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) /* Even part: reverse the even part of the forward DCT. */ /* The rotator is sqrt(2)*c(-6). */ - if (d6) + if (d6) { - if (d4) + if (d4) { - if (d2) + if (d2) { - if (d0) + if (d0) { /* d0 != 0, d2 != 0, d4 != 0, d6 != 0 */ z1 = MULTIPLY(d2 + d6, FIX(0.541196100)); @@ -450,30 +439,30 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp13 = tmp0 - tmp3; tmp11 = tmp1 + tmp2; tmp12 = tmp1 - tmp2; - } - else + } + else { - /* d0 == 0, d2 != 0, d4 != 0, d6 != 0 */ + /* d0 == 0, d2 != 0, d4 != 0, d6 != 0 */ z1 = MULTIPLY(d2 + d6, FIX(0.541196100)); tmp2 = z1 + MULTIPLY(d6, - FIX(1.847759065)); tmp3 = z1 + MULTIPLY(d2, FIX(0.765366865)); tmp0 = d4 << CONST_BITS; - + tmp10 = tmp0 + tmp3; tmp13 = tmp0 - tmp3; tmp11 = tmp2 - tmp0; tmp12 = -(tmp0 + tmp2); - } - } - else + } + } + else { - if (d0) + if (d0) { /* d0 != 0, d2 == 0, d4 != 0, d6 != 0 */ tmp2 = MULTIPLY(d6, - FIX2(1.306562965)); tmp3 = MULTIPLY(d6, FIX(0.541196100)); - + tmp0 = (d0 + d4) << CONST_BITS; tmp1 = (d0 - d4) << CONST_BITS; @@ -481,27 +470,27 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp13 = tmp0 - tmp3; tmp11 = tmp1 + tmp2; tmp12 = tmp1 - tmp2; - } - else + } + else { - /* d0 == 0, d2 == 0, d4 != 0, d6 != 0 */ + /* d0 == 0, d2 == 0, d4 != 0, d6 != 0 */ tmp2 = MULTIPLY(d6, - FIX2(1.306562965)); tmp3 = MULTIPLY(d6, FIX(0.541196100)); - + tmp0 = d4 << CONST_BITS; - + tmp10 = tmp0 + tmp3; tmp13 = tmp0 - tmp3; tmp11 = tmp2 - tmp0; tmp12 = -(tmp0 + tmp2); - } + } } - } - else + } + else { - if (d2) + if (d2) { - if (d0) + if (d0) { /* d0 != 0, d2 != 0, d4 == 0, d6 != 0 */ z1 = MULTIPLY(d2 + d6, FIX(0.541196100)); @@ -509,15 +498,15 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp3 = z1 + MULTIPLY(d2, FIX(0.765366865)); tmp0 = d0 << CONST_BITS; - + tmp10 = tmp0 + tmp3; tmp13 = tmp0 - tmp3; tmp11 = tmp0 + tmp2; tmp12 = tmp0 - tmp2; - } - else + } + else { - /* d0 == 0, d2 != 0, d4 == 0, d6 != 0 */ + /* d0 == 0, d2 != 0, d4 == 0, d6 != 0 */ z1 = MULTIPLY(d2 + d6, FIX(0.541196100)); tmp2 = z1 + MULTIPLY(d6, - FIX(1.847759065)); tmp3 = z1 + MULTIPLY(d2, FIX(0.765366865)); @@ -526,24 +515,24 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp13 = -tmp3; tmp11 = tmp2; tmp12 = -tmp2; - } - } - else + } + } + else { - if (d0) + if (d0) { /* d0 != 0, d2 == 0, d4 == 0, d6 != 0 */ tmp2 = MULTIPLY(d6, - FIX2(1.306562965)); tmp3 = MULTIPLY(d6, FIX(0.541196100)); - + tmp0 = d0 << CONST_BITS; - + tmp10 = tmp0 + tmp3; tmp13 = tmp0 - tmp3; tmp11 = tmp0 + tmp2; tmp12 = tmp0 - tmp2; } - else + else { /* d0 == 0, d2 == 0, d4 == 0, d6 != 0 */ tmp2 = MULTIPLY(d6, - FIX2(1.306562965)); @@ -559,30 +548,30 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) } else { - if (d4) + if (d4) { - if (d2) + if (d2) { - if (d0) + if (d0) { - /* d0 != 0, d2 != 0, d4 != 0, d6 == 0 */ + /* d0 != 0, d2 != 0, d4 != 0, d6 == 0 */ tmp2 = MULTIPLY(d2, FIX(0.541196100)); tmp3 = MULTIPLY(d2, (FIX(1.306562965) + .5)); - + tmp0 = (d0 + d4) << CONST_BITS; tmp1 = (d0 - d4) << CONST_BITS; - + tmp10 = tmp0 + tmp3; tmp13 = tmp0 - tmp3; tmp11 = tmp1 + tmp2; tmp12 = tmp1 - tmp2; } - else + else { /* d0 == 0, d2 != 0, d4 != 0, d6 == 0 */ tmp2 = MULTIPLY(d2, FIX(0.541196100)); tmp3 = MULTIPLY(d2, (FIX(1.306562965) + .5)); - + tmp0 = d4 << CONST_BITS; tmp10 = tmp0 + tmp3; @@ -591,15 +580,15 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp12 = -(tmp0 + tmp2); } } - else + else { - if (d0) + if (d0) { /* d0 != 0, d2 == 0, d4 != 0, d6 == 0 */ tmp10 = tmp13 = (d0 + d4) << CONST_BITS; tmp11 = tmp12 = (d0 - d4) << CONST_BITS; - } - else + } + else { /* d0 == 0, d2 == 0, d4 != 0, d6 == 0 */ tmp10 = tmp13 = d4 << CONST_BITS; @@ -607,11 +596,11 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) } } } - else + else { - if (d2) + if (d2) { - if (d0) + if (d0) { /* d0 != 0, d2 != 0, d4 == 0, d6 == 0 */ tmp2 = MULTIPLY(d2, FIX(0.541196100)); @@ -642,13 +631,13 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) { /* d0 != 0, d2 == 0, d4 == 0, d6 == 0 */ tmp10 = tmp13 = tmp11 = tmp12 = d0 << CONST_BITS; - } + } else { /* d0 == 0, d2 == 0, d4 == 0, d6 == 0 */ tmp10 = tmp13 = tmp11 = tmp12 = 0; } - } + } } } @@ -657,13 +646,13 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) * transpose is its inverse. i0..i3 are y7,y5,y3,y1 respectively. */ - if (d7) + if (d7) { - if (d5) + if (d5) { - if (d3) + if (d3) { - if (d1) + if (d1) { /* d1 != 0, d3 != 0, d5 != 0, d7 != 0 */ z1 = d7 + d1; @@ -671,8 +660,8 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z3 = d7 + d3; z4 = d5 + d1; z5 = MULTIPLY(z3 + z4, FIX(1.175875602)); - - tmp0 = MULTIPLY(d7, FIX(0.298631336)); + + tmp0 = MULTIPLY(d7, FIX(0.298631336)); tmp1 = MULTIPLY(d5, FIX(2.053119869)); tmp2 = MULTIPLY(d3, FIX(3.072711026)); tmp3 = MULTIPLY(d1, FIX(1.501321110)); @@ -680,40 +669,40 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = MULTIPLY(z2, - FIX(2.562915447)); z3 = MULTIPLY(z3, - FIX(1.961570560)); z4 = MULTIPLY(z4, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 += z2 + z4; tmp2 += z2 + z3; tmp3 += z1 + z4; - } - else + } + else { /* d1 == 0, d3 != 0, d5 != 0, d7 != 0 */ z2 = d5 + d3; z3 = d7 + d3; z5 = MULTIPLY(z3 + d5, FIX(1.175875602)); - - tmp0 = MULTIPLY(d7, FIX(0.298631336)); + + tmp0 = MULTIPLY(d7, FIX(0.298631336)); tmp1 = MULTIPLY(d5, FIX(2.053119869)); tmp2 = MULTIPLY(d3, FIX(3.072711026)); z1 = MULTIPLY(d7, - FIX(0.899976223)); z2 = MULTIPLY(z2, - FIX(2.562915447)); z3 = MULTIPLY(z3, - FIX(1.961570560)); z4 = MULTIPLY(d5, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 += z2 + z4; tmp2 += z2 + z3; tmp3 = z1 + z4; - } - } - else + } + } + else { if (d1) { @@ -721,18 +710,18 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z1 = d7 + d1; z4 = d5 + d1; z5 = MULTIPLY(d7 + z4, FIX(1.175875602)); - - tmp0 = MULTIPLY(d7, FIX(0.298631336)); + + tmp0 = MULTIPLY(d7, FIX(0.298631336)); tmp1 = MULTIPLY(d5, FIX(2.053119869)); tmp3 = MULTIPLY(d1, FIX(1.501321110)); z1 = MULTIPLY(z1, - FIX(0.899976223)); z2 = MULTIPLY(d5, - FIX(2.562915447)); z3 = MULTIPLY(d7, - FIX(1.961570560)); z4 = MULTIPLY(z4, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 += z2 + z4; tmp2 = z2 + z3; @@ -749,10 +738,10 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z3 = MULTIPLY(d7, - FIX(1.961570560)); z2 = MULTIPLY(d5, - FIX(2.562915447)); z4 = MULTIPLY(d5, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z3; tmp1 += z4; tmp2 = z2 + z3; @@ -760,28 +749,28 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) } } } - else + else { - if (d3) + if (d3) { - if (d1) + if (d1) { /* d1 != 0, d3 != 0, d5 == 0, d7 != 0 */ z1 = d7 + d1; z3 = d7 + d3; z5 = MULTIPLY(z3 + d1, FIX(1.175875602)); - - tmp0 = MULTIPLY(d7, FIX(0.298631336)); + + tmp0 = MULTIPLY(d7, FIX(0.298631336)); tmp2 = MULTIPLY(d3, FIX(3.072711026)); tmp3 = MULTIPLY(d1, FIX(1.501321110)); z1 = MULTIPLY(z1, - FIX(0.899976223)); z2 = MULTIPLY(d3, - FIX(2.562915447)); z3 = MULTIPLY(z3, - FIX(1.961570560)); z4 = MULTIPLY(d1, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 = z2 + z4; tmp2 += z2 + z3; @@ -792,22 +781,22 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) /* d1 == 0, d3 != 0, d5 == 0, d7 != 0 */ z3 = d7 + d3; z5 = MULTIPLY(z3, FIX(1.175875602)); - + tmp0 = MULTIPLY(d7, - FIX2(0.601344887)); tmp2 = MULTIPLY(d3, FIX(0.509795579)); z1 = MULTIPLY(d7, - FIX(0.899976223)); z2 = MULTIPLY(d3, - FIX(2.562915447)); z3 = MULTIPLY(z3, - FIX2(0.785694958)); - + tmp0 += z3; tmp1 = z2 + z5; tmp2 += z3; tmp3 = z1 + z5; } - } - else + } + else { - if (d1) + if (d1) { /* d1 != 0, d3 == 0, d5 == 0, d7 != 0 */ z1 = d7 + d1; @@ -818,13 +807,13 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z1 = MULTIPLY(z1, FIX2(0.275899379)); z3 = MULTIPLY(d7, - FIX(1.961570560)); z4 = MULTIPLY(d1, - FIX(0.390180644)); - + tmp0 += z1; tmp1 = z4 + z5; tmp2 = z3 + z5; tmp3 += z1; - } - else + } + else { /* d1 == 0, d3 == 0, d5 == 0, d7 != 0 */ tmp0 = MULTIPLY(d7, - FIX2(1.387039845)); @@ -836,10 +825,10 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) } } else - { + { if (d5) { - if (d3) + if (d3) { if (d1) { @@ -847,7 +836,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = d5 + d3; z4 = d5 + d1; z5 = MULTIPLY(d3 + z4, FIX(1.175875602)); - + tmp1 = MULTIPLY(d5, FIX(2.053119869)); tmp2 = MULTIPLY(d3, FIX(3.072711026)); tmp3 = MULTIPLY(d1, FIX(1.501321110)); @@ -855,53 +844,53 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = MULTIPLY(z2, - FIX(2.562915447)); z3 = MULTIPLY(d3, - FIX(1.961570560)); z4 = MULTIPLY(z4, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 = z1 + z3; tmp1 += z2 + z4; tmp2 += z2 + z3; tmp3 += z1 + z4; - } - else + } + else { /* d1 == 0, d3 != 0, d5 != 0, d7 == 0 */ z2 = d5 + d3; z5 = MULTIPLY(z2, FIX(1.175875602)); - + tmp1 = MULTIPLY(d5, FIX2(1.662939225)); tmp2 = MULTIPLY(d3, FIX2(1.111140466)); z2 = MULTIPLY(z2, - FIX2(1.387039845)); z3 = MULTIPLY(d3, - FIX(1.961570560)); z4 = MULTIPLY(d5, - FIX(0.390180644)); - + tmp0 = z3 + z5; tmp1 += z2; tmp2 += z2; tmp3 = z4 + z5; } } - else + else { - if (d1) + if (d1) { /* d1 != 0, d3 == 0, d5 != 0, d7 == 0 */ z4 = d5 + d1; z5 = MULTIPLY(z4, FIX(1.175875602)); - + tmp1 = MULTIPLY(d5, - FIX2(0.509795578)); tmp3 = MULTIPLY(d1, FIX2(0.601344887)); z1 = MULTIPLY(d1, - FIX(0.899976223)); z2 = MULTIPLY(d5, - FIX(2.562915447)); z4 = MULTIPLY(z4, FIX2(0.785694958)); - + tmp0 = z1 + z5; tmp1 += z4; tmp2 = z2 + z5; tmp3 += z4; } - else + else { /* d1 == 0, d3 == 0, d5 != 0, d7 == 0 */ tmp0 = MULTIPLY(d5, FIX(1.175875602)); @@ -911,11 +900,11 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) } } } - else + else { if (d3) { - if (d1) + if (d1) { /* d1 != 0, d3 != 0, d5 == 0, d7 == 0 */ z5 = d3 + d1; @@ -926,13 +915,13 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = MULTIPLY(d3, - FIX(2.172734803)); z4 = MULTIPLY(z5, FIX(0.785694958)); z5 = MULTIPLY(z5, FIX(1.175875602)); - + tmp0 = z1 - z4; tmp1 = z2 + z4; tmp2 += z5; tmp3 += z5; } - else + else { /* d1 == 0, d3 != 0, d5 == 0, d7 == 0 */ tmp0 = MULTIPLY(d3, - FIX2(0.785694958)); @@ -941,9 +930,9 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp3 = MULTIPLY(d3, FIX(1.175875602)); } } - else + else { - if (d1) + if (d1) { /* d1 != 0, d3 == 0, d5 == 0, d7 == 0 */ tmp0 = MULTIPLY(d1, FIX2(0.275899379)); @@ -951,7 +940,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp2 = MULTIPLY(d1, FIX(1.175875602)); tmp3 = MULTIPLY(d1, FIX2(1.387039845)); } - else + else { /* d1 == 0, d3 == 0, d5 == 0, d7 == 0 */ tmp0 = tmp1 = tmp2 = tmp3 = 0; @@ -971,7 +960,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) dataptr[3] = (dctelem_t) DESCALE(tmp13 + tmp0, CONST_BITS-PASS1_BITS); dataptr[4] = (dctelem_t) DESCALE(tmp13 - tmp0, CONST_BITS-PASS1_BITS); - dataptr += DCTSIZE; /* advance pointer to next row */ + dataptr += DCTSIZE; /* advance pointer to next row */ } /* Pass 2: process columns. */ @@ -979,7 +968,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) /* and also undo the PASS1_BITS scaling. */ dataptr = p_block; - for (rowctr = DCTSIZE-1; rowctr >= 0; rowctr--) + for (rowctr = DCTSIZE-1; rowctr >= 0; rowctr--) { /* Columns of zeroes can be exploited in the same way as we did with rows. * However, the row calculation has created many nonzero AC terms, so the @@ -1000,9 +989,9 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) /* Even part: reverse the even part of the forward DCT. */ /* The rotator is sqrt(2)*c(-6). */ - if (d6) + if (d6) { - if (d4) + if (d4) { if (d2) { @@ -1021,7 +1010,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp11 = tmp1 + tmp2; tmp12 = tmp1 - tmp2; } - else + else { /* d0 == 0, d2 != 0, d4 != 0, d6 != 0 */ z1 = MULTIPLY(d2 + d6, FIX(0.541196100)); @@ -1036,7 +1025,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp12 = -(tmp0 + tmp2); } } - else + else { if (d0) { @@ -1069,9 +1058,9 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) } else { - if (d2) + if (d2) { - if (d0) + if (d0) { /* d0 != 0, d2 != 0, d4 == 0, d6 != 0 */ z1 = MULTIPLY(d2 + d6, FIX(0.541196100)); @@ -1097,8 +1086,8 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp11 = tmp2; tmp12 = -tmp2; } - } - else + } + else { if (d0) { @@ -1112,8 +1101,8 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp13 = tmp0 - tmp3; tmp11 = tmp0 + tmp2; tmp12 = tmp0 - tmp2; - } - else + } + else { /* d0 == 0, d2 == 0, d4 == 0, d6 != 0 */ tmp2 = MULTIPLY(d6, - FIX2(1.306562965)); @@ -1128,11 +1117,11 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) } else { - if (d4) + if (d4) { - if (d2) + if (d2) { - if (d0) + if (d0) { /* d0 != 0, d2 != 0, d4 != 0, d6 == 0 */ tmp2 = MULTIPLY(d2, FIX(0.541196100)); @@ -1146,7 +1135,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp11 = tmp1 + tmp2; tmp12 = tmp1 - tmp2; } - else + else { /* d0 == 0, d2 != 0, d4 != 0, d6 == 0 */ tmp2 = MULTIPLY(d2, FIX(0.541196100)); @@ -1160,7 +1149,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp12 = -(tmp0 + tmp2); } } - else + else { if (d0) { @@ -1168,19 +1157,19 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp10 = tmp13 = (d0 + d4) << CONST_BITS; tmp11 = tmp12 = (d0 - d4) << CONST_BITS; } - else + else { /* d0 == 0, d2 == 0, d4 != 0, d6 == 0 */ tmp10 = tmp13 = d4 << CONST_BITS; tmp11 = tmp12 = -tmp10; } } - } - else + } + else { - if (d2) + if (d2) { - if (d0) + if (d0) { /* d0 != 0, d2 != 0, d4 == 0, d6 == 0 */ tmp2 = MULTIPLY(d2, FIX(0.541196100)); @@ -1193,7 +1182,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp11 = tmp0 + tmp2; tmp12 = tmp0 - tmp2; } - else + else { /* d0 == 0, d2 != 0, d4 == 0, d6 == 0 */ tmp2 = MULTIPLY(d2, FIX(0.541196100)); @@ -1205,14 +1194,14 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp12 = -tmp2; } } - else + else { - if (d0) + if (d0) { /* d0 != 0, d2 == 0, d4 == 0, d6 == 0 */ tmp10 = tmp13 = tmp11 = tmp12 = d0 << CONST_BITS; } - else + else { /* d0 == 0, d2 == 0, d4 == 0, d6 == 0 */ tmp10 = tmp13 = tmp11 = tmp12 = 0; @@ -1224,13 +1213,13 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) /* Odd part per figure 8; the matrix is unitary and hence its * transpose is its inverse. i0..i3 are y7,y5,y3,y1 respectively. */ - if (d7) + if (d7) { - if (d5) + if (d5) { - if (d3) + if (d3) { - if (d1) + if (d1) { /* d1 != 0, d3 != 0, d5 != 0, d7 != 0 */ z1 = d7 + d1; @@ -1238,8 +1227,8 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z3 = d7 + d3; z4 = d5 + d1; z5 = MULTIPLY(z3 + z4, FIX(1.175875602)); - - tmp0 = MULTIPLY(d7, FIX(0.298631336)); + + tmp0 = MULTIPLY(d7, FIX(0.298631336)); tmp1 = MULTIPLY(d5, FIX(2.053119869)); tmp2 = MULTIPLY(d3, FIX(3.072711026)); tmp3 = MULTIPLY(d1, FIX(1.501321110)); @@ -1247,79 +1236,79 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = MULTIPLY(z2, - FIX(2.562915447)); z3 = MULTIPLY(z3, - FIX(1.961570560)); z4 = MULTIPLY(z4, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 += z2 + z4; tmp2 += z2 + z3; tmp3 += z1 + z4; } - else + else { /* d1 == 0, d3 != 0, d5 != 0, d7 != 0 */ z2 = d5 + d3; z3 = d7 + d3; z5 = MULTIPLY(z3 + d5, FIX(1.175875602)); - - tmp0 = MULTIPLY(d7, FIX(0.298631336)); + + tmp0 = MULTIPLY(d7, FIX(0.298631336)); tmp1 = MULTIPLY(d5, FIX(2.053119869)); tmp2 = MULTIPLY(d3, FIX(3.072711026)); z1 = MULTIPLY(d7, - FIX(0.899976223)); z2 = MULTIPLY(z2, - FIX(2.562915447)); z3 = MULTIPLY(z3, - FIX(1.961570560)); z4 = MULTIPLY(d5, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 += z2 + z4; tmp2 += z2 + z3; tmp3 = z1 + z4; } - } + } else { - if (d1) + if (d1) { /* d1 != 0, d3 == 0, d5 != 0, d7 != 0 */ z1 = d7 + d1; z4 = d5 + d1; z5 = MULTIPLY(d7 + z4, FIX(1.175875602)); - - tmp0 = MULTIPLY(d7, FIX(0.298631336)); + + tmp0 = MULTIPLY(d7, FIX(0.298631336)); tmp1 = MULTIPLY(d5, FIX(2.053119869)); tmp3 = MULTIPLY(d1, FIX(1.501321110)); z1 = MULTIPLY(z1, - FIX(0.899976223)); z2 = MULTIPLY(d5, - FIX(2.562915447)); z3 = MULTIPLY(d7, - FIX(1.961570560)); z4 = MULTIPLY(z4, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 += z2 + z4; tmp2 = z2 + z3; tmp3 += z1 + z4; } - else + else { /* d1 == 0, d3 == 0, d5 != 0, d7 != 0 */ z5 = MULTIPLY(d5 + d7, FIX(1.175875602)); - tmp0 = MULTIPLY(d7, - FIX2(0.601344887)); + tmp0 = MULTIPLY(d7, - FIX2(0.601344887)); tmp1 = MULTIPLY(d5, - FIX2(0.509795578)); z1 = MULTIPLY(d7, - FIX(0.899976223)); z3 = MULTIPLY(d7, - FIX(1.961570560)); z2 = MULTIPLY(d5, - FIX(2.562915447)); z4 = MULTIPLY(d5, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z3; tmp1 += z4; tmp2 = z2 + z3; @@ -1327,60 +1316,60 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) } } } - else + else { if (d3) { - if (d1) + if (d1) { /* d1 != 0, d3 != 0, d5 == 0, d7 != 0 */ z1 = d7 + d1; z3 = d7 + d3; z5 = MULTIPLY(z3 + d1, FIX(1.175875602)); - - tmp0 = MULTIPLY(d7, FIX(0.298631336)); + + tmp0 = MULTIPLY(d7, FIX(0.298631336)); tmp2 = MULTIPLY(d3, FIX(3.072711026)); tmp3 = MULTIPLY(d1, FIX(1.501321110)); z1 = MULTIPLY(z1, - FIX(0.899976223)); z2 = MULTIPLY(d3, - FIX(2.562915447)); z3 = MULTIPLY(z3, - FIX(1.961570560)); z4 = MULTIPLY(d1, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 += z1 + z3; tmp1 = z2 + z4; tmp2 += z2 + z3; tmp3 += z1 + z4; - } - else + } + else { /* d1 == 0, d3 != 0, d5 == 0, d7 != 0 */ z3 = d7 + d3; z5 = MULTIPLY(z3, FIX(1.175875602)); - - tmp0 = MULTIPLY(d7, - FIX2(0.601344887)); + + tmp0 = MULTIPLY(d7, - FIX2(0.601344887)); z1 = MULTIPLY(d7, - FIX(0.899976223)); tmp2 = MULTIPLY(d3, FIX(0.509795579)); z2 = MULTIPLY(d3, - FIX(2.562915447)); z3 = MULTIPLY(z3, - FIX2(0.785694958)); - + tmp0 += z3; tmp1 = z2 + z5; tmp2 += z3; tmp3 = z1 + z5; } - } + } else { - if (d1) + if (d1) { /* d1 != 0, d3 == 0, d5 == 0, d7 != 0 */ z1 = d7 + d1; z5 = MULTIPLY(z1, FIX(1.175875602)); - tmp0 = MULTIPLY(d7, - FIX2(1.662939224)); + tmp0 = MULTIPLY(d7, - FIX2(1.662939224)); tmp3 = MULTIPLY(d1, FIX2(1.111140466)); z1 = MULTIPLY(z1, FIX2(0.275899379)); z3 = MULTIPLY(d7, - FIX(1.961570560)); @@ -1391,7 +1380,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp2 = z3 + z5; tmp3 += z1; } - else + else { /* d1 == 0, d3 == 0, d5 == 0, d7 != 0 */ tmp0 = MULTIPLY(d7, - FIX2(1.387039845)); @@ -1401,20 +1390,20 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) } } } - } - else + } + else { - if (d5) + if (d5) { - if (d3) + if (d3) { - if (d1) + if (d1) { /* d1 != 0, d3 != 0, d5 != 0, d7 == 0 */ z2 = d5 + d3; z4 = d5 + d1; z5 = MULTIPLY(d3 + z4, FIX(1.175875602)); - + tmp1 = MULTIPLY(d5, FIX(2.053119869)); tmp2 = MULTIPLY(d3, FIX(3.072711026)); tmp3 = MULTIPLY(d1, FIX(1.501321110)); @@ -1422,16 +1411,16 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = MULTIPLY(z2, - FIX(2.562915447)); z3 = MULTIPLY(d3, - FIX(1.961570560)); z4 = MULTIPLY(z4, - FIX(0.390180644)); - + z3 += z5; z4 += z5; - + tmp0 = z1 + z3; tmp1 += z2 + z4; tmp2 += z2 + z3; tmp3 += z1 + z4; } - else + else { /* d1 == 0, d3 != 0, d5 != 0, d7 == 0 */ z2 = d5 + d3; @@ -1442,27 +1431,27 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = MULTIPLY(z2, - FIX2(1.387039845)); z3 = MULTIPLY(d3, - FIX(1.961570560)); z4 = MULTIPLY(d5, - FIX(0.390180644)); - + tmp0 = z3 + z5; tmp1 += z2; tmp2 += z2; tmp3 = z4 + z5; } - } - else + } + else { - if (d1) + if (d1) { /* d1 != 0, d3 == 0, d5 != 0, d7 == 0 */ z4 = d5 + d1; z5 = MULTIPLY(z4, FIX(1.175875602)); - + tmp1 = MULTIPLY(d5, - FIX2(0.509795578)); tmp3 = MULTIPLY(d1, FIX2(0.601344887)); z1 = MULTIPLY(d1, - FIX(0.899976223)); z2 = MULTIPLY(d5, - FIX(2.562915447)); z4 = MULTIPLY(z4, FIX2(0.785694958)); - + tmp0 = z1 + z5; tmp1 += z4; tmp2 = z2 + z5; @@ -1482,7 +1471,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) { if (d3) { - if (d1) + if (d1) { /* d1 != 0, d3 != 0, d5 == 0, d7 == 0 */ z5 = d3 + d1; @@ -1493,7 +1482,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) z2 = MULTIPLY(d3, - FIX(2.172734803)); z4 = MULTIPLY(z5, FIX(0.785694958)); z5 = MULTIPLY(z5, FIX(1.175875602)); - + tmp0 = z1 - z4; tmp1 = z2 + z4; tmp2 += z5; @@ -1518,7 +1507,7 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) tmp2 = MULTIPLY(d1, FIX(1.175875602)); tmp3 = MULTIPLY(d1, FIX2(1.387039845)); } - else + else { /* d1 == 0, d3 == 0, d5 == 0, d7 == 0 */ tmp0 = tmp1 = tmp2 = tmp3 = 0; @@ -1545,8 +1534,9 @@ void vdec_IDCT( vdec_thread_t * p_vdec, dctelem_t * p_block, int i_idontcare ) CONST_BITS+PASS1_BITS+3); dataptr[DCTSIZE*4] = (dctelem_t) DESCALE(tmp13 - tmp0, CONST_BITS+PASS1_BITS+3); - - dataptr++; /* advance pointer to next column */ + + dataptr++; /* advance pointer to next column */ } #endif } +#endif