LCOV - code coverage report
Current view: directory - media/libvpx/vp8/decoder/x86 - idct_blk_sse2.c (source / functions) Found Hit Coverage
Test: app.info Lines: 49 0 0.0 %
Date: 2012-06-02 Functions: 3 0 0.0 %

       1                 : /*
       2                 :  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
       3                 :  *
       4                 :  *  Use of this source code is governed by a BSD-style license
       5                 :  *  that can be found in the LICENSE file in the root of the source
       6                 :  *  tree. An additional intellectual property rights grant can be found
       7                 :  *  in the file PATENTS.  All contributing project authors may
       8                 :  *  be found in the AUTHORS file in the root of the source tree.
       9                 :  */
      10                 : 
      11                 : #include "vpx_ports/config.h"
      12                 : #include "vp8/common/idct.h"
      13                 : #include "vp8/decoder/dequantize.h"
      14                 : 
      15                 : void idct_dequant_dc_0_2x_sse2
      16                 :             (short *q, short *dq, unsigned char *pre,
      17                 :              unsigned char *dst, int dst_stride, short *dc);
      18                 : void idct_dequant_dc_full_2x_sse2
      19                 :             (short *q, short *dq, unsigned char *pre,
      20                 :              unsigned char *dst, int dst_stride, short *dc);
      21                 : 
      22                 : void idct_dequant_0_2x_sse2
      23                 :             (short *q, short *dq ,unsigned char *pre,
      24                 :              unsigned char *dst, int dst_stride, int blk_stride);
      25                 : void idct_dequant_full_2x_sse2
      26                 :             (short *q, short *dq ,unsigned char *pre,
      27                 :              unsigned char *dst, int dst_stride, int blk_stride);
      28                 : 
      29               0 : void vp8_dequant_dc_idct_add_y_block_sse2
      30                 :             (short *q, short *dq, unsigned char *pre,
      31                 :              unsigned char *dst, int stride, char *eobs, short *dc)
      32                 : {
      33                 :     int i;
      34                 : 
      35               0 :     for (i = 0; i < 4; i++)
      36                 :     {
      37               0 :         if (((short *)(eobs))[0] & 0xfefe)
      38               0 :             idct_dequant_dc_full_2x_sse2 (q, dq, pre, dst, stride, dc);
      39                 :         else
      40               0 :             idct_dequant_dc_0_2x_sse2 (q, dq, pre, dst, stride, dc);
      41                 : 
      42               0 :         if (((short *)(eobs))[1] & 0xfefe)
      43               0 :             idct_dequant_dc_full_2x_sse2 (q+32, dq, pre+8, dst+8, stride, dc+2);
      44                 :         else
      45               0 :             idct_dequant_dc_0_2x_sse2 (q+32, dq, pre+8, dst+8, stride, dc+2);
      46                 : 
      47               0 :         q    += 64;
      48               0 :         dc   += 4;
      49               0 :         pre  += 64;
      50               0 :         dst  += stride*4;
      51               0 :         eobs += 4;
      52                 :     }
      53               0 : }
      54                 : 
      55               0 : void vp8_dequant_idct_add_y_block_sse2
      56                 :             (short *q, short *dq, unsigned char *pre,
      57                 :              unsigned char *dst, int stride, char *eobs)
      58                 : {
      59                 :     int i;
      60                 : 
      61               0 :     for (i = 0; i < 4; i++)
      62                 :     {
      63               0 :         if (((short *)(eobs))[0] & 0xfefe)
      64               0 :             idct_dequant_full_2x_sse2 (q, dq, pre, dst, stride, 16);
      65                 :         else
      66               0 :             idct_dequant_0_2x_sse2 (q, dq, pre, dst, stride, 16);
      67                 : 
      68               0 :         if (((short *)(eobs))[1] & 0xfefe)
      69               0 :             idct_dequant_full_2x_sse2 (q+32, dq, pre+8, dst+8, stride, 16);
      70                 :         else
      71               0 :             idct_dequant_0_2x_sse2 (q+32, dq, pre+8, dst+8, stride, 16);
      72                 : 
      73               0 :         q    += 64;
      74               0 :         pre  += 64;
      75               0 :         dst  += stride*4;
      76               0 :         eobs += 4;
      77                 :     }
      78               0 : }
      79                 : 
      80               0 : void vp8_dequant_idct_add_uv_block_sse2
      81                 :             (short *q, short *dq, unsigned char *pre,
      82                 :              unsigned char *dstu, unsigned char *dstv, int stride, char *eobs)
      83                 : {
      84               0 :     if (((short *)(eobs))[0] & 0xfefe)
      85               0 :         idct_dequant_full_2x_sse2 (q, dq, pre, dstu, stride, 8);
      86                 :     else
      87               0 :         idct_dequant_0_2x_sse2 (q, dq, pre, dstu, stride, 8);
      88                 : 
      89               0 :     q    += 32;
      90               0 :     pre  += 32;
      91               0 :     dstu += stride*4;
      92                 : 
      93               0 :     if (((short *)(eobs))[1] & 0xfefe)
      94               0 :         idct_dequant_full_2x_sse2 (q, dq, pre, dstu, stride, 8);
      95                 :     else
      96               0 :         idct_dequant_0_2x_sse2 (q, dq, pre, dstu, stride, 8);
      97                 : 
      98               0 :     q    += 32;
      99               0 :     pre  += 32;
     100                 : 
     101               0 :     if (((short *)(eobs))[2] & 0xfefe)
     102               0 :         idct_dequant_full_2x_sse2 (q, dq, pre, dstv, stride, 8);
     103                 :     else
     104               0 :         idct_dequant_0_2x_sse2 (q, dq, pre, dstv, stride, 8);
     105                 : 
     106               0 :     q    += 32;
     107               0 :     pre  += 32;
     108               0 :     dstv += stride*4;
     109                 : 
     110               0 :     if (((short *)(eobs))[3] & 0xfefe)
     111               0 :         idct_dequant_full_2x_sse2 (q, dq, pre, dstv, stride, 8);
     112                 :     else
     113               0 :         idct_dequant_0_2x_sse2 (q, dq, pre, dstv, stride, 8);
     114               0 : }

Generated by: LCOV version 1.7