[FFmpeg-devel] [FFMpeg-Devel][GSoC][PATCH 1/2] postproc: Updated postprocess_template to use new sse/avx deinterlace functions

Michael Niedermayer michaelni at gmx.at
Fri Apr 24 00:55:58 CEST 2015

On Thu, Apr 23, 2015 at 05:54:05PM -0400, Tucker DiNapoli wrote:
> I've revised the code and now the linear_interpolate and median deinterlace filters
> give the exact same results for both C and sse2/avx2. I'm almost certain the reason
> the other deinterlace filters don't give the exact same result is due to the use
> of tempory memory to hold some lines, I'm not exactly sure what to do about this
> however.
> Unfortunately this patch causes the C/MMX versions to produce different
> results than before. I'm not exactly sure why this is, I changed the code
> to work 4 blocks at a time, which I'm guessing is the issue, but I don't
> know why that would be. If anyone has any idea why this is happening and
> how to fix it it would be appreciated.

i really wish i knew and could fix all bugs in this quickly now
but i cant :(

> ____________________________________________________________________________
> This commit adds several new files containing yasm assembly code, they are:
> PPContext.asm; Defines the PPContext struct using the yasm struc command
> PPUtil.asm; Various utility macros used in the other asm code
> block_copy.asm; Implements the block copy function, the sse2 and avx2
> versions copy multiple blocks at once.
> deinterlace.asm; Contains implemenations of the postprocessing filters
> with support for sse2 and avx2.
> Adding these new functions to postprocess_template entailed adding a new
> templates for AVX2 and modifying the current SSE2 template to use the
> sse2 functions.  A new deinterlace function was added to move the logic
> of which deinterlace function to use out of the postprocess function and
> make adding the new functions eaiser. The inline code for packing QP
> into pQPb was moved into a seperate asm file and uptaded for sse2/avx2.

./ffplay matrixbench_mpeg2.mpg -vf tinterlace=4,pp=lb

shows some remaining interlacing artifacts in some individual blocks
thats even happening with -cpuflags 0 after the patch

this patch also seems to break the deblocking filters
-vf 'pp=fq|50/va/ha' looks vissibly different after it with a low
bitrate video


Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Complexity theory is the science of finding the exact solution to an
approximation. Benchmarking OTOH is finding an approximation of the exact
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150424/628f29b6/attachment.asc>

More information about the ffmpeg-devel mailing list