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

2015-04-23 Thread Tucker DiNapoli
@@ +;** +;* +;* Copyright (c) 2015 Tucker DiNapoli +;* +;* Utility code/marcos used in asm files for libpostproc +;* +;* This file is part of FFmpeg. +;* +;* FFmpeg is free software; you can redistribute it and/or modify +;* it under

[FFmpeg-devel] [FFMpeg-Devel][GSoC][PATCH 2/2] postproc: Added support for sse2/avx2 versions of the do_a_deblock function

2015-04-23 Thread Tucker DiNapoli
@@ +;** +;* +;* Copyright (c) 2015 Tucker DiNapoli (T.DiNapoli42 at gmail.com) +;* +;* deblock filter +;* +;* This file is part of FFmpeg. +;* +;* FFmpeg is free software; you can redistribute it and/or modify +;* it under the terms of the GNU General Public License as published by +;* the Free Software

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

2015-04-22 Thread Tucker DiNapoli
diff --git a/libpostproc/x86/PPContext.asm b/libpostproc/x86/PPContext.asm new file mode 100644 index 000..d691db0 --- /dev/null +++ b/libpostproc/x86/PPContext.asm @@ -0,0 +1,77 @@ +;* +;* Definition of the PPContext and PPMode structs in assembly +;* Copyright (C) 2015 Tucker DiNapoli

[FFmpeg-devel] [FFMpeg-Devel][GSoC][PATCH 1/6] postproc: Replaced inline asm for prefetching with prefetch functions

2015-04-22 Thread Tucker DiNapoli
This set of patches is what I am submitting as qualification for the google summer of code. I wrote sse2/avx2 versions of several of the postprocessing filters (namely the accurate deblock filter and all the deinterlace filters), and made several changes to the structure of the

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

2015-04-22 Thread Tucker DiNapoli
/x86/PPContext.asm new file mode 100644 index 000..d691db0 --- /dev/null +++ b/libpostproc/x86/PPContext.asm @@ -0,0 +1,77 @@ +;* +;* Definition of the PPContext and PPMode structs in assembly +;* Copyright (C) 2015 Tucker DiNapoli (T.Dinapoli at gmail.com) +;* +;* This file is part of FFmpeg

[FFmpeg-devel] [FFMpeg-Devel][GSoC][PATCH 5/6] postproc: Added support for sse2/avx2 versions of the do_a_deblock function

2015-04-22 Thread Tucker DiNapoli
/libpostproc/x86/deblock.asm new file mode 100644 index 000..fbee291 --- /dev/null +++ b/libpostproc/x86/deblock.asm @@ -0,0 +1,454 @@ +;** +;* +;* Copyright (c) 2015 Tucker DiNapoli (T.DiNapoli42 at gmail.com) +;* +;* deblock

[FFmpeg-devel] [FFMpeg-Devel][GSoC][PATCH 2/6] postproc: Made QP, nonBQP, and pQPb arrays

2015-04-22 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com Also pulled QP initialization out of inner loop, which removed some redundent code. Added some dummy fields to PPContext to allow current code to work while changing the rest of the postprocessing code to support the arrays. I also increased

[FFmpeg-devel] [FFMpeg-Devel][GSoC][PATCH 6/6] postproc: Various formatting updates from the recent changes

