summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorJerome Jiang <jianj@google.com>2017-02-24 16:56:33 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-02-24 16:56:33 +0000
commite96ab224628e9c8222380fb2c13cc247fb14c6c7 (patch)
tree072dfa3fb2b3744c9d83bd815794396b67f12b48 /vp9
parent904b957ae965bd3d67f15a75cd9db7954f810d33 (diff)
parent0998a146d4f63c1758d1d1b941e7a33a1515695d (diff)
downloadlibvpx-e96ab224628e9c8222380fb2c13cc247fb14c6c7.tar
libvpx-e96ab224628e9c8222380fb2c13cc247fb14c6c7.tar.gz
libvpx-e96ab224628e9c8222380fb2c13cc247fb14c6c7.tar.bz2
libvpx-e96ab224628e9c8222380fb2c13cc247fb14c6c7.zip
Merge "Make vp9_scale_and_extend_frame_ssse3 work for hbd when bitdepth = 8."
Diffstat (limited to 'vp9')
-rw-r--r--vp9/common/vp9_rtcd_defs.pl7
-rw-r--r--vp9/encoder/vp9_encoder.c18
-rw-r--r--vp9/vp9cx.mk2
3 files changed, 15 insertions, 12 deletions
diff --git a/vp9/common/vp9_rtcd_defs.pl b/vp9/common/vp9_rtcd_defs.pl
index 77bebc7b9..cd5da4f6d 100644
--- a/vp9/common/vp9_rtcd_defs.pl
+++ b/vp9/common/vp9_rtcd_defs.pl
@@ -225,11 +225,8 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
#
# frame based scale
#
-if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
-} else {
- add_proto qw/void vp9_scale_and_extend_frame/, "const struct yv12_buffer_config *src, struct yv12_buffer_config *dst";
- specialize qw/vp9_scale_and_extend_frame ssse3/;
-}
+add_proto qw/void vp9_scale_and_extend_frame/, "const struct yv12_buffer_config *src, struct yv12_buffer_config *dst";
+specialize qw/vp9_scale_and_extend_frame ssse3/;
}
# end encoder functions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index aa8a27c6d..5d64b0a10 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -2406,7 +2406,8 @@ static void scale_and_extend_frame(const YV12_BUFFER_CONFIG *src,
vpx_extend_frame_borders(dst);
}
-#else
+#endif // CONFIG_VP9_HIGHBITDEPTH
+
void vp9_scale_and_extend_frame_c(const YV12_BUFFER_CONFIG *src,
YV12_BUFFER_CONFIG *dst) {
const int src_w = src->y_crop_width;
@@ -2444,7 +2445,6 @@ void vp9_scale_and_extend_frame_c(const YV12_BUFFER_CONFIG *src,
vpx_extend_frame_borders(dst);
}
-#endif // CONFIG_VP9_HIGHBITDEPTH
static int scale_down(VP9_COMP *cpi, int q) {
RATE_CONTROL *const rc = &cpi->rc;
@@ -3661,8 +3661,13 @@ YV12_BUFFER_CONFIG *vp9_svc_twostage_scale(VP9_COMMON *cm,
if (cm->mi_cols * MI_SIZE != unscaled->y_width ||
cm->mi_rows * MI_SIZE != unscaled->y_height) {
#if CONFIG_VP9_HIGHBITDEPTH
- scale_and_extend_frame(unscaled, scaled_temp, (int)cm->bit_depth);
- scale_and_extend_frame(scaled_temp, scaled, (int)cm->bit_depth);
+ if (cm->bit_depth == VPX_BITS_8) {
+ vp9_scale_and_extend_frame(unscaled, scaled_temp);
+ vp9_scale_and_extend_frame(scaled_temp, scaled);
+ } else {
+ scale_and_extend_frame(unscaled, scaled_temp, (int)cm->bit_depth);
+ scale_and_extend_frame(scaled_temp, scaled, (int)cm->bit_depth);
+ }
#else
vp9_scale_and_extend_frame(unscaled, scaled_temp);
vp9_scale_and_extend_frame(scaled_temp, scaled);
@@ -3682,7 +3687,10 @@ YV12_BUFFER_CONFIG *vp9_scale_if_required(VP9_COMMON *cm,
#if CONFIG_VP9_HIGHBITDEPTH
if (use_normative_scaler && unscaled->y_width <= (scaled->y_width << 1) &&
unscaled->y_height <= (scaled->y_height << 1))
- scale_and_extend_frame(unscaled, scaled, (int)cm->bit_depth);
+ if (cm->bit_depth == VPX_BITS_8)
+ vp9_scale_and_extend_frame(unscaled, scaled);
+ else
+ scale_and_extend_frame(unscaled, scaled, (int)cm->bit_depth);
else
scale_and_extend_frame_nonnormative(unscaled, scaled, (int)cm->bit_depth);
#else
diff --git a/vp9/vp9cx.mk b/vp9/vp9cx.mk
index e73535543..fe2baf5e8 100644
--- a/vp9/vp9cx.mk
+++ b/vp9/vp9cx.mk
@@ -115,9 +115,7 @@ endif
VP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_dct_intrin_sse2.c
VP9_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/vp9_dct_ssse3.c
-ifneq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
VP9_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/vp9_frame_scale_ssse3.c
-endif
ifeq ($(CONFIG_VP9_TEMPORAL_DENOISING),yes)
VP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_denoiser_sse2.c