annotate rv30dsp.c @ 8404:60b6a780100b libavcodec

Port x264 deblocking code to libavcodec. This includes SSE2 luma deblocking code and both MMXEXT and SSE2 luma intra deblocking code for H.264 decoding. This assembly is available under --enable-gpl and speeds decoding of Cathedral by 7%.
author darkshikari
date Fri, 19 Dec 2008 13:45:13 +0000
parents 84a066542cd4
children e9d9d946f213
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
1 /*
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
2 * RV30 decoder motion compensation functions
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
3 * Copyright (c) 2007 Konstantin Shishkov
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
4 *
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
5 * This file is part of FFmpeg.
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
6 *
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
11 *
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
15 * Lesser General Public License for more details.
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
16 *
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
20 */
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
21
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
22 /**
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
23 * @file rv30dsp.c
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
24 * RV30 decoder motion compensation functions
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
25 */
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
26
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
27 #include "avcodec.h"
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
28 #include "dsputil.h"
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
29
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
30 #define RV30_LOWPASS(OPNAME, OP) \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
31 static av_unused void OPNAME ## rv30_tpel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
32 const int h=8;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
33 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
34 int i;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
35 for(i=0; i<h; i++)\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
36 {\
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
37 OP(dst[0], (-(src[-1]+src[2]) + src[0]*C1 + src[1]*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
38 OP(dst[1], (-(src[ 0]+src[3]) + src[1]*C1 + src[2]*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
39 OP(dst[2], (-(src[ 1]+src[4]) + src[2]*C1 + src[3]*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
40 OP(dst[3], (-(src[ 2]+src[5]) + src[3]*C1 + src[4]*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
41 OP(dst[4], (-(src[ 3]+src[6]) + src[4]*C1 + src[5]*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
42 OP(dst[5], (-(src[ 4]+src[7]) + src[5]*C1 + src[6]*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
43 OP(dst[6], (-(src[ 5]+src[8]) + src[6]*C1 + src[7]*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
44 OP(dst[7], (-(src[ 6]+src[9]) + src[7]*C1 + src[8]*C2 + 8)>>4);\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
45 dst+=dstStride;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
46 src+=srcStride;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
47 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
48 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
49 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
50 static void OPNAME ## rv30_tpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
51 const int w=8;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
52 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
53 int i;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
54 for(i=0; i<w; i++)\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
55 {\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
56 const int srcA= src[-1*srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
57 const int src0= src[0 *srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
58 const int src1= src[1 *srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
59 const int src2= src[2 *srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
60 const int src3= src[3 *srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
61 const int src4= src[4 *srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
62 const int src5= src[5 *srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
63 const int src6= src[6 *srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
64 const int src7= src[7 *srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
65 const int src8= src[8 *srcStride];\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
66 const int src9= src[9 *srcStride];\
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
67 OP(dst[0*dstStride], (-(srcA+src2) + src0*C1 + src1*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
68 OP(dst[1*dstStride], (-(src0+src3) + src1*C1 + src2*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
69 OP(dst[2*dstStride], (-(src1+src4) + src2*C1 + src3*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
70 OP(dst[3*dstStride], (-(src2+src5) + src3*C1 + src4*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
71 OP(dst[4*dstStride], (-(src3+src6) + src4*C1 + src5*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
72 OP(dst[5*dstStride], (-(src4+src7) + src5*C1 + src6*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
73 OP(dst[6*dstStride], (-(src5+src8) + src6*C1 + src7*C2 + 8)>>4);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
74 OP(dst[7*dstStride], (-(src6+src9) + src7*C1 + src8*C2 + 8)>>4);\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
75 dst++;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
76 src++;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
77 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
78 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
79 \
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
80 static void OPNAME ## rv30_tpel8_hv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
81 const int w = 8;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
82 const int h = 8;\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
83 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
84 int i, j;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
85 for(j = 0; j < h; j++){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
86 for(i = 0; i < w; i++){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
87 OP(dst[i], (\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
88 src[srcStride*-1+i-1] -12*src[srcStride*-1+i] -6*src[srcStride*-1+i+1] +src[srcStride*-1+i+2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
89 -12*src[srcStride* 0+i-1] +144*src[srcStride* 0+i] +72*src[srcStride* 0+i+1] -12*src[srcStride* 0+i+2] +\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
90 -6*src[srcStride* 1+i-1] +72*src[srcStride* 1+i] +36*src[srcStride* 1+i+1] -6*src[srcStride* 1+i+2] +\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
91 src[srcStride* 2+i-1] -12*src[srcStride* 2+i] -6*src[srcStride* 2+i+1] +src[srcStride* 2+i+2] +\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
92 128)>>8);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
93 }\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
94 src += srcStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
95 dst += dstStride;\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
96 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
97 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
98 \
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
99 static void OPNAME ## rv30_tpel8_hhv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
100 const int w = 8;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
101 const int h = 8;\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
102 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
103 int i, j;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
104 for(j = 0; j < h; j++){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
105 for(i = 0; i < w; i++){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
106 OP(dst[i], (\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
107 src[srcStride*-1+i-1] -12*src[srcStride*-1+i+1] -6*src[srcStride*-1+i] +src[srcStride*-1+i+2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
108 -12*src[srcStride* 0+i-1] +144*src[srcStride* 0+i+1] +72*src[srcStride* 0+i] -12*src[srcStride* 0+i+2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
109 -6*src[srcStride* 1+i-1] +72*src[srcStride* 1+i+1] +36*src[srcStride* 1+i] -6*src[srcStride* 1+i+2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
110 src[srcStride* 2+i-1] -12*src[srcStride* 2+i+1] -6*src[srcStride* 2+i] +src[srcStride* 2+i+2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
111 128)>>8);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
112 }\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
113 src += srcStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
114 dst += dstStride;\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
115 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
116 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
117 \
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
118 static void OPNAME ## rv30_tpel8_hvv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
119 const int w = 8;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
120 const int h = 8;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
121 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
122 int i, j;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
123 for(j = 0; j < h; j++){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
124 for(i = 0; i < w; i++){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
125 OP(dst[i], (\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
126 src[srcStride*-1+i-1] -12*src[srcStride*-1+i] -6*src[srcStride*-1+i+1] +src[srcStride*-1+i+2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
127 -6*src[srcStride* 0+i-1] +72*src[srcStride* 0+i] +36*src[srcStride* 0+i+1] -6*src[srcStride* 0+i+2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
128 -12*src[srcStride* 1+i-1] +144*src[srcStride* 1+i] +72*src[srcStride* 1+i+1] -12*src[srcStride* 1+i+2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
129 src[srcStride* 2+i-1] -12*src[srcStride* 2+i] -6*src[srcStride* 2+i+1] +src[srcStride* 2+i+2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
130 128)>>8);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
131 }\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
132 src += srcStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
133 dst += dstStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
134 }\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
135 }\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
136 \
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
137 static void OPNAME ## rv30_tpel8_hhvv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
138 const int w = 8;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
139 const int h = 8;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
140 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
141 int i, j;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
142 for(j = 0; j < h; j++){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
143 for(i = 0; i < w; i++){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
144 OP(dst[i], (\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
145 36*src[i+srcStride*0] +54*src[i+1+srcStride*0] +6*src[i+2+srcStride*0]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
146 54*src[i+srcStride*1] +81*src[i+1+srcStride*1] +9*src[i+2+srcStride*1]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
147 6*src[i+srcStride*2] + 9*src[i+1+srcStride*2] + src[i+2+srcStride*2]+\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
148 128)>>8);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
149 }\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
150 src += srcStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
151 dst += dstStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
152 }\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
153 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
154 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
155 static void OPNAME ## rv30_tpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
156 OPNAME ## rv30_tpel8_v_lowpass(dst , src , dstStride, srcStride, C1, C2);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
157 OPNAME ## rv30_tpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
158 src += 8*srcStride;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
159 dst += 8*dstStride;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
160 OPNAME ## rv30_tpel8_v_lowpass(dst , src , dstStride, srcStride, C1, C2);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
161 OPNAME ## rv30_tpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
162 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
163 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
164 static void OPNAME ## rv30_tpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
165 OPNAME ## rv30_tpel8_h_lowpass(dst , src , dstStride, srcStride, C1, C2);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
166 OPNAME ## rv30_tpel8_h_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
167 src += 8*srcStride;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
168 dst += 8*dstStride;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
169 OPNAME ## rv30_tpel8_h_lowpass(dst , src , dstStride, srcStride, C1, C2);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
170 OPNAME ## rv30_tpel8_h_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
171 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
172 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
173 static void OPNAME ## rv30_tpel16_hv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
174 OPNAME ## rv30_tpel8_hv_lowpass(dst , src , dstStride, srcStride);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
175 OPNAME ## rv30_tpel8_hv_lowpass(dst+8, src+8, dstStride, srcStride);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
176 src += 8*srcStride;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
177 dst += 8*dstStride;\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
178 OPNAME ## rv30_tpel8_hv_lowpass(dst , src , dstStride, srcStride);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
179 OPNAME ## rv30_tpel8_hv_lowpass(dst+8, src+8, dstStride, srcStride);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
180 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
181 \
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
182 static void OPNAME ## rv30_tpel16_hhv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
183 OPNAME ## rv30_tpel8_hhv_lowpass(dst , src , dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
184 OPNAME ## rv30_tpel8_hhv_lowpass(dst+8, src+8, dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
185 src += 8*srcStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
186 dst += 8*dstStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
187 OPNAME ## rv30_tpel8_hhv_lowpass(dst , src , dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
188 OPNAME ## rv30_tpel8_hhv_lowpass(dst+8, src+8, dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
189 }\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
190 \
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
191 static void OPNAME ## rv30_tpel16_hvv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
192 OPNAME ## rv30_tpel8_hvv_lowpass(dst , src , dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
193 OPNAME ## rv30_tpel8_hvv_lowpass(dst+8, src+8, dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
194 src += 8*srcStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
195 dst += 8*dstStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
196 OPNAME ## rv30_tpel8_hvv_lowpass(dst , src , dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
197 OPNAME ## rv30_tpel8_hvv_lowpass(dst+8, src+8, dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
198 }\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
199 \
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
200 static void OPNAME ## rv30_tpel16_hhvv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
201 OPNAME ## rv30_tpel8_hhvv_lowpass(dst , src , dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
202 OPNAME ## rv30_tpel8_hhvv_lowpass(dst+8, src+8, dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
203 src += 8*srcStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
204 dst += 8*dstStride;\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
205 OPNAME ## rv30_tpel8_hhvv_lowpass(dst , src , dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
206 OPNAME ## rv30_tpel8_hhvv_lowpass(dst+8, src+8, dstStride, srcStride);\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
207 }\
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
208 \
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
209
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
210 #define RV30_MC(OPNAME, SIZE) \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
211 static void OPNAME ## rv30_tpel ## SIZE ## _mc10_c(uint8_t *dst, uint8_t *src, int stride){\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
212 OPNAME ## rv30_tpel ## SIZE ## _h_lowpass(dst, src, stride, stride, 12, 6);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
213 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
214 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
215 static void OPNAME ## rv30_tpel ## SIZE ## _mc20_c(uint8_t *dst, uint8_t *src, int stride){\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
216 OPNAME ## rv30_tpel ## SIZE ## _h_lowpass(dst, src, stride, stride, 6, 12);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
217 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
218 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
219 static void OPNAME ## rv30_tpel ## SIZE ## _mc01_c(uint8_t *dst, uint8_t *src, int stride){\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
220 OPNAME ## rv30_tpel ## SIZE ## _v_lowpass(dst, src, stride, stride, 12, 6);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
221 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
222 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
223 static void OPNAME ## rv30_tpel ## SIZE ## _mc02_c(uint8_t *dst, uint8_t *src, int stride){\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
224 OPNAME ## rv30_tpel ## SIZE ## _v_lowpass(dst, src, stride, stride, 6, 12);\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
225 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
226 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
227 static void OPNAME ## rv30_tpel ## SIZE ## _mc11_c(uint8_t *dst, uint8_t *src, int stride){\
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
228 OPNAME ## rv30_tpel ## SIZE ## _hv_lowpass(dst, src, stride, stride);\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
229 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
230 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
231 static void OPNAME ## rv30_tpel ## SIZE ## _mc12_c(uint8_t *dst, uint8_t *src, int stride){\
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
232 OPNAME ## rv30_tpel ## SIZE ## _hvv_lowpass(dst, src, stride, stride);\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
233 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
234 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
235 static void OPNAME ## rv30_tpel ## SIZE ## _mc21_c(uint8_t *dst, uint8_t *src, int stride){\
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
236 OPNAME ## rv30_tpel ## SIZE ## _hhv_lowpass(dst, src, stride, stride);\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
237 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
238 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
239 static void OPNAME ## rv30_tpel ## SIZE ## _mc22_c(uint8_t *dst, uint8_t *src, int stride){\
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
240 OPNAME ## rv30_tpel ## SIZE ## _hhvv_lowpass(dst, src, stride, stride);\
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
241 }\
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
242 \
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
243
8367
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
244 #define op_avg(a, b) a = (((a)+cm[b]+1)>>1)
84a066542cd4 Unfortunately RV30 luma thirdpel MC functions cannot be substituted with
kostya
parents: 6106
diff changeset
245 #define op_put(a, b) a = cm[b]
6106
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
246
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
247 RV30_LOWPASS(put_ , op_put)
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
248 RV30_LOWPASS(avg_ , op_avg)
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
249 RV30_MC(put_, 8)
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
250 RV30_MC(put_, 16)
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
251 RV30_MC(avg_, 8)
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
252 RV30_MC(avg_, 16)
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
253
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
254 void ff_rv30dsp_init(DSPContext* c, AVCodecContext *avctx) {
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
255 c->put_rv30_tpel_pixels_tab[0][ 0] = c->put_h264_qpel_pixels_tab[0][0];
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
256 c->put_rv30_tpel_pixels_tab[0][ 1] = put_rv30_tpel16_mc10_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
257 c->put_rv30_tpel_pixels_tab[0][ 2] = put_rv30_tpel16_mc20_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
258 c->put_rv30_tpel_pixels_tab[0][ 4] = put_rv30_tpel16_mc01_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
259 c->put_rv30_tpel_pixels_tab[0][ 5] = put_rv30_tpel16_mc11_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
260 c->put_rv30_tpel_pixels_tab[0][ 6] = put_rv30_tpel16_mc21_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
261 c->put_rv30_tpel_pixels_tab[0][ 8] = put_rv30_tpel16_mc02_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
262 c->put_rv30_tpel_pixels_tab[0][ 9] = put_rv30_tpel16_mc12_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
263 c->put_rv30_tpel_pixels_tab[0][10] = put_rv30_tpel16_mc22_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
264 c->avg_rv30_tpel_pixels_tab[0][ 0] = c->avg_h264_qpel_pixels_tab[0][0];
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
265 c->avg_rv30_tpel_pixels_tab[0][ 1] = avg_rv30_tpel16_mc10_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
266 c->avg_rv30_tpel_pixels_tab[0][ 2] = avg_rv30_tpel16_mc20_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
267 c->avg_rv30_tpel_pixels_tab[0][ 4] = avg_rv30_tpel16_mc01_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
268 c->avg_rv30_tpel_pixels_tab[0][ 5] = avg_rv30_tpel16_mc11_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
269 c->avg_rv30_tpel_pixels_tab[0][ 6] = avg_rv30_tpel16_mc21_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
270 c->avg_rv30_tpel_pixels_tab[0][ 8] = avg_rv30_tpel16_mc02_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
271 c->avg_rv30_tpel_pixels_tab[0][ 9] = avg_rv30_tpel16_mc12_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
272 c->avg_rv30_tpel_pixels_tab[0][10] = avg_rv30_tpel16_mc22_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
273 c->put_rv30_tpel_pixels_tab[1][ 0] = c->put_h264_qpel_pixels_tab[1][0];
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
274 c->put_rv30_tpel_pixels_tab[1][ 1] = put_rv30_tpel8_mc10_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
275 c->put_rv30_tpel_pixels_tab[1][ 2] = put_rv30_tpel8_mc20_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
276 c->put_rv30_tpel_pixels_tab[1][ 4] = put_rv30_tpel8_mc01_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
277 c->put_rv30_tpel_pixels_tab[1][ 5] = put_rv30_tpel8_mc11_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
278 c->put_rv30_tpel_pixels_tab[1][ 6] = put_rv30_tpel8_mc21_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
279 c->put_rv30_tpel_pixels_tab[1][ 8] = put_rv30_tpel8_mc02_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
280 c->put_rv30_tpel_pixels_tab[1][ 9] = put_rv30_tpel8_mc12_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
281 c->put_rv30_tpel_pixels_tab[1][10] = put_rv30_tpel8_mc22_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
282 c->avg_rv30_tpel_pixels_tab[1][ 0] = c->avg_h264_qpel_pixels_tab[1][0];
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
283 c->avg_rv30_tpel_pixels_tab[1][ 1] = avg_rv30_tpel8_mc10_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
284 c->avg_rv30_tpel_pixels_tab[1][ 2] = avg_rv30_tpel8_mc20_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
285 c->avg_rv30_tpel_pixels_tab[1][ 4] = avg_rv30_tpel8_mc01_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
286 c->avg_rv30_tpel_pixels_tab[1][ 5] = avg_rv30_tpel8_mc11_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
287 c->avg_rv30_tpel_pixels_tab[1][ 6] = avg_rv30_tpel8_mc21_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
288 c->avg_rv30_tpel_pixels_tab[1][ 8] = avg_rv30_tpel8_mc02_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
289 c->avg_rv30_tpel_pixels_tab[1][ 9] = avg_rv30_tpel8_mc12_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
290 c->avg_rv30_tpel_pixels_tab[1][10] = avg_rv30_tpel8_mc22_c;
7185e3bb0614 RV30 thirdpel motion compensation support
kostya
parents:
diff changeset
291 }