2015-04-22 Thread Tucker DiNapoli
I did my best to make as few changes as possible to the formatting when adding new code, so this commit is just a means of making the format changes that go along with the new code. Mostly these are just changes in indentation, but I also re-formatted a few assignment statments (from x= y - x =

[FFmpeg-devel] [FFMpeg-Devel][GSoC][PATCH 3/6] postproc: Moved inline asm for packing QP to seperate function

2015-04-22 Thread Tucker DiNapoli
This patch contains the code for the avx2/sse2 versions of the new function, but they are deliberately ignored, since the support for avx2/sse2 isn't yet present (the next commit fixes this). This is a temporary measure until full sse2/avx2 implementation is complete, but it works with sse2/avx2

[FFmpeg-devel] [FFmpeg-Devel][PATCH 1/5] postproc: Replaced inline asm for prefetching with prefetch macros

2015-04-01 Thread Tucker DiNapoli
These patches are updates to patches previously posted to the mailing lists, with some bugs fixed and the reasoning behind some changes expanded on. This addes macros in postprocess.c that use inline asm for x86, __builtin_prefetch if using a recent enough gcc compatable compiler, and that does

[FFmpeg-devel] [FFmpeg-Devel] [PATCH 3/5] postproc: Indendentation changes in postprocess_template.c

2015-04-01 Thread Tucker DiNapoli
--- libpostproc/postprocess_template.c | 296 +++-- 1 file changed, 152 insertions(+), 144 deletions(-) diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c index 8220d36..866ba8f 100644 --- a/libpostproc/postprocess_template.c +++

[FFmpeg-devel] [FFMpeg-Devel] [PATCH 5/5] postproc: Merged first and second inner loop

2015-04-01 Thread Tucker DiNapoli
Also removed some variables that became unused (startx, srcBlockStart, and dstBlockStart) due to this change. --- libpostproc/postprocess_template.c | 32 ++-- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/libpostproc/postprocess_template.c

[FFmpeg-devel] [PATCH 3/7] Made QP, nonBQP, and pQPb arrays

2015-03-27 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com Also pulled QP initialization out of inner loop. Added some dummy fields to PPContext to allow current code to work while changing QP stuff. --- libpostproc/postprocess_internal.h | 6 ++ libpostproc/postprocess_template.c | 138

[FFmpeg-devel] [PATCH 5/7] Merged second and third inner loops

2015-03-27 Thread Tucker DiNapoli
--- libpostproc/postprocess_template.c | 20 +--- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c index 584cb4c..9096586 100644 --- a/libpostproc/postprocess_template.c +++

[FFmpeg-devel] [PATCH 7/7] Moved contitional inline asm into a macro to cleanup code

2015-03-27 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com --- libpostproc/postprocess.c | 2 +- libpostproc/postprocess_template.c | 41 -- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c

[FFmpeg-devel] [PATCH 6/7] Merged first and second inner loop

2015-03-27 Thread Tucker DiNapoli
Now instead of 3 loops of 4 blocks there's only one. Also removed some variables that became unused because of this --- libpostproc/postprocess_template.c | 29 + 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/libpostproc/postprocess_template.c

[FFmpeg-devel] [PATCH 1/7] Replaced inline asm for prefetching with prefetch macros

2015-03-27 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com This series of patches makes some changes to libpostproc in preperation for adding sse2 and avx2 simd versions of some functions. None of the changes should effect the library in any major way, but they are necessary for future changes. I've tested

[FFmpeg-devel] [PATCH 2/7] Removed unecessary if/else branch when getting QP.

2015-03-27 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com There's still an if, as QP needs to be modified if isColor=0, but it still removes a unecessary branch. --- libpostproc/postprocess_template.c | 12 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/libpostproc

[FFmpeg-devel] [PATCH 4/7] Fixed some indentation in postprocess_template

2015-03-27 Thread Tucker DiNapoli
--- libpostproc/postprocess_template.c | 189 +++-- 1 file changed, 95 insertions(+), 94 deletions(-) diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c index 344152e..584cb4c 100644 --- a/libpostproc/postprocess_template.c +++

[FFmpeg-devel] [FFmpeg-Devel] [GSoC] [PATCH 4/4] Added asm file for deblocking filter

2015-03-22 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com I can't actually test it since there's a lot of work to be done in interfacing the asm code to the c code, changing block sizes, changing the way QP's are delt with, etc. But it assembles, there are warnings for section redeclarations, and I'm not sure

[FFmpeg-devel] [FFmpeg-Devel] [GSoC] [PATCH 1/4] created x86 directory in libpostproc for standalone asm files

2015-03-22 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com This patch set contains implementations of various filters from libpostproc, translated from inline asm (in postprocess_template.c) into seperate yasm files. In addition support for sse2 and avx2 has been added via the use of the simd abstraction layer

[FFmpeg-devel] [FFmpeg-Devel] [GSoC] [PATCH 2/4] Added asm file with some useful macros

2015-03-22 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com diff --git a/libpostproc/x86/PPUtil.asm b/libpostproc/x86/PPUtil.asm new file mode 100644 index 000..090ee18 --- /dev/null +++ b/libpostproc/x86/PPUtil.asm @@ -0,0 +1,116

[FFmpeg-devel] [FFmpeg-Devel] [GSoC] [PATCH 3/4] Added asm implmentations of some deinterlace functions

2015-03-22 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com I also added a makefile which assembles this file into libpostproc. I haven't yet modified the c code to use these functions yet. diff --git a/libpostproc/x86/Makefile b/libpostproc/x86/Makefile new file mode 100644 index 000..06838ca --- /dev

[FFmpeg-devel] [FFMpeg-Devel] Ideas for changes to libpostproc

2015-03-17 Thread Tucker DiNapoli
right now, this code is more of an idea for work to do over the summer. Tucker DiNapoli --- libpostproc/postprocess_main.c | 606 + 1 file changed, 606 insertions(+) diff --git a/libpostproc/postprocess_main.c b/libpostproc/postprocess_main.c new file mode

[FFmpeg-devel] [FFMpeg-Devel] [PATCH 7/7] Added asm implmentations of some deinterlace functions

2015-03-13 Thread Tucker DiNapoli
/deinterlace.o diff --git a/libpostproc/x86/deinterlace.asm b/libpostproc/x86/deinterlace.asm new file mode 100644 index 000..6e669bb --- /dev/null +++ b/libpostproc/x86/deinterlace.asm @@ -0,0 +1,167 @@ +;* +;* DeInterlacing filters written using SIMD extensions +;* Copyright (C) 2015 Tucker

[FFmpeg-devel] [FFMpeg-Devel] [PATCH 4/7] Replaced BLOCK_HEIGHT macro with block_height and block_width variables

2015-03-13 Thread Tucker DiNapoli
This change is to allow support for different sized blocks, which will be necessary for sse and avx. My plan is for the code to still act on 8x8 blocks, but to process multiple 8x8 blocks in parallel when using sse/avx. --- libpostproc/postprocess.c | 3 --- libpostproc/postprocess_c.c

[FFmpeg-devel] [FFMpeg-Devel] [PATCH 5/7] created x86 directory in libpostproc for standalone asm files

2015-03-13 Thread Tucker DiNapoli
/PPContext.asm diff --git a/libpostproc/x86/PPContext.asm b/libpostproc/x86/PPContext.asm new file mode 100644 index 000..022dddb --- /dev/null +++ b/libpostproc/x86/PPContext.asm @@ -0,0 +1,70 @@ +;* +;* Definition of the PPContext and PPMode structs in assembly +;* Copyright (C) 2015 Tucker

[FFmpeg-devel] [FFMpeg-Devel] [PATCH 2/7] Moved templated c postprocessing routines into seperate file

2015-03-13 Thread Tucker DiNapoli
Currently different versions of the postprocessing routines are generated from a template. Ultimately I intend to remove this by replacing the inline assembly with seperate yasm files. The c routines will still be needed, so they need to be moved to a seperate file. The routines were added to the

[FFmpeg-devel] [FFMpeg-Devel] [PATCH 3/7] Fixed copyright on postprocess_c.c

2015-03-13 Thread Tucker DiNapoli
-* Copyright (C) 2001-2002 Michael Niedermayer (michae...@gmx.at) -* Copyright (c) 2015 Tucker DiNapoli -* -* This file is part of FFmpeg. -* -* FFmpeg is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free

[FFmpeg-devel] [FFMpeg-Devel] [PATCH 6/7] Added asm file with some useful macros

2015-03-13 Thread Tucker DiNapoli
+++ b/libpostproc/x86/PPUtil.asm @@ -0,0 +1,116 @@ +;** +;* +;* Copyright (c) 2015 Tucker DiNapoli +;* +;* Utility code/marcos used in asm files for libpostproc +;* +;* This file is part of FFmpeg. +;* +;* FFmpeg is free

[FFmpeg-devel] [FFMpeg-Devel] [PATCH 1/7] Moved postprocessing routines from postprocess.c to seperate file

2015-03-13 Thread Tucker DiNapoli
) 2015 Tucker DiNapoli +* +* This file is part of FFmpeg. +* +* FFmpeg is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2.1 of the License, or (at your option) any

[FFmpeg-devel] [PATCH 2/2] Moved templated c postprocessing routines into seperate file

2015-03-12 Thread Tucker DiNapoli
Currently different versions of the postprocessing routines are generated from a template. Ultimately I intend to remove this by replacing the inline assembly with seperate yasm files. The c routines will still be needed, so they need to be moved to a seperate file. The routines were added to the

[FFmpeg-devel] [PATCH 1/2] Moved postprocessing routines from postprocess.c to seperate file

2015-03-12 Thread Tucker DiNapoli
Tucker DiNapoli +* +* This file is part of FFmpeg. +* +* FFmpeg is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2.1 of the License, or (at your option) any later

[FFmpeg-devel] [PATCH] Reorganized libpostproc code

2015-03-10 Thread Tucker DiNapoli
From: Tucker DiNapoli t.dinapol...@gmail.com The only changes were formating and moving code. --- libpostproc/postprocess.c | 436 ++-- libpostproc/postprocess_c.c| 1328 libpostproc/postprocess_internal.h | 30 +- libpostproc