[FFmpeg-devel] [PATCH v2 2/2] avfilter/interlace: add complex vertical low-pass filter

Thomas Mundt loudmax at yahoo.de
Thu Apr 13 03:39:27 EEST 2017


>>>Michael Niedermayer <michael at niedermayer.cc> schrieb am Mi, 12.4.2017:
On Thu, Mar 30, 2017 at 12:21:58AM +0000, Thomas Mundt wrote:
>> >>Lou Logan <lou at lrcd.com> schrieb am Do, 30.3.2017:
>> > On Mon, 13 Mar 2017 16:23:46 +0000 (UTC)
>> > Thomas Mundt <loudmax-at-yahoo.de at ffmpeg.org> wrote:
>> > 
>> > [...]
>> >> index 09ca4d3..0b5b858 100644
>> >> --- a/libavfilter/vf_tinterlace.c
>> >> +++ b/libavfilter/vf_tinterlace.c
>> > [...]
>> >> +static void lowpass_line_complex_c(uint8_t *dstp, ptrdiff_t width, const uint8_t *srcp,
>> >> +                                   ptrdiff_t mref, ptrdiff_t pref)         
>> > 
>> > Trailing whitespace should be avoided. It prevents the patch from being
>> > applied.
>> 
>> Oh, didn´t notice. Thanks.
>> New patch set attached.
>
> [...]
>> --- a/libavfilter/x86/vf_interlace.asm
>> +++ b/libavfilter/x86/vf_interlace.asm
>> @@ -28,33 +28,28 @@ SECTION_RODATA
>>  SECTION .text
>>  
>>  %macro LOWPASS_LINE 0
>> -cglobal lowpass_line, 5, 5, 7
>> -    add r0, r1
>> -    add r2, r1

[...]
>> -    add r1, 2*mmsize
>> -    jl .loop
>> +    add dstq, 2*mmsize
>> +    add srcq, 2*mmsize
>> +    sub hd, 2*mmsize
>> +    jg .loop
>
> this increases the number of instructions in the inner loop by 2

James Almer suggested to change the function prototype. Which was easy in c, but for simd this is the best I can do.
I asked for help a month ago but get no reply. Can you tell me how to avoid this?

>also can you add a fate test for the -1 2 6 2-1 filter ?

Sure. I never wrote a fate test and I´m off for a couple of days, so this could take some time. Can you give me a hint or an example?

Regards,
Thomas


More information about the ffmpeg-devel mailing list