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
Yushin Cho
aom-rav1e
Commits
7f30a6f8
Commit
7f30a6f8
authored
Jan 22, 2014
by
hkuang
Committed by
Gerrit Code Review
Jan 22, 2014
Browse files
Merge "Seperate the border size for encoder and decoder."
parents
73b7405a
437004c7
Changes
8
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_alloccommon.c
View file @
7f30a6f8
...
...
@@ -85,7 +85,7 @@ int vp9_resize_frame_buffers(VP9_COMMON *cm, int width, int height) {
int
mi_size
;
if
(
vp9_realloc_frame_buffer
(
&
cm
->
post_proc_buffer
,
width
,
height
,
ss_x
,
ss_y
,
VP9BORDERINPIXELS
,
NULL
,
NULL
,
NULL
)
<
0
)
VP9
_DEC_
BORDER
_
IN
_
PIXELS
,
NULL
,
NULL
,
NULL
)
<
0
)
goto
fail
;
set_mb_mi
(
cm
,
aligned_width
,
aligned_height
);
...
...
@@ -154,7 +154,7 @@ int vp9_alloc_frame_buffers(VP9_COMMON *cm, int width, int height) {
for
(
i
=
0
;
i
<
cm
->
fb_count
;
i
++
)
{
cm
->
fb_idx_ref_cnt
[
i
]
=
0
;
if
(
vp9_alloc_frame_buffer
(
&
cm
->
yv12_fb
[
i
],
width
,
height
,
ss_x
,
ss_y
,
VP9BORDERINPIXELS
)
<
0
)
VP9
_ENC_
BORDER
_
IN
_
PIXELS
)
<
0
)
goto
fail
;
}
...
...
@@ -167,7 +167,7 @@ int vp9_alloc_frame_buffers(VP9_COMMON *cm, int width, int height) {
}
if
(
vp9_alloc_frame_buffer
(
&
cm
->
post_proc_buffer
,
width
,
height
,
ss_x
,
ss_y
,
VP9BORDERINPIXELS
)
<
0
)
VP9
_ENC_
BORDER
_
IN
_
PIXELS
)
<
0
)
goto
fail
;
set_mb_mi
(
cm
,
aligned_width
,
aligned_height
);
...
...
vp9/common/vp9_mvref_common.h
View file @
7f30a6f8
...
...
@@ -32,8 +32,10 @@ static INLINE void vp9_find_mv_refs(const VP9_COMMON *cm, const MACROBLOCKD *xd,
mv_ref_list
,
-
1
,
mi_row
,
mi_col
);
}
#define LEFT_TOP_MARGIN ((VP9BORDERINPIXELS - VP9_INTERP_EXTEND) << 3)
#define RIGHT_BOTTOM_MARGIN ((VP9BORDERINPIXELS - VP9_INTERP_EXTEND) << 3)
#define LEFT_TOP_MARGIN ((VP9_ENC_BORDER_IN_PIXELS \
- VP9_INTERP_EXTEND) << 3)
#define RIGHT_BOTTOM_MARGIN ((VP9_ENC_BORDER_IN_PIXELS \
- VP9_INTERP_EXTEND) << 3)
// check a list of motion vectors by sad score using a number rows of pixels
// above and a number cols of pixels in the left to select the one with best
...
...
vp9/decoder/vp9_decodeframe.c
View file @
7f30a6f8
...
...
@@ -704,7 +704,7 @@ static void apply_frame_size(VP9D_COMP *pbi, int width, int height) {
if
(
vp9_realloc_frame_buffer
(
get_frame_new_buffer
(
cm
),
cm
->
width
,
cm
->
height
,
cm
->
subsampling_x
,
cm
->
subsampling_y
,
VP9BORDERINPIXELS
,
ext_fb
,
VP9
_DEC_
BORDER
_
IN
_
PIXELS
,
ext_fb
,
cm
->
realloc_fb_cb
,
cm
->
user_priv
))
{
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_MEM_ERROR
,
"Failed to allocate external frame buffer"
);
...
...
@@ -712,7 +712,7 @@ static void apply_frame_size(VP9D_COMP *pbi, int width, int height) {
}
else
{
vp9_realloc_frame_buffer
(
get_frame_new_buffer
(
cm
),
cm
->
width
,
cm
->
height
,
cm
->
subsampling_x
,
cm
->
subsampling_y
,
VP9BORDERINPIXELS
,
NULL
,
NULL
,
NULL
);
VP9
_DEC_
BORDER
_
IN
_
PIXELS
,
NULL
,
NULL
,
NULL
);
}
}
...
...
vp9/encoder/vp9_lookahead.c
View file @
7f30a6f8
...
...
@@ -73,7 +73,7 @@ struct lookahead_ctx * vp9_lookahead_init(unsigned int width,
for
(
i
=
0
;
i
<
depth
;
i
++
)
if
(
vp9_alloc_frame_buffer
(
&
ctx
->
buf
[
i
].
img
,
width
,
height
,
subsampling_x
,
subsampling_y
,
VP9BORDERINPIXELS
))
VP9
_ENC_
BORDER
_
IN
_
PIXELS
))
goto
bail
;
}
return
ctx
;
...
...
vp9/encoder/vp9_onyx_if.c
View file @
7f30a6f8
...
...
@@ -968,7 +968,7 @@ static void alloc_raw_frame_buffers(VP9_COMP *cpi) {
if
(
vp9_realloc_frame_buffer
(
&
cpi
->
alt_ref_buffer
,
cpi
->
oxcf
.
width
,
cpi
->
oxcf
.
height
,
cm
->
subsampling_x
,
cm
->
subsampling_y
,
VP9BORDERINPIXELS
,
NULL
,
NULL
,
NULL
))
VP9
_ENC_
BORDER
_
IN
_
PIXELS
,
NULL
,
NULL
,
NULL
))
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_MEM_ERROR
,
"Failed to allocate altref buffer"
);
}
...
...
@@ -983,14 +983,14 @@ void vp9_alloc_compressor_data(VP9_COMP *cpi) {
if
(
vp9_alloc_frame_buffer
(
&
cpi
->
last_frame_uf
,
cm
->
width
,
cm
->
height
,
cm
->
subsampling_x
,
cm
->
subsampling_y
,
VP9BORDERINPIXELS
))
VP9
_ENC_
BORDER
_
IN
_
PIXELS
))
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_MEM_ERROR
,
"Failed to allocate last frame buffer"
);
if
(
vp9_alloc_frame_buffer
(
&
cpi
->
scaled_source
,
cm
->
width
,
cm
->
height
,
cm
->
subsampling_x
,
cm
->
subsampling_y
,
VP9BORDERINPIXELS
))
VP9
_ENC_
BORDER
_
IN
_
PIXELS
))
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_MEM_ERROR
,
"Failed to allocate scaled source buffer"
);
...
...
@@ -1036,14 +1036,14 @@ static void update_frame_size(VP9_COMP *cpi) {
if
(
vp9_realloc_frame_buffer
(
&
cpi
->
last_frame_uf
,
cm
->
width
,
cm
->
height
,
cm
->
subsampling_x
,
cm
->
subsampling_y
,
VP9BORDERINPIXELS
,
NULL
,
NULL
,
NULL
))
VP9
_ENC_
BORDER
_
IN
_
PIXELS
,
NULL
,
NULL
,
NULL
))
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_MEM_ERROR
,
"Failed to reallocate last frame buffer"
);
if
(
vp9_realloc_frame_buffer
(
&
cpi
->
scaled_source
,
cm
->
width
,
cm
->
height
,
cm
->
subsampling_x
,
cm
->
subsampling_y
,
VP9BORDERINPIXELS
,
NULL
,
NULL
,
NULL
))
VP9
_ENC_
BORDER
_
IN
_
PIXELS
,
NULL
,
NULL
,
NULL
))
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_MEM_ERROR
,
"Failed to reallocate scaled source buffer"
);
...
...
@@ -2552,7 +2552,7 @@ static void scale_references(VP9_COMP *cpi) {
vp9_realloc_frame_buffer
(
&
cm
->
yv12_fb
[
new_fb
],
cm
->
width
,
cm
->
height
,
cm
->
subsampling_x
,
cm
->
subsampling_y
,
VP9BORDERINPIXELS
,
NULL
,
NULL
,
NULL
);
VP9
_ENC_
BORDER
_
IN
_
PIXELS
,
NULL
,
NULL
,
NULL
);
scale_and_extend_frame
(
ref
,
&
cm
->
yv12_fb
[
new_fb
]);
cpi
->
scaled_ref_idx
[
ref_frame
-
1
]
=
new_fb
;
}
else
{
...
...
@@ -3545,7 +3545,7 @@ int vp9_get_compressed_data(VP9_PTR ptr, unsigned int *frame_flags,
vp9_realloc_frame_buffer
(
get_frame_new_buffer
(
cm
),
cm
->
width
,
cm
->
height
,
cm
->
subsampling_x
,
cm
->
subsampling_y
,
VP9BORDERINPIXELS
,
NULL
,
NULL
,
NULL
);
VP9
_ENC_
BORDER
_
IN
_
PIXELS
,
NULL
,
NULL
,
NULL
);
for
(
ref_frame
=
LAST_FRAME
;
ref_frame
<=
ALTREF_FRAME
;
++
ref_frame
)
{
...
...
vp9/encoder/vp9_temporal_filter.c
View file @
7f30a6f8
...
...
@@ -227,7 +227,7 @@ static void temporal_filter_iterate_c(VP9_COMP *cpi,
for
(
mb_row
=
0
;
mb_row
<
mb_rows
;
mb_row
++
)
{
#if ALT_REF_MC_ENABLED
// Source frames are extended to 16 pixels. This is different than
// L/A/G reference frames that have a border of 32 (VP9BORDERINPIXELS)
// L/A/G reference frames that have a border of 32 (VP9
ENC
BORDERINPIXELS)
// A 6/8 tap filter is used for motion search. This requires 2 pixels
// before and 3 pixels after. So the largest Y mv on a border would
// then be 16 - VP9_INTERP_EXTEND. The UV blocks are half the size of the
...
...
vp9/vp9_iface_common.h
View file @
7f30a6f8
...
...
@@ -29,7 +29,7 @@ static void yuvconfig2image(vpx_image_t *img, const YV12_BUFFER_CONFIG *yv12,
img
->
fmt
=
VPX_IMG_FMT_I420
;
}
img
->
w
=
yv12
->
y_stride
;
img
->
h
=
ALIGN_POWER_OF_TWO
(
yv12
->
y_height
+
2
*
VP9BORDERINPIXELS
,
3
);
img
->
h
=
ALIGN_POWER_OF_TWO
(
yv12
->
y_height
+
2
*
VP9
_ENC_
BORDER
_
IN
_
PIXELS
,
3
);
img
->
d_w
=
yv12
->
y_crop_width
;
img
->
d_h
=
yv12
->
y_crop_height
;
img
->
x_chroma_shift
=
yv12
->
uv_width
<
yv12
->
y_width
;
...
...
vpx_scale/yv12config.h
View file @
7f30a6f8
...
...
@@ -18,10 +18,11 @@ extern "C" {
#include "vpx/vpx_external_frame_buffer.h"
#include "vpx/vpx_integer.h"
#define VP8BORDERINPIXELS 32
#define VP9INNERBORDERINPIXELS 96
#define VP9BORDERINPIXELS 160
#define VP9_INTERP_EXTEND 4
#define VP8BORDERINPIXELS 32
#define VP9INNERBORDERINPIXELS 96
#define VP9_INTERP_EXTEND 4
#define VP9_ENC_BORDER_IN_PIXELS 160
#define VP9_DEC_BORDER_IN_PIXELS 32
typedef
struct
yv12_buffer_config
{
int
y_width
;
...
...
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