From 1277dc07fbe6ec6d7a10312a053e482e6070c52b Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Sun, 10 Mar 2013 14:16:00 -0700 Subject: svq1enc: Use hpeldsp instead of dsputil for half-pel functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- configure | 2 +- libavcodec/svq1enc.c | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/configure b/configure index 50d2cc8fa3..ed2fdfee81 100755 --- a/configure +++ b/configure @@ -1641,7 +1641,7 @@ shorten_decoder_select="golomb" sipr_decoder_select="lsp" sp5x_decoder_select="dsputil" svq1_decoder_select="hpeldsp" -svq1_encoder_select="aandcttables dsputil mpegvideoenc" +svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc" svq3_decoder_select="golomb h264chroma h264dsp h264pred h264qpel hpeldsp mpegvideo videodsp" svq3_decoder_suggest="error_resilience zlib" tak_decoder_select="dsputil" diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c index f06609e442..70d1ee5c88 100644 --- a/libavcodec/svq1enc.c +++ b/libavcodec/svq1enc.c @@ -27,6 +27,8 @@ */ #include "avcodec.h" +#include "dsputil.h" +#include "hpeldsp.h" #include "mpegvideo.h" #include "h263.h" #include "internal.h" @@ -43,6 +45,7 @@ typedef struct SVQ1Context { MpegEncContext m; AVCodecContext *avctx; DSPContext dsp; + HpelDSPContext hdsp; AVFrame picture; AVFrame current_picture; AVFrame last_picture; @@ -444,10 +447,10 @@ static int svq1_encode_plane(SVQ1Context *s, int plane, dxy = (mx & 1) + 2 * (my & 1); - s->dsp.put_pixels_tab[0][dxy](temp + 16, - ref + (mx >> 1) + - stride * (my >> 1), - stride, 16); + s->hdsp.put_pixels_tab[0][dxy](temp + 16, + ref + (mx >> 1) + + stride * (my >> 1), + stride, 16); score[1] += encode_block(s, src + 16 * x, temp + 16, decoded, stride, 5, 64, lambda, 0); @@ -459,7 +462,7 @@ static int svq1_encode_plane(SVQ1Context *s, int plane, score[2] += vlc[1] * lambda; if (score[2] < score[best] && mx == 0 && my == 0) { best = 2; - s->dsp.put_pixels_tab[0][0](decoded, ref, stride, 16); + s->hdsp.put_pixels_tab[0][0](decoded, ref, stride, 16); for (i = 0; i < 6; i++) count[2][i] = 0; put_bits(&s->pb, vlc[1], vlc[0]); @@ -489,7 +492,7 @@ static int svq1_encode_plane(SVQ1Context *s, int plane, avpriv_copy_bits(&s->pb, reorder_buffer[best][i], count[best][i]); if (best == 0) - s->dsp.put_pixels_tab[0][0](decoded, temp, stride, 16); + s->hdsp.put_pixels_tab[0][0](decoded, temp, stride, 16); } s->m.first_slice_line = 0; } @@ -501,6 +504,7 @@ static av_cold int svq1_encode_init(AVCodecContext *avctx) SVQ1Context *const s = avctx->priv_data; ff_dsputil_init(&s->dsp, avctx); + ff_hpeldsp_init(&s->hdsp, avctx->flags); avctx->coded_frame = &s->picture; s->frame_width = avctx->width; -- cgit v1.2.3 From 28bc406c84b04a5f1458b90ff52ddbec73e46202 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Sun, 10 Mar 2013 14:23:52 -0700 Subject: mjpeg: Use hpeldsp instead of dsputil for half-pel functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- configure | 14 +++++++------- libavcodec/mjpegdec.c | 9 +++++---- libavcodec/mjpegdec.h | 2 ++ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/configure b/configure index ed2fdfee81..e798cf6e97 100755 --- a/configure +++ b/configure @@ -1525,7 +1525,7 @@ alac_encoder_select="lpc" als_decoder_select="dsputil" amrnb_decoder_select="lsp" amrwb_decoder_select="lsp" -amv_decoder_select="dsputil" +amv_decoder_select="dsputil hpeldsp" ape_decoder_select="dsputil" asv1_decoder_select="dsputil" asv1_encoder_select="dsputil" @@ -1580,7 +1580,7 @@ iac_decoder_select="dsputil fft mdct sinewin" imc_decoder_select="dsputil fft mdct sinewin" indeo3_decoder_select="hpeldsp" interplay_video_decoder_select="hpeldsp" -jpegls_decoder_select="dsputil golomb" +jpegls_decoder_select="dsputil golomb hpeldsp" jpegls_encoder_select="golomb" jv_decoder_select="dsputil" lagarith_decoder_select="dsputil" @@ -1588,8 +1588,8 @@ ljpeg_encoder_select="aandcttables mpegvideoenc" loco_decoder_select="golomb" mdec_decoder_select="dsputil error_resilience mpegvideo" mimic_decoder_select="dsputil hpeldsp" -mjpeg_decoder_select="dsputil" -mjpegb_decoder_select="dsputil" +mjpeg_decoder_select="dsputil hpeldsp" +mjpegb_decoder_select="dsputil hpeldsp" mjpeg_encoder_select="aandcttables dsputil mpegvideoenc" mlp_decoder_select="dsputil mlp_parser" motionpixels_decoder_select="dsputil" @@ -1619,7 +1619,7 @@ msmpeg4v2_encoder_select="h263_encoder" msmpeg4v3_decoder_select="h263_decoder" msmpeg4v3_encoder_select="h263_encoder" mss2_decoder_select="error_resilience vc1_decoder" -mxpeg_decoder_select="dsputil" +mxpeg_decoder_select="dsputil hpeldsp" nellymoser_decoder_select="mdct sinewin" nellymoser_encoder_select="audio_frame_queue mdct sinewin" nuv_decoder_select="dsputil lzo" @@ -1639,7 +1639,7 @@ rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvi rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp" shorten_decoder_select="golomb" sipr_decoder_select="lsp" -sp5x_decoder_select="dsputil" +sp5x_decoder_select="dsputil hpeldsp" svq1_decoder_select="hpeldsp" svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc" svq3_decoder_select="golomb h264chroma h264dsp h264pred h264qpel hpeldsp mpegvideo videodsp" @@ -1648,7 +1648,7 @@ tak_decoder_select="dsputil" theora_decoder_select="vp3_decoder" tiff_decoder_suggest="zlib" tiff_encoder_suggest="zlib" -thp_decoder_select="dsputil" +thp_decoder_select="dsputil hpeldsp" truehd_decoder_select="mlp_decoder" truemotion2_decoder_select="dsputil" truespeech_decoder_select="dsputil" diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index abc32d11c1..61ebabc77d 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -89,6 +89,7 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx) s->picture_ptr = &s->picture; s->avctx = avctx; + ff_hpeldsp_init(&s->hdsp, avctx->flags); ff_dsputil_init(&s->dsp, avctx); ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct); s->buffer_size = 0; @@ -858,7 +859,7 @@ static int mjpeg_decode_scan(MJpegDecodeContext *s, int nb_components, int Ah, ptr = data[c] + block_offset; if (!s->progressive) { if (copy_mb) - s->dsp.put_pixels_tab[1][0](ptr, + s->hdsp.put_pixels_tab[1][0](ptr, reference_data[c] + block_offset, linesize[c], 8); else { @@ -974,9 +975,9 @@ static int mjpeg_decode_scan_progressive_ac(MJpegDecodeContext *s, int ss, if (last_scan) { if (copy_mb) { - s->dsp.put_pixels_tab[1][0](ptr, - reference_data + block_offset, - linesize, 8); + s->hdsp.put_pixels_tab[1][0](ptr, + reference_data + block_offset, + linesize, 8); } else { s->dsp.idct_put(ptr, linesize, *block); ptr += 8; diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h index d48877e650..36598dd5e0 100644 --- a/libavcodec/mjpegdec.h +++ b/libavcodec/mjpegdec.h @@ -34,6 +34,7 @@ #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" +#include "hpeldsp.h" #define MAX_COMPONENTS 4 @@ -94,6 +95,7 @@ typedef struct MJpegDecodeContext { uint64_t coefs_finished[MAX_COMPONENTS]; ///< bitmask of which coefs have been completely decoded (progressive mode) ScanTable scantable; DSPContext dsp; + HpelDSPContext hdsp; int restart_interval; int restart_count; -- cgit v1.2.3