aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/pixblockdsp.h
Commit message (Collapse)AuthorAgeFilesLines
* avcodec/asvenc,dvenc: Optimize unaligned checks away if possibleAndreas Rheinhardt2025-05-311-1/+6
| | | | | | | | | For certain arches (AARCH64, x86, generic) get_pixels and get_pixels_unaligned always coincide for 8 bit input. In these cases it is possible to avoid checks for unaligned input in asvenc, dvenc. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pixblockdsp: Fix get_pixels alignment documentationAndreas Rheinhardt2025-05-311-1/+1
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pixblockdsp: Pass bits_per_raw_sample directlyAndreas Rheinhardt2025-05-311-3/+2
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pixblockdsp: Improve 8 vs 16 bit checkAndreas Rheinhardt2025-05-311-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, the input in get_pixels and get_pixels_unaligned has been treated inconsistenly: - The generic code treated 9, 10, 12 and 14 bits as 16bit input (these bits correspond to what FFmpeg's dsputils supported), everything with <= 8 bits as 8 bit and everything else as 8 bit when used via AVDCT (which exposes these functions and purports to support up to 14 bits). - AARCH64, ARM, PPC and RISC-V, x86 ignore this AVDCT special case. - RISC-V also ignored the restriction to 9, 10, 12 and 14 for its 16bit check and treated everything > 8 bits as 16bit. - The mmi MIPS code treats everything as 8 bit when used via AVDCT (this is certainly broken); otherwise it checks for <= 8 bits. The msa MIPS code behaves like the generic code. This commit changes this to treat 9..16 bits as 16 bit input, everything else as 8 bit (the former because it makes sense, the latter to preserve the behaviour for external users*). *: The only internal user of AVDCT (the spp filter) always uses 8, 9 or 10 bits. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec: Remove leftover alpha declarationsAndreas Rheinhardt2025-03-051-2/+0
| | | | | | Forgotten in cdd139d760688b14849d02ee1907f68fe692c24e. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Remove av_restrictAndreas Rheinhardt2024-03-151-6/+4
| | | | | | | | | All versions of MSVC that support C11 (namely >= v19.27) also support the restrict keyword, therefore av_restrict is no longer necessary since 75697836b1db3e0f0a3b7061be6be28d00c675a0. Reviewed-by: Martin Storsjö <martin@martin.st> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavc/pixblockdsp: RISC-V I get_pixelsRémi Denis-Courmont2022-09-271-0/+2
| | | | | | Benchmarks on SiFive U74-MC (courtesy of Shanghai StarFive Tech): get_pixels_c: 180.0 get_pixels_rvi: 136.7
* libavcodec: aarch64: Add a NEON implementation of pixblockdspMartin Storsjö2020-05-151-0/+2
| | | | | | | | | | | | | | Cortex A53 A72 A73 get_pixels_c: 140.7 87.7 72.5 get_pixels_neon: 46.0 20.0 19.5 get_pixels_unaligned_c: 140.7 87.7 73.0 get_pixels_unaligned_neon: 49.2 20.2 26.2 diff_pixels_c: 209.7 133.7 138.7 diff_pixels_neon: 54.2 31.7 23.5 diff_pixels_unaligned_c: 209.7 134.2 139.0 diff_pixels_unaligned_neon: 68.0 27.7 41.7 Signed-off-by: Martin Storsjö <martin@martin.st>
* pixblockdsp, avdct: Add get_pixels_unalignedMartin Storsjö2020-05-131-0/+3
| | | | | | | | | | | | | Use this in vf_spp.c, where the get_pixels operation is done on unaligned source addresses. Hook up the x86 (mmx and sse) versions of get_pixels to this function pointer, as those implementations seem to support unaligned use. This fixes fate-filter-spp on armv7. Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/me_cmp: Fix crashes on ARM due to misalignmentMichael Niedermayer2017-08-211-0/+5
| | | | | | | | Adds a diff_pixels_unaligned() Fixes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872503 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit 'c778eb15b89d875cb246b18f65b3b4321cb1e7d6'Clément Bœsch2017-03-301-2/+4
|\ | | | | | | | | | | | | * commit 'c778eb15b89d875cb246b18f65b3b4321cb1e7d6': pixblockdsp: Have function pointer prototype match implementation Merged-by: Clément Bœsch <cboesch@gopro.com>
| * pixblockdsp: Have function pointer prototype match implementationDiego Biurrun2016-11-031-2/+4
| | | | | | | | | | | | libavcodec/pixblockdsp.c(58) : warning C4028: formal parameter 1 different from declaration libavcodec/pixblockdsp.c(63) : warning C4028: formal parameter 1 different from declaration libavcodec/pixblockdsp.c(66) : warning C4028: formal parameter 1 different from declaration
* | Merge commit 'de452e503734ebb0fdbce86e9d16693b3530fad3'Clément Bœsch2017-03-201-2/+2
|\| | | | | | | | | | | | | * commit 'de452e503734ebb0fdbce86e9d16693b3530fad3': pixblockdsp: Change type of stride parameters to ptrdiff_t Merged-by: Clément Bœsch <u@pkh.me>
| * pixblockdsp: Change type of stride parameters to ptrdiff_tDiego Biurrun2016-09-141-2/+2
| | | | | | | | | | | | | | This avoids SIMD-optimized functions having to sign-extend their line size argument manually to be able to do pointer arithmetic. Also adjust parameter names to be "stride" everywhere.
* | avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for pixblock functionsShivraj Patil2015-06-291-0/+2
| | | | | | | | | | | | | | | | This patch adds MSA (MIPS-SIMD-Arch) optimizations for pixblock functions in new file pixblockdsp_msa.c Adds new generic macros (needed for this patch) in libavutil/mips/generic_macros_msa.h Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec: Change get_pixels() to ptrdiff_t linesizeMichael Niedermayer2014-08-061-1/+1
| | | | | | | | | | Found-by: ubitux Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | alpha/pixblockdsp: move code out of dsputilJames Almer2014-07-101-0/+2
| | | | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'f46bb608d9d76c543e4929dc8cffe36b84bd789e'Michael Niedermayer2014-07-101-4/+4
|/ | | | | | | | | | | | | | | * commit 'f46bb608d9d76c543e4929dc8cffe36b84bd789e': dsputil: Split off pixel block routines into their own context Conflicts: configure libavcodec/dsputil.c libavcodec/mpegvideo_enc.c libavcodec/pixblockdsp_template.c libavcodec/x86/dsputilenc.asm libavcodec/x86/dsputilenc_mmx.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
* dsputil: Split off pixel block routines into their own contextDiego Biurrun2014-07-091-0/+44