Changes between Version 12 and Version 13 of SponsoringPrograms/GSoC/2014
- Timestamp:
- Feb 1, 2014, 1:25:55 AM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SponsoringPrograms/GSoC/2014
v12 v13 46 46 47 47 == H.264 Multiview Video Coding (MVC) == 48 Image:Mmspg-epfl-ch-double-camera.jpg 48 49 [[Image(h264_mvc.jpg, right, nolink)]] 49 50 50 51 '''Description:''' MVC samples exist and the codec is used on Blu-ray media, but FFmpeg is missing a decoder. Since this project also consists of some changes in the current architecture, it is especially important that this project is discussed on the ffmpeg-devel mailing list. … … 56 57 '''Qualification Task:''' Perform work that demonstrates understanding of MVC and that is a subpart of the whole MVC implementation. 57 58 58 '''Mentor:''' TBA, possibly Michael Niedermayer (michaelni onIRC)59 60 '''Backup mentor:''' TBA, possibly Kieran Kunhya (kierank onIRC)59 '''Mentor:''' TBA, possibly Michael Niedermayer (michaelni at #ffmpeg-devel IRC) 60 61 '''Backup mentor:''' TBA, possibly Kieran Kunhya (kierank at #ffmpeg-devel IRC) 61 62 62 63 63 64 == Animated Portable Network Graphics (APNG) == 64 65 66 [[Image(animated_PNG_example_bouncing_beach_ball.png, right, nolink)]] 67 65 68 '''Description:''' FFmpeg currently does not support Animated PNGs. 66 69 67 70 Specification: https://wiki.mozilla.org/APNG_Specification 68 Image:Animated PNG example bouncing beach ball.png69 71 70 72 '''Expected results:''' … … 88 90 - test code under valgrind so no invalid reads/writes happen 89 91 90 - APNG muxer & &APNG encoder92 - APNG muxer & APNG encoder 91 93 - use existing PNG encoder code (write encoder in same file) 92 94 - write compliant files, make sure they play correctly in major web browsers that support APNG … … 95 97 '''Prerequisites:''' C coding skills, familiarity with git/source code control systems. 96 98 97 '''Qualification Task:''' Implement format autodetection for imagepipe & image demuxer98 99 '''Mentor:''' TBA, possibly Paul B Mahol (durandal_1707 onIRC)100 101 '''Backup mentor:''' TBA, possibly Peter Ross (pross-au onIRC)99 '''Qualification Task:''' Implement format autodetection for imagepipe and image demuxer. 100 101 '''Mentor:''' TBA, possibly Paul B Mahol (durandal_1707 at #ffmpeg-devel IRC) 102 103 '''Backup mentor:''' TBA, possibly Peter Ross (pross-au at #ffmpeg-devel IRC) 102 104 103 105 104 106 == FFv1 P frame support == 105 107 108 [[Image(ffv1pframes.jpg, right, nolink)]] 109 106 110 '''Description:''' FFv1 is one of the most efficient intra-only lossless video codecs. Your work will be to add support for P frames with motion compensation and motion estimation support (the existing motion estimation code in libavcodec can be reused here). Then fine-tune it until the best compression rate is achieved. This will make FFv1 competetive with existing I+P frame lossless codecs like lossless H.264. 107 111 … … 119 123 == Misc Libavfilter extension == 120 124 121 [[Image(Lavfi-gsoc-filter-vintage-illustration.jpg, right )]]125 [[Image(Lavfi-gsoc-filter-vintage-illustration.jpg, right, nolink)]] 122 126 123 127 '''Description:''' Libavfilter is the FFmpeg filtering library. It currently supports audio and video filtering and generation support. This work may focus on porting, fixing, extending, or writing new audio and video filters from scratch. … … 145 149 == Subtitles == 146 150 147 [[Image(subtitles_support.jpg )]]151 [[Image(subtitles_support.jpg, center, nolink)]] 148 152 149 153 '''Description:''' FFmpeg has been working on improving its subtitles support recently, notably by adding the support for various text subtitles and various hardsubbing (burning the subtitles onto the video) facilities. While the theme may sound relatively simple compared to audio/video signal processing, the project carries an historical burden not easy to deal with, and introduces various issues very specific to its sparse form. … … 167 171 == Postproc optimizations == 168 172 169 [[Image(PostProc.jpg, 240, right )]]173 [[Image(PostProc.jpg, 240, right, nolink)]] 170 174 171 175 '''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). 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+). … … 188 192 == Bayer RGB colorspaces == 189 193 190 [[Image(bayer_rgb_colorspaces.png, right )]]194 [[Image(bayer_rgb_colorspaces.png, right, nolink)]] 191 195 192 196 '''Description:''' Several image and video format store pixels using Bayer-pattern colorspaces. Supporting these format would broaden FFmpeg's applicability to RAW still and video photography processing. … … 214 218 215 219 == MPEG-4 ALS encoder == 216 ATunes.png217 218 220 219 221 '''Description:''' 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 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 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. … … 230 232 '''Qualification Task''': Add floating point support to MPEG-4 ALS decoder 231 233 232 '''Mentor:''' TBA, possibly Paul B Mahol (durandal_1707 onIRC)233 234 '''Backup Mentor:''' TBA, possibly Stefano Sabatini (saste onIRC)234 '''Mentor:''' TBA, possibly Paul B Mahol (durandal_1707 at #ffmpeg-devel IRC) 235 236 '''Backup Mentor:''' TBA, possibly Stefano Sabatini (saste at #ffmpeg-devel IRC) 235 237 236 238 237 239 == Hardware Acceleration (hwaccel) API v2 == 238 Image:Hardware.jpg 239 240 '''Description:''' FFmpeg supports hardware accelerated decoding through the internal hwacel API. Currently supported system hardware acceleration APIs are VA-API (Linux), DXVA2 (Windows) and VDA (MacOS X). However, the current approach requires client applications to allocate the underlying resources (e.g. hardware surfaces and context) themselves, and handing them over to FFmpeg. This incurs a few limitations: this is not scalable to new codecs, i.e. this requires new tokens for each newly supported codec; this incurs extra work in the client application, which tends to be duplicated over several client applications; and this prevents efficient fallback to software decoding mode if the hardware cannot handle a particular codec specification. 241 242 The goal of this project is to revamp the FFmpeg Hardware Acceleration API so that hardware resources are allocated and managed in the library, thus requiring the client application to only provide a single hardware context/device handle; provide a way to fallback early to software decoding mode if the underlying hardware won't be able to handle the bitstream; and make it possible to select a hardware accelerator by ID and not polluting the PixelFormats namespace. 240 241 [[Image(hwaccel.jpg, right, nolink)]] 242 243 '''Description:''' FFmpeg supports hardware accelerated decoding through the internal hwaccel API. Currently supported system hardware acceleration APIs are VA-API (Linux), DXVA2 (Windows) and VDA (MacOS X). However, the current approach requires client applications to allocate the underlying resources (e.g. hardware surfaces and context) themselves, and handing them over to FFmpeg. This incurs a few limitations: this is not scalable to new codecs, i.e. this requires new tokens for each newly supported codec; this incurs extra work in the client application, which tends to be duplicated over several client applications; and this prevents efficient fallback to software decoding mode if the hardware cannot handle a particular codec specification. 244 245 The goal of this project is to revamp the FFmpeg Hardware Acceleration API so that hardware resources are allocated and managed in the library, thus requiring the client application to only provide a single hardware context/device handle; provide a way to fallback early to software decoding mode if the underlying hardware won't be able to handle the bitstream; and make it possible to select a hardware accelerator by ID and not polluting the !PixelFormats namespace. 243 246 244 247 '''Expected results:''' … … 262 265 - Port the SDL renderer to the new VO infrastructure 263 266 - Add support for VA-API: VA renderer through vaPutSurface(), add -hwaccel option to select "vaapi" renderer 264 - Add support for VDPAU (optional): VDPAU renderer through VdpPresentationQueueDisplay()267 - Add support for VDPAU (optional): VDPAU renderer through !VdpPresentationQueueDisplay() 265 268 - Integrate hardware acceleration into ffmpeg 266 269 - Add support for VA-API: use the VA/DRM API for headless (no-X display) decoding, use libudev to determine the device to use … … 270 273 '''Qualification Task:''' Anything related to the Hardware Acceleration (hwaccel) API, or to its related users. e.g. port VDPAU acceleration to use hwaccel, add JPEG decoding support with VA-API, etc. 271 274 272 '''Mentor:''' TBA, possibly Gwenole Beauchesne ( __gb__ onIRC)275 '''Mentor:''' TBA, possibly Gwenole Beauchesne (!__gb!__ at #ffmpeg-devel IRC) 273 276 274 277 '''Backup Mentor:''' TBA … … 282 285 283 286 - MPEG-2 encoding: 284 - Add basic encoding with I/P frames (handle the -goption)285 - Add support for B frames (handle the -bfoption)287 - Add basic encoding with I/P frames (handle the `-g` option) 288 - Add support for B frames (handle the `-bf` option) 286 289 - Add support for constant bitrate (CBR, i.e. maxrate == bitrate and bufsize set) 287 290 - (Optionally) add support for interlaced contents 288 291 - H.264 encoding: 289 - Add basic encoding with I/P frames (handle the -goption)290 - Add support for B frames (handle the -bfoption)292 - Add basic encoding with I/P frames (handle the `-g` option) 293 - Add support for B frames (handle the `-bf` option) 291 294 - Add support for constant bitrate (CBR, i.e. maxrate == bitrate and bufsize set) 292 295 - Add support for constant QP (CQP, i.e. handle the -cqp option) … … 302 305 '''Qualification Task''': Anything related to the Hardware Acceleration (hwaccel) API, or to its related users. e.g. port VDPAU acceleration to use hwaccel, add JPEG decoding support with VA-API, etc. 303 306 304 '''Mentor:''' TBA, possibly Gwenole Beauchesne ( __gb__ onIRC)307 '''Mentor:''' TBA, possibly Gwenole Beauchesne (!__gb!__ at #ffmpeg-devel IRC) 305 308 306 309 '''Backup Mentor:''' TBA, possibly Tushar Gohad … … 321 324 '''Prerequisites:''' C coding skills, familiarity with git/source code control systems, knowledge about transform based audio coding would be useful. 322 325 323 '''Mentor:''' TBA, possibly Baptiste Coudurier (bcoudurier onIRC)324 325 '''Backup Mentor:''' TBA, possibly Stefano Sabatini (saste onIRC)326 '''Mentor:''' TBA, possibly Baptiste Coudurier (bcoudurier at #ffmpeg-devel IRC) 327 328 '''Backup Mentor:''' TBA, possibly Stefano Sabatini (saste at #ffmpeg-devel IRC) 326 329 327 330 … … 339 342 '''Prerequisites:''' C coding skills, familiarity with git/source code control systems. 340 343 341 '''Mentor:''' TBA, possibly Benjamin Larsson (merbanan on IRC) 342 343 '''Backup Mentor:''' TBA, possibly Stefano Sabatini (saste on IRC) 344 345 344 '''Mentor:''' TBA, possibly Benjamin Larsson (merbanan at #ffmpeg-devel IRC) 345 346 '''Backup Mentor:''' TBA, possibly Stefano Sabatini (saste at #ffmpeg-devel IRC) 346 347 347 348 ----
