libavcodec/x86/vp6dsp_sse2.c File Reference

SSE2-optimized functions for the VP6 decoder. More...

#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "dsputil_mmx.h"
#include "vp6dsp_sse2.h"

Go to the source code of this file.

Defines

#define DIAG4_SSE2(in1, in2, in3, in4)

Functions

void ff_vp6_filter_diag4_sse2 (uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights)


Detailed Description

SSE2-optimized functions for the VP6 decoder.

Copyright (C) 2009 Zuxy Meng <zuxy.meng@gmail.com>

This file is part of FFmpeg.

FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

FFmpeg 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with FFmpeg; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Definition in file vp6dsp_sse2.c.


Define Documentation

#define DIAG4_SSE2 ( in1,
in2,
in3,
in4   ) 

Value:

"movq  "#in1"(%0), %%xmm0            \n\t"                                \
    "movq  "#in2"(%0), %%xmm1            \n\t"                                \
    "punpcklbw %%xmm7, %%xmm0            \n\t"                                \
    "punpcklbw %%xmm7, %%xmm1            \n\t"                                \
    "pmullw    %%xmm4, %%xmm0            \n\t" /* src[x-8 ] * biweight [0] */ \
    "pmullw    %%xmm5, %%xmm1            \n\t" /* src[x   ] * biweight [1] */ \
    "paddw     %%xmm1, %%xmm0            \n\t"                                \
    "movq  "#in3"(%0), %%xmm1            \n\t"                                \
    "movq  "#in4"(%0), %%xmm2            \n\t"                                \
    "punpcklbw %%xmm7, %%xmm1            \n\t"                                \
    "punpcklbw %%xmm7, %%xmm2            \n\t"                                \
    "pmullw    %%xmm6, %%xmm1            \n\t" /* src[x+8 ] * biweight [2] */ \
    "pmullw    %%xmm3, %%xmm2            \n\t" /* src[x+16] * biweight [3] */ \
    "paddw     %%xmm2, %%xmm1            \n\t"                                \
    "paddsw     %%xmm1, %%xmm0           \n\t"                                \
    "paddsw "MANGLE(ff_pw_64)", %%xmm0   \n\t" /* Add 64 */                   \
    "psraw         $7, %%xmm0            \n\t"                                \
    "packuswb  %%xmm0, %%xmm0            \n\t"                                \
    "movq      %%xmm0,   (%1)            \n\t"                                \

Definition at line 29 of file vp6dsp_sse2.c.

Referenced by ff_vp6_filter_diag4_sse2().


Function Documentation

void ff_vp6_filter_diag4_sse2 ( uint8_t *  dst,
uint8_t *  src,
int  stride,
const int16_t *  h_weights,
const int16_t *  v_weights 
)

Definition at line 50 of file vp6dsp_sse2.c.

Referenced by dsputil_init_mmx().


Generated on Fri Oct 26 02:36:54 2012 for FFmpeg by  doxygen 1.5.8