Changes between Version 16 and Version 17 of SponsoringPrograms/GSoC/2022


Ignore:
Timestamp:
Feb 26, 2022, 5:09:32 PM (5 years ago)
Author:
Pierre-Anthony Lemieux
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SponsoringPrograms/GSoC/2022

    v16 v17  
    108108'''Qualification Task:''' Add support for detecting Part 15 code blocks to the native JPEG 2000 decoder so that it can fail gracefully.
    109109
    110 '''Mentor:''' pal@palemieux.com
     110'''Mentor:''' Pierre-Anthony Lemieux (pal@palemieux.com)
     111
     112'''Backup Mentor:''' Chris Hafey (cehafey@amazon.com)
     113
     114'''Duration:''' 350 hours
     115
     116
     117== GPU (CUDA) accelerate common software video filters ==
     118
     119'''Description:''' FFmpeg already has a couple CUDA based video filters, but for a lot of commonly used functionality you have to fall back to software processing. A lot of existing software filters can be ported to CUDA more or less directly. Or completely new ones can be implemented.
     120
     121'''Expected results:''' Port or create from scratch one or multiple CUDA based video filters. The number of filters entirely depends on the difficulty and complexity of the filters chosen.
     122
     123'''Prerequisites:''' Access to the necessary Hardware. Basic understanding of git and Makefiles. Intermediate to Good C skills and at least a basic understanding of C++. Understanding of filtering algorithms and how shaders/CUDA kernels operate on GPUs.
     124
     125'''Difficulty:''' Medium
     126
     127'''Qualification Task:''' Port a software filter of your choice to CUDA. Does not need to be fully featured(no extensive pixel format support or options).
     128
     129'''Mentor:''' Timo Rothenpieler (''BtbN'' in #ffmpeg-devel on Libera.Chat IRC, timo@rothenpieler.org)
    111130
    112131'''Backup Mentor:''' TBD
    113132
     133'''Duration:''' 175
     134
     135
     136== FATE Tests for Hardware(CUDA/NVDEC)-Accelerated filters/decoders  ==
     137
     138'''Description:''' As of right now, no tests exists for any of the CUDA/NVDEC accelerated filters and decoders. This is quite unfortunate, since they can end up with unintended changes in behavior just like anything else.
     139
     140'''Expected results:''' Write FATE tests that cover one or several of the CUDA/NVDEC based filters and/or decoders, depending on complexity and the necessary initial boilerplate. The focus on which decoders/filters to cover is free to decide, since creating the initial boilerplate to run those tests will be a large part of the project.
     141
     142'''Prerequisites:''' Access to the necessary Hardware. Basic understanding of git, good familiarity with Makefiles and C.
     143
     144'''Difficulty:''' Medium
     145
     146'''Qualification Task:''' Outline how testing Hardware-Accelerated filters could be tested and implement initial boilerplate and at least one simple test.
     147
     148'''Mentor:''' Timo Rothenpieler (''BtbN'' in #ffmpeg-devel on Libera.Chat IRC, timo@rothenpieler.org)
     149
     150'''Backup Mentor:''' TBD
     151
     152'''Duration:''' 175
     153
     154----
     155= Unmentored Projects =
     156
     157This is a list of projects that students are encouraged to consider if a mentored project is unavailable or not within the students skill or interests. The student will have to find a mentor for the project. A student can also [#YourOwnProjectIdea propose their own project].
     158
     159
     160== Checkasm ==
     161
     162'''Description:''' Assembly functions in FFmpeg are not unit tested like they are in x264 or dav1d.
     163
     164'''Expected results:''' Add tests for most asm functions which are not tested. Less if this is 175 hour duration.
     165
     166'''Prerequisites:''' Good C coding skills, basic familiarity with Git. Some x86 assembly knowledge can be advantageous.
     167
     168'''Difficulty:''' Easy
     169
     170'''Qualification Task:''' Add tests for 2 separate asm functions, and pass review on the ffmpeg-devel mailing list. To pass qualification the code must be accepted into git master.
     171
     172'''Mentor:''' tbc
     173
     174'''Backup Mentor:''' tbc
     175
     176'''Duration:''' 175 or 350 hours
     177
     178
     179== ffcall ==
     180
     181'''Description:''' Simple tool which shows how to use libavcodec & libavformat for creating a 2 way video conference tool.
     182
     183'''Expected results:''' You will write from scratch a tool which allows 2 or more people to communicate with video and audio across the network. The tool can reuse parts from the codebase like ffplay or other input/output related code. The tool also has to use strong end to end encryption.
     184
     185'''Prerequisites:''' Good C coding skills, basic familiarity with Git. Experience with writing software communicating over the network.
     186
     187
     188'''Difficulty:''' Hard
     189
     190'''Qualification Task:''' Write a one way audio or video (not both needed) communication tool with libavcodec & libavformat. The tool must pass code review for the qualification to pass.
     191
     192'''Mentor:''' tbc
     193
     194'''Backup Mentor:''' tbc
     195
    114196'''Duration:''' 350 hours
    115197
    116198
    117 == GPU (CUDA) accelerate common software video filters ==
    118 
    119 '''Description:''' FFmpeg already has a couple CUDA based video filters, but for a lot of commonly used functionality you have to fall back to software processing. A lot of existing software filters can be ported to CUDA more or less directly. Or completely new ones can be implemented.
    120 
    121 '''Expected results:''' Port or create from scratch one or multiple CUDA based video filters. The number of filters entirely depends on the difficulty and complexity of the filters chosen.
    122 
    123 '''Prerequisites:''' Access to the necessary Hardware. Basic understanding of git and Makefiles. Intermediate to Good C skills and at least a basic understanding of C++. Understanding of filtering algorithms and how shaders/CUDA kernels operate on GPUs.
    124 
    125 '''Difficulty:''' Medium
    126 
    127 '''Qualification Task:''' Port a software filter of your choice to CUDA. Does not need to be fully featured(no extensive pixel format support or options).
    128 
    129 '''Mentor:''' Timo Rothenpieler (''BtbN'' in #ffmpeg-devel on Libera.Chat IRC, timo@rothenpieler.org)
    130 
    131 '''Backup Mentor:''' TBD
    132 
    133 '''Duration:''' 175
    134 
    135 
    136 == FATE Tests for Hardware(CUDA/NVDEC)-Accelerated filters/decoders  ==
    137 
    138 '''Description:''' As of right now, no tests exists for any of the CUDA/NVDEC accelerated filters and decoders. This is quite unfortunate, since they can end up with unintended changes in behavior just like anything else.
    139 
    140 '''Expected results:''' Write FATE tests that cover one or several of the CUDA/NVDEC based filters and/or decoders, depending on complexity and the necessary initial boilerplate. The focus on which decoders/filters to cover is free to decide, since creating the initial boilerplate to run those tests will be a large part of the project.
    141 
    142 '''Prerequisites:''' Access to the necessary Hardware. Basic understanding of git, good familiarity with Makefiles and C.
    143 
    144 '''Difficulty:''' Medium
    145 
    146 '''Qualification Task:''' Outline how testing Hardware-Accelerated filters could be tested and implement initial boilerplate and at least one simple test.
    147 
    148 '''Mentor:''' Timo Rothenpieler (''BtbN'' in #ffmpeg-devel on Libera.Chat IRC, timo@rothenpieler.org)
    149 
    150 '''Backup Mentor:''' TBD
    151 
    152 '''Duration:''' 175
    153 
    154 ----
    155 = Unmentored Projects =
    156 
    157 This is a list of projects that students are encouraged to consider if a mentored project is unavailable or not within the students skill or interests. The student will have to find a mentor for the project. A student can also [#YourOwnProjectIdea propose their own project].
    158 
    159 
    160 == Checkasm ==
    161 
    162 '''Description:''' Assembly functions in FFmpeg are not unit tested like they are in x264 or dav1d.
    163 
    164 '''Expected results:''' Add tests for most asm functions which are not tested. Less if this is 175 hour duration.
    165 
    166 '''Prerequisites:''' Good C coding skills, basic familiarity with Git. Some x86 assembly knowledge can be advantageous.
    167 
    168 '''Difficulty:''' Easy
    169 
    170 '''Qualification Task:''' Add tests for 2 separate asm functions, and pass review on the ffmpeg-devel mailing list. To pass qualification the code must be accepted into git master.
    171 
    172 '''Mentor:''' tbc
    173 
    174 '''Backup Mentor:''' tbc
     199== Template Project ==
     200
     201'''Description:''' Template Description
     202
     203'''Expected results:''' Template results
     204
     205'''Prerequisites:''' Template prequisites
     206
     207'''Difficulty:'''
     208
     209'''Qualification Task:''' Template Qualification Task
     210
     211'''Mentor:''' someone @ somehwere.net
     212
     213'''Backup Mentor:''' someoneelse @ somewhere.net
    175214
    176215'''Duration:''' 175 or 350 hours
    177216
    178217
    179 == ffcall ==
    180 
    181 '''Description:''' Simple tool which shows how to use libavcodec & libavformat for creating a 2 way video conference tool.
    182 
    183 '''Expected results:''' You will write from scratch a tool which allows 2 or more people to communicate with video and audio across the network. The tool can reuse parts from the codebase like ffplay or other input/output related code. The tool also has to use strong end to end encryption.
    184 
    185 '''Prerequisites:''' Good C coding skills, basic familiarity with Git. Experience with writing software communicating over the network.
    186 
    187 
    188 '''Difficulty:''' Hard
    189 
    190 '''Qualification Task:''' Write a one way audio or video (not both needed) communication tool with libavcodec & libavformat. The tool must pass code review for the qualification to pass.
    191 
    192 '''Mentor:''' tbc
    193 
    194 '''Backup Mentor:''' tbc
    195 
    196 '''Duration:''' 350 hours
    197 
    198 
    199 == Template Project ==
    200 
    201 '''Description:''' Template Description
    202 
    203 '''Expected results:''' Template results
    204 
    205 '''Prerequisites:''' Template prequisites
    206 
    207 '''Difficulty:'''
    208 
    209 '''Qualification Task:''' Template Qualification Task
    210 
    211 '''Mentor:''' someone @ somehwere.net
    212 
    213 '''Backup Mentor:''' someoneelse @ somewhere.net
    214 
    215 '''Duration:''' 175 or 350 hours
    216 
    217 
    218218
    219219----