[FFmpeg-devel] [PATCH] Request for adding XPSNR avfilter

Helmrich, Christian christian.helmrich at hhi.fraunhofer.de
Wed Jan 11 18:53:58 EET 2023


Hi,


> Also please fix style of code, ... example vf_psnr.c filter ... "for () {\n" instead of "for () \n{\n}"


Done, I aligned block encapsulation, indentation, and some other things with those in vf_psnr.c


> Compare clang compiled ffmpeg without this asm code and with it, and tell if any difference.

> I'might do it anyway later.

Strange, the asm code is now only barely (a few percent at most) faster than the C-loop code on
our side. Maybe the compilers or CPUs have improved since we last tested? Anway, we decided
to make a new patch without the asm file, but keep the function pointers in case we manage to
write better SIMD for the highds, diff1st, and diff2nd function later (for a smaller patch then).

I prepared a new avfilter_xpsnr_v2.patch. Do I need to change the email (thread) title somehow
so that a new pipeline is being triggered?


Best,


Christian Helmrich

Fraunhofer HHI, Video Coding and Analytics Department


________________________________
Von: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> im Auftrag von Paul B Mahol <onemda at gmail.com>
Gesendet: Mittwoch, 11. Januar 2023 12:53
An: FFmpeg development discussions and patches
Cc: Stoffers, Christian
Betreff: Re: [FFmpeg-devel] [PATCH] Request for adding XPSNR avfilter

On 1/11/23, Paul B Mahol <onemda at gmail.com> wrote:
> On 1/11/23, Helmrich, Christian <christian.helmrich at hhi.fraunhofer.de>
> wrote:
>> Hi,
>>
>>
>>> So its better to use that instead of human written assembly? Does clang
>>> generate faster code without this asm?
>>
>>
>> I'm not sure I fully understand your questions, but I hope the following
>> answers it. The reason why we auto-converted our intrinsics code to asm
>> is
>> not a technical one, we unfortunately just don't have the knowledge or
>> resources to manually write asm code. If I remember correctly, the SIMD
>> optimized code runs about twice as fast as the C code, especially on UHD
>> input.
>
> Compare clang compiled ffmpeg without this asm code and with it, and
> tell if any difference.
> I'might do it anyway later.

Also please fix style of code, look at other filters in codebase, for
example vf_psnr.c filter

Use "for () {\n" instead of "for () \n{\n}"

>
>>
>>
>>> Please remove SLICE_THREADS related flag as there is no call to execute
>>> to
>>> filter in slices. Please remove stdbool.h header and adapt code to
>>> compile
>>> without it.
>>
>>
>> Done, please find attached a second version (v1) of the XPSNR avfilter
>> patch.
>>
>>
>> Thanks and best,
>>
>>
>> Christian Helmrich
>>
>> Fraunhofer HHI, Video Coding and Analytics Department
>>
>>
>> ________________________________
>> Von: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> im Auftrag von Paul B
>> Mahol <onemda at gmail.com>
>> Gesendet: Dienstag, 10. Januar 2023 21:43
>> An: FFmpeg development discussions and patches
>> Cc: Stoffers, Christian
>> Betreff: Re: [FFmpeg-devel] [PATCH] Request for adding XPSNR avfilter
>>
>> On 1/10/23, Helmrich, Christian <christian.helmrich at hhi.fraunhofer.de>
>> wrote:
>>> Hi,
>>>
>>> please find attached a patch (relative to FFmpeg master as of early
>>> January
>>> 10, 2023)
>>> adding avfilter support for extended perceptually weighted peak
>>> signal-to-noise ratio
>>> (XPSNR) measurements for videos, as described in the related addition to
>>> filters.texi.
>>>
>>> The XPSNR code was originally vectorized using SIMD intrinsics, but we
>>> concluded that
>>> FFmpeg code requires asm instead of such intrinsics, so we let gcc
>>> auto-convert these
>>
>> So its better to use that instead of human written assembly?
>> Does clang generate faster code without this asm?
>>
>>> instructions to pure assembly; see the vf_xpsnr.asm file. If the added
>>> asm
>>> code is too
>>> lengthy, intrinsics would be possible, or something else is missing,
>>> please
>>> let us know.
>>>
>>
>> Please remove SLICE_THREADS related flag as there is no call to
>> execute to filter in slices.
>> Please remove stdbool.h header and adapt code to compile without it.
>>
>>> Best,
>>>
>>> Christian Helmrich and Christian Stoffers
>>> Fraunhofer HHI
>>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>>
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list