This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/v4l-utils.git tree:

Subject: jidctflt.c: run through checkpatch.pl
Author:  Hans Verkuil <hverk...@xs4all.nl>
Date:    Wed Apr 28 08:44:56 2010 +0200

Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>

 lib/libv4lconvert/jidctflt.c |  374 +++++++++++++++++++++---------------------
 1 files changed, 186 insertions(+), 188 deletions(-)

---

http://git.linuxtv.org/v4l-utils.git?a=commitdiff;h=ca5224d3fd15f39fc1a75413615e9f16dd8e7ea4

diff --git a/lib/libv4lconvert/jidctflt.c b/lib/libv4lconvert/jidctflt.c
index 532abc7..7e2a87f 100644
--- a/lib/libv4lconvert/jidctflt.c
+++ b/lib/libv4lconvert/jidctflt.c
@@ -69,49 +69,48 @@
  * implementation, accuracy is lost due to imprecise representation of the
  * scaled quantization values.  However, that problem does not arise if
  * we use floating point arithmetic.
- */
+*/
 
 #include <stdint.h>
 #include "tinyjpeg-internal.h"
 
 #define FAST_FLOAT float
 #define DCTSIZE           8
-#define DCTSIZE2   (DCTSIZE*DCTSIZE)
+#define DCTSIZE2   (DCTSIZE * DCTSIZE)
 
-#define DEQUANTIZE(coef,quantval)  (((FAST_FLOAT) (coef)) * (quantval))
+#define DEQUANTIZE(coef, quantval)  (((FAST_FLOAT) (coef)) * (quantval))
 
 #if defined(__GNUC__) && (defined(__i686__) || defined(__x86_64__))
 
 static inline unsigned char descale_and_clamp(int x, int shift)
 {
-  __asm__ (
-      "add %3,%1\n"
-      "\tsar %2,%1\n"
-      "\tsub $-128,%1\n"
-      "\tcmovl %5,%1\n"        /* Use the sub to compare to 0 */
-      "\tcmpl %4,%1\n"
-      "\tcmovg %4,%1\n"
-      : "=r"(x)
-      : "0"(x), "Ic"((unsigned char)shift), "ir"(1U<<(shift-1)), "r" (0xff), 
"r" (0)
-      );
-  return x;
+       __asm__ (
+               "add %3,%1\n"
+               "\tsar %2,%1\n"
+               "\tsub $-128,%1\n"
+               "\tcmovl %5,%1\n"       /* Use the sub to compare to 0 */
+               "\tcmpl %4,%1\n"
+               "\tcmovg %4,%1\n"
+               : "=r"(x)
+               : "0"(x), "Ic"((unsigned char)shift), "ir" (1U << (shift - 1)), 
"r" (0xff), "r" (0)
+               );
+       return x;
 }
 
 #else
 static inline unsigned char descale_and_clamp(int x, int shift)
 {
-  x += (1UL<<(shift-1));
-  if (x<0)
-    x = (x >> shift) | ((~(0UL)) << (32-(shift)));
-  else
-    x >>= shift;
-  x += 128;
-  if (x>255)
-    return 255;
-  else if (x<0)
-    return 0;
-  else
-    return x;
+       x += 1UL << (shift - 1);
+       if (x < 0)
+               x = (x >> shift) | ((~(0UL)) << (32 - (shift)));
+       else
+               x >>= shift;
+       x += 128;
+       if (x > 255)
+               return 255;
+       if (x < 0)
+               return 0;
+       return x;
 }
 #endif
 
@@ -119,168 +118,167 @@ static inline unsigned char descale_and_clamp(int x, 
int shift)
  * Perform dequantization and inverse DCT on one block of coefficients.
  */
 
