mbox series

[FFmpeg-devel,v2,0/7] avcodec/mpegvideoencdsp improvements

Message ID 20240821145555.235323-1-ramiro.polla@gmail.com
Headers show
Series avcodec/mpegvideoencdsp improvements | expand

Message

Ramiro Polla Aug. 21, 2024, 2:55 p.m. UTC
The tests have now been run on an A55 instead of an A53 (the RK3588 has
both in-order A55 and out-of-order A76, so it makes testing easier).

Changes:
- draw_edges_mmx: support negative strides
- draw_edges_mmx: removed redundant variable assignment (last_line)
- checkasm: merged commits adding mpegvideoencdsp tests
- checkasm: add new tests to fate
- checkasm: test for negative strides
- neon: remove spaces inside {}
- neon: do two lines per loop in pix_sum (faster on A55, slower on A76,
        but a good compromise)

Ramiro Polla (7):
  avcodec/x86/mpegvideoencdsp: support negative strides in
    draw_edges_mmx()
  checkasm/mpegvideoencdsp: add pix_sum, pix_norm1, and draw_edges
  avcodec/aarch64/mpegvideoencdsp: add neon implementations for pix_sum
    and pix_norm1
  avcodec/aarch64/mpegvideoencdsp: add dotprod implementation for
    pix_norm1
  avcodec/x86/mpegvideoencdsp: fix comment for draw_edges_mmx
  avcodec/x86/mpegvideoencdsp: speed up draw_edges_mmx by using memcpy()
  avcodec/mpegvideoencdsp: speed up draw_edges_8_c by inlining it for
    all used edge widths

 libavcodec/aarch64/Makefile               |   2 +
 libavcodec/aarch64/mpegvideoencdsp_init.c |  49 ++++++++
 libavcodec/aarch64/mpegvideoencdsp_neon.S |  97 ++++++++++++++
 libavcodec/mpegvideoencdsp.c              |  26 +++-
 libavcodec/mpegvideoencdsp.h              |   2 +
 libavcodec/x86/mpegvideoencdsp_init.c     |  61 +++------
 tests/checkasm/Makefile                   |   1 +
 tests/checkasm/checkasm.c                 |   3 +
 tests/checkasm/checkasm.h                 |   1 +
 tests/checkasm/mpegvideoencdsp.c          | 147 ++++++++++++++++++++++
 tests/fate/checkasm.mak                   |   1 +
 11 files changed, 338 insertions(+), 52 deletions(-)
 create mode 100644 libavcodec/aarch64/mpegvideoencdsp_init.c
 create mode 100644 libavcodec/aarch64/mpegvideoencdsp_neon.S
 create mode 100644 tests/checkasm/mpegvideoencdsp.c