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
Xiph.Org
aom-rav1e
Commits
154f1c22
Commit
154f1c22
authored
Sep 17, 2012
by
Scott LaVarnway
Committed by
Gerrit Code Review
Sep 17, 2012
Browse files
Merge "Changed setup intra recon to be row based"
parents
eec08d5c
648cfcb4
Changes
4
Hide whitespace changes
Inline
Side-by-side
vp8/common/setupintrarecon.c
View file @
154f1c22
...
...
@@ -30,3 +30,10 @@ void vp8_setup_intra_recon(YV12_BUFFER_CONFIG *ybf)
ybf
->
v_buffer
[
ybf
->
uv_stride
*
i
-
1
]
=
(
unsigned
char
)
129
;
}
void
vp8_setup_intra_recon_top_line
(
YV12_BUFFER_CONFIG
*
ybf
)
{
vpx_memset
(
ybf
->
y_buffer
-
1
-
ybf
->
y_stride
,
127
,
ybf
->
y_width
+
5
);
vpx_memset
(
ybf
->
u_buffer
-
1
-
ybf
->
uv_stride
,
127
,
ybf
->
uv_width
+
5
);
vpx_memset
(
ybf
->
v_buffer
-
1
-
ybf
->
uv_stride
,
127
,
ybf
->
uv_width
+
5
);
}
vp8/common/setupintrarecon.h
View file @
154f1c22
...
...
@@ -11,3 +11,23 @@
#include "vpx_scale/yv12config.h"
extern
void
vp8_setup_intra_recon
(
YV12_BUFFER_CONFIG
*
ybf
);
extern
void
vp8_setup_intra_recon_top_line
(
YV12_BUFFER_CONFIG
*
ybf
);
static
void
setup_intra_recon_left
(
unsigned
char
*
y_buffer
,
unsigned
char
*
u_buffer
,
unsigned
char
*
v_buffer
,
int
y_stride
,
int
uv_stride
)
{
int
i
;
for
(
i
=
0
;
i
<
16
;
i
++
)
y_buffer
[
y_stride
*
i
]
=
(
unsigned
char
)
129
;
for
(
i
=
0
;
i
<
8
;
i
++
)
u_buffer
[
uv_stride
*
i
]
=
(
unsigned
char
)
129
;
for
(
i
=
0
;
i
<
8
;
i
++
)
v_buffer
[
uv_stride
*
i
]
=
(
unsigned
char
)
129
;
}
vp8/decoder/decodframe.c
View file @
154f1c22
...
...
@@ -553,6 +553,8 @@ static void decode_mb_rows(VP8D_COMP *pbi)
if
(
pc
->
filter_level
)
vp8_loop_filter_frame_init
(
pc
,
xd
,
pc
->
filter_level
);
vp8_setup_intra_recon_top_line
(
&
pc
->
yv12_fb
[
dst_fb_idx
]);
/* Decode the individual macro block */
for
(
mb_row
=
0
;
mb_row
<
pc
->
mb_rows
;
mb_row
++
)
{
...
...
@@ -593,6 +595,10 @@ static void decode_mb_rows(VP8D_COMP *pbi)
xd
->
recon_left_stride
[
0
]
=
xd
->
dst
.
y_stride
;
xd
->
recon_left_stride
[
1
]
=
xd
->
dst
.
uv_stride
;
setup_intra_recon_left
(
xd
->
recon_left
[
0
],
xd
->
recon_left
[
1
],
xd
->
recon_left
[
2
],
xd
->
dst
.
y_stride
,
xd
->
dst
.
uv_stride
);
for
(
mb_col
=
0
;
mb_col
<
pc
->
mb_cols
;
mb_col
++
)
{
/* Distance of Mb to the various image edges.
...
...
@@ -1383,14 +1389,6 @@ int vp8_decode_frame(VP8D_COMP *pbi)
}
}
/* set up frame new frame for intra coded blocks */
#if CONFIG_MULTITHREAD
if
(
!
(
pbi
->
b_multithreaded_rd
)
||
pc
->
multi_token_partition
==
ONE_PARTITION
||
!
(
pc
->
filter_level
))
#endif
vp8_setup_intra_recon
(
&
pc
->
yv12_fb
[
pc
->
new_fb_idx
]);
/* clear out the coeff buffer */
vpx_memset
(
xd
->
qcoeff
,
0
,
sizeof
(
xd
->
qcoeff
));
...
...
vp8/decoder/threading.c
View file @
154f1c22
...
...
@@ -24,6 +24,7 @@
#include "detokenize.h"
#include "vp8/common/reconintra4x4.h"
#include "vp8/common/reconinter.h"
#include "vp8/common/setupintrarecon.h"
#if CONFIG_ERROR_CONCEALMENT
#include "error_concealment.h"
#endif
...
...
@@ -399,6 +400,10 @@ static void mt_decode_mb_rows(VP8D_COMP *pbi, MACROBLOCKD *xd, int start_mb_row)
/* TODO: move to outside row loop */
xd
->
recon_left_stride
[
0
]
=
xd
->
dst
.
y_stride
;
xd
->
recon_left_stride
[
1
]
=
xd
->
dst
.
uv_stride
;
setup_intra_recon_left
(
xd
->
recon_left
[
0
],
xd
->
recon_left
[
1
],
xd
->
recon_left
[
2
],
xd
->
dst
.
y_stride
,
xd
->
dst
.
uv_stride
);
}
for
(
mb_col
=
0
;
mb_col
<
pc
->
mb_cols
;
mb_col
++
)
...
...
@@ -873,9 +878,9 @@ void vp8mt_decode_mb_rows( VP8D_COMP *pbi, MACROBLOCKD *xd)
if
(
filter_level
)
{
/* Set above_row buffer to 127 for decoding first MB row */
vpx_memset
(
pbi
->
mt_yabove_row
[
0
]
+
VP8BORDERINPIXELS
-
1
,
127
,
pc
->
yv12_fb
[
pc
->
lst
_fb_idx
].
y_width
+
5
);
vpx_memset
(
pbi
->
mt_uabove_row
[
0
]
+
(
VP8BORDERINPIXELS
>>
1
)
-
1
,
127
,
(
pc
->
yv12_fb
[
pc
->
lst
_fb_idx
].
y_width
>>
1
)
+
5
);
vpx_memset
(
pbi
->
mt_vabove_row
[
0
]
+
(
VP8BORDERINPIXELS
>>
1
)
-
1
,
127
,
(
pc
->
yv12_fb
[
pc
->
lst
_fb_idx
].
y_width
>>
1
)
+
5
);
vpx_memset
(
pbi
->
mt_yabove_row
[
0
]
+
VP8BORDERINPIXELS
-
1
,
127
,
pc
->
yv12_fb
[
pc
->
new
_fb_idx
].
y_width
+
5
);
vpx_memset
(
pbi
->
mt_uabove_row
[
0
]
+
(
VP8BORDERINPIXELS
>>
1
)
-
1
,
127
,
(
pc
->
yv12_fb
[
pc
->
new
_fb_idx
].
y_width
>>
1
)
+
5
);
vpx_memset
(
pbi
->
mt_vabove_row
[
0
]
+
(
VP8BORDERINPIXELS
>>
1
)
-
1
,
127
,
(
pc
->
yv12_fb
[
pc
->
new
_fb_idx
].
y_width
>>
1
)
+
5
);
for
(
j
=
1
;
j
<
pc
->
mb_rows
;
j
++
)
{
...
...
@@ -895,6 +900,8 @@ void vp8mt_decode_mb_rows( VP8D_COMP *pbi, MACROBLOCKD *xd)
/* Initialize the loop filter for this frame. */
vp8_loop_filter_frame_init
(
pc
,
&
pbi
->
mb
,
filter_level
);
}
else
vp8_setup_intra_recon_top_line
(
&
pc
->
yv12_fb
[
pc
->
new_fb_idx
]);
setup_decoding_thread_data
(
pbi
,
xd
,
pbi
->
mb_row_di
,
pbi
->
decoding_thread_count
);
...
...
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