-void
-tinyjpeg_idct_float (struct component *compptr, uint8_t *output_buf, int 
stride)
+void tinyjpeg_idct_float(struct component *compptr, uint8_t *output_buf, int 
stride)
 {
-  FAST_FLOAT tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
-  FAST_FLOAT tmp10, tmp11, tmp12, tmp13;
-  FAST_FLOAT z5, z10, z11, z12, z13;
-  int16_t *inptr;
-  FAST_FLOAT *quantptr;
-  FAST_FLOAT *wsptr;
-  uint8_t *outptr;
-  int ctr;
-  FAST_FLOAT workspace[DCTSIZE2]; /* buffers data between passes */
-
-  /* Pass 1: process columns from input, store into work array. */
-
-  inptr = compptr->DCT;
-  quantptr = compptr->Q_table;
-  wsptr = workspace;
-  for (ctr = DCTSIZE; ctr > 0; ctr--) {
-    /* Due to quantization, we will usually find that many of the input
-     * coefficients are zero, especially the AC terms.  We can exploit this
-     * by short-circuiting the IDCT calculation for any column in which all
-     * the AC terms are zero.  In that case each output is equal to the
-     * DC coefficient (with scale factor as needed).
-     * With typical images and quantization tables, half or more of the
-     * column DCT calculations can be simplified this way.
-     */
-
-    if (inptr[DCTSIZE*1] == 0 && inptr[DCTSIZE*2] == 0 &&
-       inptr[DCTSIZE*3] == 0 && inptr[DCTSIZE*4] == 0 &&
-       inptr[DCTSIZE*5] == 0 && inptr[DCTSIZE*6] == 0 &&
-       inptr[DCTSIZE*7] == 0) {
-      /* AC terms all zero */
-      FAST_FLOAT dcval = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]);
-
-      wsptr[DCTSIZE*0] = dcval;
-      wsptr[DCTSIZE*1] = dcval;
-      wsptr[DCTSIZE*2] = dcval;
-      wsptr[DCTSIZE*3] = dcval;
-      wsptr[DCTSIZE*4] = dcval;
-      wsptr[DCTSIZE*5] = dcval;
-      wsptr[DCTSIZE*6] = dcval;
-      wsptr[DCTSIZE*7] = dcval;
-
-      inptr++;                 /* advance pointers to next column */
-      quantptr++;
-      wsptr++;
-      continue;
-    }
-
-    /* Even part */
-
-    tmp0 = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]);
-    tmp1 = DEQUANTIZE(inptr[DCTSIZE*2], quantptr[DCTSIZE*2]);
-    tmp2 = DEQUANTIZE(inptr[DCTSIZE*4], quantptr[DCTSIZE*4]);
-    tmp3 = DEQUANTIZE(inptr[DCTSIZE*6], quantptr[DCTSIZE*6]);
-
-    tmp10 = tmp0 + tmp2;       /* phase 3 */
-    tmp11 = tmp0 - tmp2;
-
-    tmp13 = tmp1 + tmp3;       /* phases 5-3 */
-    tmp12 = (tmp1 - tmp3) * ((FAST_FLOAT) 1.414213562) - tmp13; /* 2*c4 */
-
-    tmp0 = tmp10 + tmp13;      /* phase 2 */
-    tmp3 = tmp10 - tmp13;
-    tmp1 = tmp11 + tmp12;
-    tmp2 = tmp11 - tmp12;
-
-    /* Odd part */
-
-    tmp4 = DEQUANTIZE(inptr[DCTSIZE*1], quantptr[DCTSIZE*1]);
-    tmp5 = DEQUANTIZE(inptr[DCTSIZE*3], quantptr[DCTSIZE*3]);
-    tmp6 = DEQUANTIZE(inptr[DCTSIZE*5], quantptr[DCTSIZE*5]);
-    tmp7 = DEQUANTIZE(inptr[DCTSIZE*7], quantptr[DCTSIZE*7]);
-
-    z13 = tmp6 + tmp5;         /* phase 6 */
-    z10 = tmp6 - tmp5;
-    z11 = tmp4 + tmp7;
-    z12 = tmp4 - tmp7;
-
-    tmp7 = z11 + z13;          /* phase 5 */
-    tmp11 = (z11 - z13) * ((FAST_FLOAT) 1.414213562); /* 2*c4 */
-
-    z5 = (z10 + z12) * ((FAST_FLOAT) 1.847759065); /* 2*c2 */
-    tmp10 = ((FAST_FLOAT) 1.082392200) * z12 - z5; /* 2*(c2-c6) */
-    tmp12 = ((FAST_FLOAT) -2.613125930) * z10 + z5; /* -2*(c2+c6) */
-
-    tmp6 = tmp12 - tmp7;       /* phase 2 */
-    tmp5 = tmp11 - tmp6;
-    tmp4 = tmp10 + tmp5;
-
-    wsptr[DCTSIZE*0] = tmp0 + tmp7;
-    wsptr[DCTSIZE*7] = tmp0 - tmp7;
-    wsptr[DCTSIZE*1] = tmp1 + tmp6;
-    wsptr[DCTSIZE*6] = tmp1 - tmp6;
-    wsptr[DCTSIZE*2] = tmp2 + tmp5;
-    wsptr[DCTSIZE*5] = tmp2 - tmp5;
-    wsptr[DCTSIZE*4] = tmp3 + tmp4;
-    wsptr[DCTSIZE*3] = tmp3 - tmp4;
-
-    inptr++;                   /* advance pointers to next column */
-    quantptr++;
-    wsptr++;
-  }
-
-  /* Pass 2: process rows from work array, store into output array. */
-  /* Note that we must descale the results by a factor of 8 == 2**3. */
-
-  wsptr = workspace;
-  outptr = output_buf;
-  for (ctr = 0; ctr < DCTSIZE; ctr++) {
-    /* Rows of zeroes can be exploited in the same way as we did with columns.
-     * However, the column calculation has created many nonzero AC terms, so
-     * the simplification applies less often (typically 5% to 10% of the time).
-     * And testing floats for zero is relatively expensive, so we don't bother.
-     */
-
-    /* Even part */
-
-    tmp10 = wsptr[0] + wsptr[4];
-    tmp11 = wsptr[0] - wsptr[4];
-
-    tmp13 = wsptr[2] + wsptr[6];
-    tmp12 = (wsptr[2] - wsptr[6]) * ((FAST_FLOAT) 1.414213562) - tmp13;
-
-    tmp0 = tmp10 + tmp13;
-    tmp3 = tmp10 - tmp13;
-    tmp1 = tmp11 + tmp12;
-    tmp2 = tmp11 - tmp12;
-
-    /* Odd part */
-
-    z13 = wsptr[5] + wsptr[3];
-    z10 = wsptr[5] - wsptr[3];
-    z11 = wsptr[1] + wsptr[7];
-    z12 = wsptr[1] - wsptr[7];
-
-    tmp7 = z11 + z13;
-    tmp11 = (z11 - z13) * ((FAST_FLOAT) 1.414213562);
-
-    z5 = (z10 + z12) * ((FAST_FLOAT) 1.847759065); /* 2*c2 */
-    tmp10 = ((FAST_FLOAT) 1.082392200) * z12 - z5; /* 2*(c2-c6) */
-    tmp12 = ((FAST_FLOAT) -2.613125930) * z10 + z5; /* -2*(c2+c6) */
-
-    tmp6 = tmp12 - tmp7;
-    tmp5 = tmp11 - tmp6;
-    tmp4 = tmp10 + tmp5;
-
-    /* Final output stage: scale down by a factor of 8 and range-limit */
-
-    outptr[0] = descale_and_clamp((int)(tmp0 + tmp7), 3);
-    outptr[7] = descale_and_clamp((int)(tmp0 - tmp7), 3);
-    outptr[1] = descale_and_clamp((int)(tmp1 + tmp6), 3);
-    outptr[6] = descale_and_clamp((int)(tmp1 - tmp6), 3);
-    outptr[2] = descale_and_clamp((int)(tmp2 + tmp5), 3);
-    outptr[5] = descale_and_clamp((int)(tmp2 - tmp5), 3);
-    outptr[4] = descale_and_clamp((int)(tmp3 + tmp4), 3);
-    outptr[3] = descale_and_clamp((int)(tmp3 - tmp4), 3);
-
-
-    wsptr += DCTSIZE;          /* advance pointer to next row */
-    outptr += stride;
-  }
+       FAST_FLOAT tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
+       FAST_FLOAT tmp10, tmp11, tmp12, tmp13;
+       FAST_FLOAT z5, z10, z11, z12, z13;
+       int16_t *inptr;
+       FAST_FLOAT *quantptr;
+       FAST_FLOAT *wsptr;
+       uint8_t *outptr;
+       int ctr;
+       FAST_FLOAT workspace[DCTSIZE2]; /* buffers data between passes */
+
+       /* Pass 1: process columns from input, store into work array. */
+
+       inptr = compptr->DCT;
+       quantptr = compptr->Q_table;
+       wsptr = workspace;
+       for (ctr = DCTSIZE; ctr > 0; ctr--) {
+               /* Due to quantization, we will usually find that many of the 
input
+                * coefficients are zero, especially the AC terms.  We can 
exploit this
+                * by short-circuiting the IDCT calculation for any column in 
which all
+                * the AC terms are zero.  In that case each output is equal to 
the
+                * DC coefficient (with scale factor as needed).
+                * With typical images and quantization tables, half or more of 
the
+                * column DCT calculations can be simplified this way.
+                */
+
+               if (inptr[DCTSIZE*1] == 0 && inptr[DCTSIZE*2] == 0 &&
+                               inptr[DCTSIZE*3] == 0 && inptr[DCTSIZE*4] == 0 
&&
+                               inptr[DCTSIZE*5] == 0 && inptr[DCTSIZE*6] == 0 
&&
+                               inptr[DCTSIZE*7] == 0) {
+                       /* AC terms all zero */
+                       FAST_FLOAT dcval = DEQUANTIZE(inptr[DCTSIZE*0], 
quantptr[DCTSIZE*0]);
+
+                       wsptr[DCTSIZE*0] = dcval;
+                       wsptr[DCTSIZE*1] = dcval;
+                       wsptr[DCTSIZE*2] = dcval;
+                       wsptr[DCTSIZE*3] = dcval;
+                       wsptr[DCTSIZE*4] = dcval;
+                       wsptr[DCTSIZE*5] = dcval;
+                       wsptr[DCTSIZE*6] = dcval;
+                       wsptr[DCTSIZE*7] = dcval;
+
+                       inptr++;                        /* advance pointers to 
next column */
+                       quantptr++;
+                       wsptr++;
+                       continue;
+               }
+
+               /* Even part */
+
+               tmp0 = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]);
+               tmp1 = DEQUANTIZE(inptr[DCTSIZE*2], quantptr[DCTSIZE*2]);
+               tmp2 = DEQUANTIZE(inptr[DCTSIZE*4], quantptr[DCTSIZE*4]);
+               tmp3 = DEQUANTIZE(inptr[DCTSIZE*6], quantptr[DCTSIZE*6]);
+
+               tmp10 = tmp0 + tmp2;    /* phase 3 */
+               tmp11 = tmp0 - tmp2;
+
+               tmp13 = tmp1 + tmp3;    /* phases 5-3 */
+               tmp12 = (tmp1 - tmp3) * ((FAST_FLOAT) 1.414213562) - tmp13; /* 
2*c4 */
+
+               tmp0 = tmp10 + tmp13;   /* phase 2 */
+               tmp3 = tmp10 - tmp13;
+               tmp1 = tmp11 + tmp12;
+               tmp2 = tmp11 - tmp12;
+
+               /* Odd part */
+
+               tmp4 = DEQUANTIZE(inptr[DCTSIZE*1], quantptr[DCTSIZE*1]);
+               tmp5 = DEQUANTIZE(inptr[DCTSIZE*3], quantptr[DCTSIZE*3]);
+               tmp6 = DEQUANTIZE(inptr[DCTSIZE*5], quantptr[DCTSIZE*5]);
+               tmp7 = DEQUANTIZE(inptr[DCTSIZE*7], quantptr[DCTSIZE*7]);
+
+               z13 = tmp6 + tmp5;              /* phase 6 */
+               z10 = tmp6 - tmp5;
+               z11 = tmp4 + tmp7;
+               z12 = tmp4 - tmp7;
+
+               tmp7 = z11 + z13;               /* phase 5 */
+               tmp11 = (z11 - z13) * ((FAST_FLOAT) 1.414213562); /* 2*c4 */
+
+               z5 = (z10 + z12) * ((FAST_FLOAT) 1.847759065); /* 2*c2 */
+               tmp10 = ((FAST_FLOAT) 1.082392200) * z12 - z5; /* 2*(c2-c6) */
+               tmp12 = ((FAST_FLOAT) -2.613125930) * z10 + z5; /* -2*(c2+c6) */
+
+               tmp6 = tmp12 - tmp7;    /* phase 2 */
+               tmp5 = tmp11 - tmp6;
+               tmp4 = tmp10 + tmp5;
+
+               wsptr[DCTSIZE*0] = tmp0 + tmp7;
+               wsptr[DCTSIZE*7] = tmp0 - tmp7;
+               wsptr[DCTSIZE*1] = tmp1 + tmp6;
+               wsptr[DCTSIZE*6] = tmp1 - tmp6;
+               wsptr[DCTSIZE*2] = tmp2 + tmp5;
+               wsptr[DCTSIZE*5] = tmp2 - tmp5;
+               wsptr[DCTSIZE*4] = tmp3 + tmp4;
+               wsptr[DCTSIZE*3] = tmp3 - tmp4;
+
+               inptr++;                        /* advance pointers to next 
column */
+               quantptr++;
+               wsptr++;
+       }
+
+       /* Pass 2: process rows from work array, store into output array. */
+       /* Note that we must descale the results by a factor of 8 == 2**3. */
+
+       wsptr = workspace;
+       outptr = output_buf;
+       for (ctr = 0; ctr < DCTSIZE; ctr++) {
+               /* Rows of zeroes can be exploited in the same way as we did 
with columns.
+                * However, the column calculation has created many nonzero AC 
terms, so
+                * the simplification applies less often (typically 5% to 10% 
of the time).
+                * And testing floats for zero is relatively expensive, so we 
don't bother.
+                */
+
+               /* Even part */
+
+               tmp10 = wsptr[0] + wsptr[4];
+               tmp11 = wsptr[0] - wsptr[4];
+
+               tmp13 = wsptr[2] + wsptr[6];
+               tmp12 = (wsptr[2] - wsptr[6]) * ((FAST_FLOAT) 1.414213562) - 
tmp13;
+
+               tmp0 = tmp10 + tmp13;
+               tmp3 = tmp10 - tmp13;
+               tmp1 = tmp11 + tmp12;
+               tmp2 = tmp11 - tmp12;
+
+               /* Odd part */
+
+               z13 = wsptr[5] + wsptr[3];
+               z10 = wsptr[5] - wsptr[3];
+               z11 = wsptr[1] + wsptr[7];
+               z12 = wsptr[1] - wsptr[7];
+
+               tmp7 = z11 + z13;
+               tmp11 = (z11 - z13) * ((FAST_FLOAT) 1.414213562);
+
+               z5 = (z10 + z12) * ((FAST_FLOAT) 1.847759065); /* 2*c2 */
+               tmp10 = ((FAST_FLOAT) 1.082392200) * z12 - z5; /* 2*(c2-c6) */
+               tmp12 = ((FAST_FLOAT) -2.613125930) * z10 + z5; /* -2*(c2+c6) */
+
+               tmp6 = tmp12 - tmp7;
+               tmp5 = tmp11 - tmp6;
+               tmp4 = tmp10 + tmp5;
+
+               /* Final output stage: scale down by a factor of 8 and 
range-limit */
+
+               outptr[0] = descale_and_clamp((int)(tmp0 + tmp7), 3);
+               outptr[7] = descale_and_clamp((int)(tmp0 - tmp7), 3);
+               outptr[1] = descale_and_clamp((int)(tmp1 + tmp6), 3);
+               outptr[6] = descale_and_clamp((int)(tmp1 - tmp6), 3);
+               outptr[2] = descale_and_clamp((int)(tmp2 + tmp5), 3);
+               outptr[5] = descale_and_clamp((int)(tmp2 - tmp5), 3);
+               outptr[4] = descale_and_clamp((int)(tmp3 + tmp4), 3);
+               outptr[3] = descale_and_clamp((int)(tmp3 - tmp4), 3);
+
+
+               wsptr += DCTSIZE;               /* advance pointer to next row 
*/
+               outptr += stride;
+       }
 }
 

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to