Пример #1
0
int main( int argc , char * argv[] )
{
   int xx[8] = { 1,2,3,4,4,4,3,2 } ;
   int yy[8] ; float zz[8] ; int ii ;

   for( ii=0 ;ii < 8 ; ii++ ) zz[ii] = xx[ii] ;

   memcpy(yy,xx,sizeof(int)*8) ;
   printf("y = %d %d %d %d %d %d %d %d\n",
          yy[0],yy[1],yy[2],yy[3],yy[4],yy[5],yy[6],yy[7]) ;
   dct8_ref(yy) ;
   printf("dct8_ref = %d %d %d %d %d %d %d %d\n",
          yy[0],yy[1],yy[2],yy[3],yy[4],yy[5],yy[6],yy[7]) ;
   idct8_ref(yy) ;
   printf("idct8_ref = %d %d %d %d %d %d %d %d\n",
          yy[0],yy[1],yy[2],yy[3],yy[4],yy[5],yy[6],yy[7]) ;

   memcpy(yy,xx,sizeof(int)*8) ;
   dct8(yy) ;
   printf("dct8 = %d %d %d %d %d %d %d %d\n",
          yy[0],yy[1],yy[2],yy[3],yy[4],yy[5],yy[6],yy[7]) ;
   idct8(yy) ;
   printf("idct8 = %d %d %d %d %d %d %d %d\n",
          yy[0],yy[1],yy[2],yy[3],yy[4],yy[5],yy[6],yy[7]) ;

   fdct8(zz) ;
   printf("fdct8 = %g %g %g %g %g %g %g %g\n",
          zz[0],zz[1],zz[2],zz[3],zz[4],zz[5],zz[6],zz[7]) ;
   ifdct8(zz) ;
   printf("ifdct8 = %g %g %g %g %g %g %g %g\n",
          zz[0],zz[1],zz[2],zz[3],zz[4],zz[5],zz[6],zz[7]) ;

   exit(0) ;
}
Пример #2
0
void vp9_idct8x8_64_add_c(const int16_t *input, uint8_t *dest, int stride) {
  int16_t out[8 * 8];
  int16_t *outptr = out;
  int i, j;
  int16_t temp_in[8], temp_out[8];

  // First transform rows
  for (i = 0; i < 8; ++i) {
    idct8(input, outptr);
    input += 8;
    outptr += 8;
  }

  // Then transform columns
  for (i = 0; i < 8; ++i) {
    for (j = 0; j < 8; ++j)
      temp_in[j] = out[j * 8 + i];
    idct8(temp_in, temp_out);
    for (j = 0; j < 8; ++j)
      dest[j * stride + i] = clip_pixel(ROUND_POWER_OF_TWO(temp_out[j], 5)
                                  + dest[j * stride + i]);
  }
}
Пример #3
0
static void idct8x8(double *x, int xstride, const double *y, int ystride) {
  double t[8*8];
  int i;
  for (i = 0; i < 8; i++) idct8(t + i, 8, y + ystride*i);
  for (i = 0; i < 8; i++) idct8(x + i, xstride, t + 8*i);
}