| 98 | | '''Backup mentor:''' TBC |
| | 100 | '''Backup mentor:''' Reynaldo Verdejo (''reynaldo'' in #ffmpeg-devel on Freenode IRC, R Verdejo on g mail) |
| | 101 | |
| | 102 | |
| | 103 | == MPEG-4 Audio Lossless Coding (ALS) encoder == |
| | 104 | |
| | 105 | [[Image(wiki:SponsoringPrograms/GSoC/2014:showwaves_green.png, 240, right, nolink)]] |
| | 106 | |
| | 107 | '''Description:''' |
| | 108 | A MPEG-4 ALS decoder was implemented several years ago but an encoder is still missing in the official codebase. A rudimentary encoder has already been written and is available on [https://github.com/justinruggles/FFmpeg-alsenc.git github]. For this project, that encoder is first to be updated to fit into the current codebase of FFmpeg and to be tested for conformance using the [http://www.nue.tu-berlin.de/menue/forschung/projekte/beendete_projekte/mpeg-4_audio_lossless_coding_als/parameter/en/#230252 reference codec and specifications]. Second, the encoder is to be brought through the usual reviewing process to hit the codebase at the end of the project. |
| | 109 | |
| | 110 | '''Expected results:''' |
| | 111 | |
| | 112 | - Update the existing encoder to fit into the current codebase. |
| | 113 | - Ensure conformance of the encoder by verifying using the reference codec and generate a test case for [http://ffmpeg.org/fate.html FATE]. |
| | 114 | - Ensure the FFmpeg decoder processes all generated files without warnings. |
| | 115 | - Enhance the rudimentary feature set of the encoder. |
| | 116 | |
| | 117 | '''Prerequisites:''' C coding skills, basic familiarity with git. A certain interest in audio coding and/or knowledge about the FFmpeg codebase could be beneficial. |
| | 118 | |
| | 119 | '''Qualification Task:''' Add floating point support to MPEG-4 ALS decoder |
| | 120 | |
| | 121 | '''Mentor:''' Thilo Borgmann (thilo DOT borgmann AT mail DOT de) |
| | 122 | |
| | 123 | '''Backup Mentor:''' Paul B Mahol (''durandal_1707'' in #ffmpeg-devel on Freenode IRC, onemda@gmail.com) |
| | 124 | |
| | 125 | == Hardware Acceleration API Software / Tracing Implementation == |
| | 126 | |
| | 127 | [[Image(wiki:SponsoringPrograms/GSoC/2014:hwaccel.jpg, right, nolink)]] |
| | 128 | |
| | 129 | '''Description:''' Our support for hardware accelerated decoding basically remains untested. This is in part due to FFmpeg only implementing part of the required steps, and in part since it requires specific operating systems and hardware. |
| | 130 | |
| | 131 | The idea would be to start with a simple stub implementation of an API like e.g. VDPAU that provides only the most core functions. These would then serialize out the function calls and data to allow easy comparison and regression testing. Improvements to this approach are adding basic input validation and replay capability to allow testing regression data against real hardware. This would be similar to what [https://github.com/apitrace/apitrace apitrace] does for OpenGL. |
| | 132 | |
| | 133 | A further step would be to actually add support for decoding in software, so that full testing including visual inspection is possible without the need for special hardware. |
| | 134 | |
| | 135 | '''Prerequisites:''' C coding skills, basic familiarity with git |
| | 136 | |
| | 137 | '''Qualification Task:''' Anything related to the hardware acceleration code, though producing first ideas and code pieces for this task would also be reasonable |
| | 138 | |
| | 139 | '''Mentor:''' Reimar Doeffinger (''reimar'' in #ffmpeg-devel on Freenode IRC, but since I'm rarely there better email me first: Reimar.Doeffinger [at] gmx.de) |
| | 140 | |
| | 141 | '''Backup mentor:''' Reynaldo Verdejo (''reynaldo'' in #ffmpeg-devel on Freenode IRC, R Verdejo on g mail) |
| | 142 | |
| | 143 | |
| | 144 | == MXF Demuxer Improvements == |
| | 145 | |
| | 146 | '''Description:''' The MXF demuxer needs a proper, compact way to map !EssenceContainer ULs to !WrappingKind. See [https://trac.ffmpeg.org/ticket/2776 ticket #2776] in our bug tracker, and [https://trac.ffmpeg.org/ticket/2776 ticket #1916] contains additional relevant information. |
| | 147 | |
| | 148 | Essence in MXF is typically stored in one of two ways: as an audio/video interleave or with each stream in one huge chunk (such as 1 GiB audio followed by 10 GiB video). Previous ways of telling these apart have been technically wrong, but worked and we lack samples demonstrating the contrary. |
| | 149 | |
| | 150 | '''Expected results:''' The sample in ticket [https://trac.ffmpeg.org/ticket/2776 ticket #2776] should demux correctly. Add a test case in [http://ffmpeg.org/fate.html FATE]. The solution should grow libavformat by no more than 32 KiB. |
| | 151 | |
| | 152 | '''Prerequisites:''' C coding skills, basic familiarity with git. Knowledge of MXF would be useful |
| | 153 | |
| | 154 | '''Qualification Task:''' Investigate if there may be a compact way of representing the UL -> !WrappingKind mapping specified in the [http://www.smpte-ra.org/mdd/RP224v10-publication-20081215.xls official RP224 Excel document]. The tables takes up about half a megabyte verbatim which is unacceptable in a library as large as libavformat. |
| | 155 | |
| | 156 | '''Mentor:''' Tomas Haerdin (''thardin'' in #ffmpeg-devel on Freenode IRC, tomas.hardin a codemill.se) |
| | 157 | |
| | 158 | '''Backup Mentor:''' Paul B Mahol (''durandal_1707'' in #ffmpeg-devel on Freenode IRC, onemda@gmail.com) |
| | 159 | |
| | 160 | |
| | 161 | == VDPAU filter == |
| | 162 | |
| | 163 | '''Description:''' VDPAU is not only about hardware-accelerated decoding but also allows some postprocessing - most notably deinterlacing. Other features of the API include scaling, noise removal, and a sharpening filter. See the [http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/index.html VDPAU API documentation] for more information on some of the features. |
| | 164 | |
| | 165 | '''Expected results:''' Implement a filter that allows usage of the postprocessing features as defined by the VDPAU API. This should particularly include the deinterlacer, and ideally all features should be usable to allow comparing the quality and performance of different hardware and hardware vs. software. |
| | 166 | |
| | 167 | '''Prerequisites:''' C coding skills, and you will need hardware that allows VDPAU post-processing. |
| | 168 | |
| | 169 | '''Qualification Task:''' TBA |
| | 170 | |
| | 171 | '''Mentor:''' Carl Eugen Hoyos (''cehoyos'' in #ffmpeg-devel on Freenode IRC, ce AT hoyos.ws) |
| | 172 | |
| | 173 | '''Backup Mentor:''' Reimar Doeffinger (''reimar'' in #ffmpeg-devel on Freenode IRC, Reimar.Doeffinger [at] gmx.de), Thilo Borgmann (thilo DOT borgmann AT mail DOT de) |
| | 174 | |
| | 175 | == TrueHD encoder == |
| | 176 | |
| | 177 | '''Description:''' FFmpeg currently does not support encoding to TrueHD, one of the lossless audio formats used on Bluray discs. A nearly functional Meridian Lossless Packing (MLP) encoder has already been written and is available on [https://github.com/ramiropolla/soc/tree/master/mlp github]. The MLP codec is the basis for TrueHD. For this project, that encoder is first to be updated to fit into the current codebase of FFmpeg and to be tested for conformance against Surcode's MLP encoder. Second, the encoder is to be updated to implement TrueHD functionality, allowing it to losslessly encode audio to play it on hardware devices capable of TrueHD decoding. Finally, the encoder is to be brought through the usual reviewing process to hit the codebase at the end of the project. |
| | 178 | |
| | 179 | '''Expected results:''' a TrueHD encoder that allows to losslessly encode audio to play it on hardware devices capable of TrueHD decoding with a competetive compression rate |
| | 180 | |
| | 181 | '''Prerequisites:''' C coding skills, basic familiarity with git |
| | 182 | |
| | 183 | '''Qualification Task:''' Update the MLP encoder so that it produces a valid bitstream that can be decoded by FFmpeg without errors to silence. Find out how to validate the generated bitstream besides using FFmpeg. |
| | 184 | |
| | 185 | '''Mentor:''' Rostislav Pehlivanov (atomnuker in #ffmpeg-devel on Freenode IRC, atomnuker AT gmail DOT com) |
| | 186 | |
| | 187 | '''Backup mentor:''' TBA |
| 128 | | '''Backup Mentor:''' TBC |
| | 218 | '''Backup Mentor:''' Paul B Mahol (''durandal_1707'' in #ffmpeg-devel on Freenode IRC, onemda@gmail.com) |
| | 219 | |
| | 220 | |
| | 221 | == Motion interpolation in libavfilter == |
| | 222 | |
| | 223 | '''Description:''' Libavfilter is missing motion estimation and interpolation filters. |
| | 224 | |
| | 225 | '''Expected results:''' State of the art frame interpolation in the libavfilter. |
| | 226 | |
| | 227 | '''Prerequisites:''' Very good C coding skills, familiarity with git, ability to very quickly understand existing code. |
| | 228 | |
| | 229 | '''Qualification Task:''' Basic but working motion estimation filter. |
| | 230 | |
| | 231 | '''Mentor:''' Paul B Mahol (''durandal_1707'' in #ffmpeg-devel on Freenode IRC, onemda@gmail.com) |
| | 232 | |
| | 233 | '''Backup Mentor:''' Michael Niedermayer (''michaelni'' in #ffmpeg-devel on Freenode IRC, michaelni@gmx.at) |
| | 234 | |
| | 235 | |
| | 236 | == DICOM support == |
| | 237 | |
| | 238 | '''Description:''' FFmpeg currently does not support DICOM files although this is a widely used image format that is often passed to patients who have no access to DICOM equipment. |
| | 239 | |
| | 240 | '''Expected results:''' Support reading as many features of the format as possible. |
| | 241 | |
| | 242 | '''Prerequisites:''' Good C coding skills, basic familiarity with git |
| | 243 | |
| | 244 | '''Qualification Task:''' TBA |
| | 245 | |
| | 246 | '''Mentor:''' Carl Eugen Hoyos (''cehoyos'' in #ffmpeg-devel on Freenode IRC, ce AT hoyos.ws) |
| | 247 | |
| | 248 | '''Backup Mentor:''' Stefano Sabatini (''saste'' in #ffmpeg-devel on Freenode IRC, stefasab@gmail.com) |