Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Guillaume Martres
aom-rav1e
Commits
2b7338ac
Commit
2b7338ac
authored
Feb 03, 2014
by
James Zern
Committed by
Gerrit Code Review
Feb 03, 2014
Browse files
Merge "vp9_filter.h: rename interp_kernel type"
parents
0669cd57
cca4276d
Changes
6
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_blockd.h
View file @
2b7338ac
...
...
@@ -230,7 +230,7 @@ typedef struct macroblockd {
/* Inverse transform function pointers. */
void
(
*
itxm_add
)(
const
int16_t
*
input
,
uint8_t
*
dest
,
int
stride
,
int
eob
);
const
i
nterp
_k
ernel
*
interp_kernel
;
const
I
nterp
K
ernel
*
interp_kernel
;
int
corrupted
;
...
...
vp9/common/vp9_convolve.c
View file @
2b7338ac
...
...
@@ -20,7 +20,7 @@
static
void
convolve_horiz
(
const
uint8_t
*
src
,
ptrdiff_t
src_stride
,
uint8_t
*
dst
,
ptrdiff_t
dst_stride
,
const
i
nterp
_k
ernel
*
x_filters
,
const
I
nterp
K
ernel
*
x_filters
,
int
x0_q4
,
int
x_step_q4
,
int
w
,
int
h
)
{
int
x
,
y
;
src
-=
SUBPEL_TAPS
/
2
-
1
;
...
...
@@ -42,7 +42,7 @@ static void convolve_horiz(const uint8_t *src, ptrdiff_t src_stride,
static
void
convolve_avg_horiz
(
const
uint8_t
*
src
,
ptrdiff_t
src_stride
,
uint8_t
*
dst
,
ptrdiff_t
dst_stride
,
const
i
nterp
_k
ernel
*
x_filters
,
const
I
nterp
K
ernel
*
x_filters
,
int
x0_q4
,
int
x_step_q4
,
int
w
,
int
h
)
{
int
x
,
y
;
src
-=
SUBPEL_TAPS
/
2
-
1
;
...
...
@@ -65,7 +65,7 @@ static void convolve_avg_horiz(const uint8_t *src, ptrdiff_t src_stride,
static
void
convolve_vert
(
const
uint8_t
*
src
,
ptrdiff_t
src_stride
,
uint8_t
*
dst
,
ptrdiff_t
dst_stride
,
const
i
nterp
_k
ernel
*
y_filters
,
const
I
nterp
K
ernel
*
y_filters
,
int
y0_q4
,
int
y_step_q4
,
int
w
,
int
h
)
{
int
x
,
y
;
src
-=
src_stride
*
(
SUBPEL_TAPS
/
2
-
1
);
...
...
@@ -88,7 +88,7 @@ static void convolve_vert(const uint8_t *src, ptrdiff_t src_stride,
static
void
convolve_avg_vert
(
const
uint8_t
*
src
,
ptrdiff_t
src_stride
,
uint8_t
*
dst
,
ptrdiff_t
dst_stride
,
const
i
nterp
_k
ernel
*
y_filters
,
const
I
nterp
K
ernel
*
y_filters
,
int
y0_q4
,
int
y_step_q4
,
int
w
,
int
h
)
{
int
x
,
y
;
src
-=
src_stride
*
(
SUBPEL_TAPS
/
2
-
1
);
...
...
@@ -112,9 +112,9 @@ static void convolve_avg_vert(const uint8_t *src, ptrdiff_t src_stride,
static
void
convolve
(
const
uint8_t
*
src
,
ptrdiff_t
src_stride
,
uint8_t
*
dst
,
ptrdiff_t
dst_stride
,
const
i
nterp
_k
ernel
*
const
x_filters
,
const
I
nterp
K
ernel
*
const
x_filters
,
int
x0_q4
,
int
x_step_q4
,
const
i
nterp
_k
ernel
*
const
y_filters
,
const
I
nterp
K
ernel
*
const
y_filters
,
int
y0_q4
,
int
y_step_q4
,
int
w
,
int
h
)
{
// Fixed size intermediate buffer places limits on parameters.
...
...
@@ -138,14 +138,14 @@ static void convolve(const uint8_t *src, ptrdiff_t src_stride,
y_filters
,
y0_q4
,
y_step_q4
,
w
,
h
);
}
static
const
i
nterp
_k
ernel
*
get_filter_base
(
const
int16_t
*
filter
)
{
static
const
I
nterp
K
ernel
*
get_filter_base
(
const
int16_t
*
filter
)
{
// NOTE: This assumes that the filter table is 256-byte aligned.
// TODO(agrange) Modify to make independent of table alignment.
return
(
const
i
nterp
_k
ernel
*
)(((
intptr_t
)
filter
)
&
~
((
intptr_t
)
0xFF
));
return
(
const
I
nterp
K
ernel
*
)(((
intptr_t
)
filter
)
&
~
((
intptr_t
)
0xFF
));
}
static
int
get_filter_offset
(
const
int16_t
*
f
,
const
i
nterp
_k
ernel
*
base
)
{
return
(
const
i
nterp
_k
ernel
*
)(
intptr_t
)
f
-
base
;
static
int
get_filter_offset
(
const
int16_t
*
f
,
const
I
nterp
K
ernel
*
base
)
{
return
(
const
I
nterp
K
ernel
*
)(
intptr_t
)
f
-
base
;
}
void
vp9_convolve8_horiz_c
(
const
uint8_t
*
src
,
ptrdiff_t
src_stride
,
...
...
@@ -153,7 +153,7 @@ void vp9_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride,
const
int16_t
*
filter_x
,
int
x_step_q4
,
const
int16_t
*
filter_y
,
int
y_step_q4
,
int
w
,
int
h
)
{
const
i
nterp
_k
ernel
*
const
filters_x
=
get_filter_base
(
filter_x
);
const
I
nterp
K
ernel
*
const
filters_x
=
get_filter_base
(
filter_x
);
const
int
x0_q4
=
get_filter_offset
(
filter_x
,
filters_x
);
convolve_horiz
(
src
,
src_stride
,
dst
,
dst_stride
,
filters_x
,
...
...
@@ -165,7 +165,7 @@ void vp9_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride,
const
int16_t
*
filter_x
,
int
x_step_q4
,
const
int16_t
*
filter_y
,
int
y_step_q4
,
int
w
,
int
h
)
{
const
i
nterp
_k
ernel
*
const
filters_x
=
get_filter_base
(
filter_x
);
const
I
nterp
K
ernel
*
const
filters_x
=
get_filter_base
(
filter_x
);
const
int
x0_q4
=
get_filter_offset
(
filter_x
,
filters_x
);
convolve_avg_horiz
(
src
,
src_stride
,
dst
,
dst_stride
,
filters_x
,
...
...
@@ -177,7 +177,7 @@ void vp9_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride,
const
int16_t
*
filter_x
,
int
x_step_q4
,
const
int16_t
*
filter_y
,
int
y_step_q4
,
int
w
,
int
h
)
{
const
i
nterp
_k
ernel
*
const
filters_y
=
get_filter_base
(
filter_y
);
const
I
nterp
K
ernel
*
const
filters_y
=
get_filter_base
(
filter_y
);
const
int
y0_q4
=
get_filter_offset
(
filter_y
,
filters_y
);
convolve_vert
(
src
,
src_stride
,
dst
,
dst_stride
,
filters_y
,
y0_q4
,
y_step_q4
,
w
,
h
);
...
...
@@ -188,7 +188,7 @@ void vp9_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride,
const
int16_t
*
filter_x
,
int
x_step_q4
,
const
int16_t
*
filter_y
,
int
y_step_q4
,
int
w
,
int
h
)
{
const
i
nterp
_k
ernel
*
const
filters_y
=
get_filter_base
(
filter_y
);
const
I
nterp
K
ernel
*
const
filters_y
=
get_filter_base
(
filter_y
);
const
int
y0_q4
=
get_filter_offset
(
filter_y
,
filters_y
);
convolve_avg_vert
(
src
,
src_stride
,
dst
,
dst_stride
,
filters_y
,
y0_q4
,
y_step_q4
,
w
,
h
);
...
...
@@ -199,10 +199,10 @@ void vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride,
const
int16_t
*
filter_x
,
int
x_step_q4
,
const
int16_t
*
filter_y
,
int
y_step_q4
,
int
w
,
int
h
)
{
const
i
nterp
_k
ernel
*
const
filters_x
=
get_filter_base
(
filter_x
);
const
I
nterp
K
ernel
*
const
filters_x
=
get_filter_base
(
filter_x
);
const
int
x0_q4
=
get_filter_offset
(
filter_x
,
filters_x
);
const
i
nterp
_k
ernel
*
const
filters_y
=
get_filter_base
(
filter_y
);
const
I
nterp
K
ernel
*
const
filters_y
=
get_filter_base
(
filter_y
);
const
int
y0_q4
=
get_filter_offset
(
filter_y
,
filters_y
);
convolve
(
src
,
src_stride
,
dst
,
dst_stride
,
...
...
vp9/common/vp9_filter.c
View file @
2b7338ac
...
...
@@ -14,7 +14,7 @@
#include "vp9/common/vp9_filter.h"
DECLARE_ALIGNED
(
256
,
const
i
nterp
_k
ernel
,
DECLARE_ALIGNED
(
256
,
const
I
nterp
K
ernel
,
vp9_bilinear_filters
[
SUBPEL_SHIFTS
])
=
{
{
0
,
0
,
0
,
128
,
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
120
,
8
,
0
,
0
,
0
},
...
...
@@ -35,7 +35,7 @@ DECLARE_ALIGNED(256, const interp_kernel,
};
// Lagrangian interpolation filter
DECLARE_ALIGNED
(
256
,
const
i
nterp
_k
ernel
,
DECLARE_ALIGNED
(
256
,
const
I
nterp
K
ernel
,
vp9_sub_pel_filters_8
[
SUBPEL_SHIFTS
])
=
{
{
0
,
0
,
0
,
128
,
0
,
0
,
0
,
0
},
{
0
,
1
,
-
5
,
126
,
8
,
-
3
,
1
,
0
},
...
...
@@ -56,7 +56,7 @@ DECLARE_ALIGNED(256, const interp_kernel,
};
// DCT based filter
DECLARE_ALIGNED
(
256
,
const
i
nterp
_k
ernel
,
DECLARE_ALIGNED
(
256
,
const
I
nterp
K
ernel
,
vp9_sub_pel_filters_8s
[
SUBPEL_SHIFTS
])
=
{
{
0
,
0
,
0
,
128
,
0
,
0
,
0
,
0
},
{
-
1
,
3
,
-
7
,
127
,
8
,
-
3
,
1
,
0
},
...
...
@@ -77,7 +77,7 @@ DECLARE_ALIGNED(256, const interp_kernel,
};
// freqmultiplier = 0.5
DECLARE_ALIGNED
(
256
,
const
i
nterp
_k
ernel
,
DECLARE_ALIGNED
(
256
,
const
I
nterp
K
ernel
,
vp9_sub_pel_filters_8lp
[
SUBPEL_SHIFTS
])
=
{
{
0
,
0
,
0
,
128
,
0
,
0
,
0
,
0
},
{
-
3
,
-
1
,
32
,
64
,
38
,
1
,
-
3
,
0
},
...
...
@@ -98,14 +98,14 @@ DECLARE_ALIGNED(256, const interp_kernel,
};
static
const
i
nterp
_k
ernel
*
vp9_filter_kernels
[
4
]
=
{
static
const
I
nterp
K
ernel
*
vp9_filter_kernels
[
4
]
=
{
vp9_sub_pel_filters_8
,
vp9_sub_pel_filters_8lp
,
vp9_sub_pel_filters_8s
,
vp9_bilinear_filters
};
const
i
nterp
_k
ernel
*
vp9_get_interp_kernel
(
INTERP_FILTER
filter
)
{
const
I
nterp
K
ernel
*
vp9_get_interp_kernel
(
INTERP_FILTER
filter
)
{
assert
(
filter
!=
SWITCHABLE
);
return
vp9_filter_kernels
[
filter
];
}
...
...
vp9/common/vp9_filter.h
View file @
2b7338ac
...
...
@@ -33,14 +33,14 @@ typedef enum {
SWITCHABLE
=
4
/* should be the last one */
}
INTERP_FILTER
;
typedef
int16_t
i
nterp
_k
ernel
[
SUBPEL_TAPS
];
typedef
int16_t
I
nterp
K
ernel
[
SUBPEL_TAPS
];
const
i
nterp
_k
ernel
*
vp9_get_interp_kernel
(
INTERP_FILTER
filter
);
const
I
nterp
K
ernel
*
vp9_get_interp_kernel
(
INTERP_FILTER
filter
);
extern
const
i
nterp
_k
ernel
vp9_bilinear_filters
[
SUBPEL_SHIFTS
];
extern
const
i
nterp
_k
ernel
vp9_sub_pel_filters_8
[
SUBPEL_SHIFTS
];
extern
const
i
nterp
_k
ernel
vp9_sub_pel_filters_8s
[
SUBPEL_SHIFTS
];
extern
const
i
nterp
_k
ernel
vp9_sub_pel_filters_8lp
[
SUBPEL_SHIFTS
];
extern
const
I
nterp
K
ernel
vp9_bilinear_filters
[
SUBPEL_SHIFTS
];
extern
const
I
nterp
K
ernel
vp9_sub_pel_filters_8
[
SUBPEL_SHIFTS
];
extern
const
I
nterp
K
ernel
vp9_sub_pel_filters_8s
[
SUBPEL_SHIFTS
];
extern
const
I
nterp
K
ernel
vp9_sub_pel_filters_8lp
[
SUBPEL_SHIFTS
];
// The VP9_BILINEAR_FILTERS_2TAP macro returns a pointer to the bilinear
// filter kernel as a 2 tap filter.
...
...
vp9/common/vp9_reconinter.c
View file @
2b7338ac
...
...
@@ -69,7 +69,7 @@ static void inter_predictor(const uint8_t *src, int src_stride,
const
int
subpel_y
,
const
struct
scale_factors
*
sf
,
int
w
,
int
h
,
int
ref
,
const
i
nterp
_k
ernel
*
kernel
,
const
I
nterp
K
ernel
*
kernel
,
int
xs
,
int
ys
)
{
sf
->
predict
[
subpel_x
!=
0
][
subpel_y
!=
0
][
ref
](
src
,
src_stride
,
dst
,
dst_stride
,
...
...
@@ -81,7 +81,7 @@ void vp9_build_inter_predictor(const uint8_t *src, int src_stride,
const
MV
*
src_mv
,
const
struct
scale_factors
*
sf
,
int
w
,
int
h
,
int
ref
,
const
i
nterp
_k
ernel
*
kernel
,
const
I
nterp
K
ernel
*
kernel
,
enum
mv_precision
precision
,
int
x
,
int
y
)
{
const
int
is_q4
=
precision
==
MV_PRECISION_Q4
;
...
...
vp9/common/vp9_reconinter.h
View file @
2b7338ac
...
...
@@ -35,7 +35,7 @@ void vp9_build_inter_predictor(const uint8_t *src, int src_stride,
const
MV
*
mv_q3
,
const
struct
scale_factors
*
sf
,
int
w
,
int
h
,
int
do_avg
,
const
i
nterp
_k
ernel
*
kernel
,
const
I
nterp
K
ernel
*
kernel
,
enum
mv_precision
precision
,
int
x
,
int
y
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment