diff options
author | Alexandra Hájková <alexandra.khirnova@gmail.com> | 2016-07-03 17:38:56 +0200 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2016-07-18 15:27:13 +0200 |
commit | 1bd890ad173d79e7906c5e1d06bf0a06cca4519d (patch) | |
tree | 37ed522edd73efe40e705e6eb2ffa68e3e632ef9 /libavcodec/hevc.c | |
parent | fd5e6a095f69495c558069315d6b36ea410c31fa (diff) |
hevc: Separate adding residual to prediction from IDCT
Based on patch 250430bf28118cf843df887e8c8b345f1c60c82d
by Mickaël Raulet <mraulet@insa-rennes.fr>, integrated
to Libav by Josh de Kock <josh@itanimul.li>.
Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
Diffstat (limited to 'libavcodec/hevc.c')
-rw-r--r-- | libavcodec/hevc.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 5e1b3a0125..d5d3f59859 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -1208,17 +1208,16 @@ static void hls_residual_coding(HEVCContext *s, int x0, int y0, } } - if (lc->cu.cu_transquant_bypass_flag) { - s->hevcdsp.transquant_bypass[log2_trafo_size - 2](dst, coeffs, stride); - } else { + if (!lc->cu.cu_transquant_bypass_flag) { if (transform_skip_flag) - s->hevcdsp.transform_skip(dst, coeffs, stride); + s->hevcdsp.dequant(coeffs); else if (lc->cu.pred_mode == MODE_INTRA && c_idx == 0 && log2_trafo_size == 2) - s->hevcdsp.transform_4x4_luma_add(dst, coeffs, stride); + s->hevcdsp.transform_4x4_luma(coeffs); else - s->hevcdsp.transform_add[log2_trafo_size - 2](dst, coeffs, stride); + s->hevcdsp.idct[log2_trafo_size - 2](coeffs); } + s->hevcdsp.add_residual[log2_trafo_size - 2](dst, coeffs, stride); } static int hls_transform_unit(HEVCContext *s, int x0, int y0, |