| 89 | | == Postproc optimizations == |
| 90 | | |
| 91 | | [[Image(wiki:SponsoringPrograms/GSoC/2014:PostProc.jpg, 240, right, nolink)]] |
| 92 | | |
| 93 | | |
| 94 | | '''Description:''' FFmpeg contains libpostproc, which is used to postprocess 8x8 DCT-MC based video and images (jpeg, mpeg-1/2/4, H.263 among others). Postprocessing removes blocking (and other) artifacts from low bitrate / low quality images and videos. The code though has been written a long time ago and its SIMD optimizations need to be updated to what modern CPUs support (AVX2 and SSE2+). |
| 95 | | |
| 96 | | '''Expected results:''' |
| 97 | | - Convert all gcc inline asm in libpostproc to YASM. |
| 98 | | - Restructure the code so that it works with block sizes compatible with modern SIMD. |
| 99 | | - Add Integer SSE2 and AVX2 optimizations for each existing MMX/MMX2/3dnow optimization in libpostproc. |
| 100 | | |
| 101 | | '''Prerequisites:''' C coding skills, good x86 assembly coding skills, basic familiarity with git. |
| 102 | | |
| 103 | | '''Qualification Task:''' convert 1 or 2 MMX2 functions to SSE2 and AVX2. |
| 104 | | |
| 105 | | '''Mentor:''' Michael Niedermayer (''michaelni'' in #ffmpeg-devel on Freenode IRC, michaelni@gmx.at) |
| 106 | | |
| 107 | | '''Backup Mentor:''' |
| 108 | | |
| 109 | | |
| | 302 | |
| | 303 | == Postproc optimizations == |
| | 304 | |
| | 305 | [[Image(wiki:SponsoringPrograms/GSoC/2014:PostProc.jpg, 240, right, nolink)]] |
| | 306 | |
| | 307 | |
| | 308 | '''Description:''' FFmpeg contains libpostproc, which is used to postprocess 8x8 DCT-MC based video and images (jpeg, mpeg-1/2/4, H.263 among others). Postprocessing removes blocking (and other) artifacts from low bitrate / low quality images and videos. The code though has been written a long time ago and its SIMD optimizations need to be updated to what modern CPUs support (AVX2 and SSE2+). |
| | 309 | |
| | 310 | '''Expected results:''' |
| | 311 | - Convert all gcc inline asm in libpostproc to YASM. |
| | 312 | - Restructure the code so that it works with block sizes compatible with modern SIMD. |
| | 313 | - Add Integer SSE2 and AVX2 optimizations for each existing MMX/MMX2/3dnow optimization in libpostproc. |
| | 314 | |
| | 315 | '''Prerequisites:''' C coding skills, good x86 assembly coding skills, basic familiarity with git. |
| | 316 | |
| | 317 | '''Qualification Task:''' convert 1 or 2 MMX2 functions to SSE2 and AVX2. |
| | 318 | |
| | 319 | '''Mentor:''' |
| | 320 | |
| | 321 | '''Backup Mentor:''' |
| | 322 | |
| | 323 | |