Changes between Version 12 and Version 13 of SponsoringPrograms/GSoC/2014


Ignore:
Timestamp:
Feb 1, 2014, 3:25:55 AM (4 years ago)
Author:
llogan
Comment:

add images; nits

Legend:

Unmodified
Added
Removed
Modified
  • SponsoringPrograms/GSoC/2014

    v12 v13  
    4646 
    4747== H.264 Multiview Video Coding (MVC) == 
    48 Image:Mmspg-epfl-ch-double-camera.jpg 
     48 
     49[[Image(h264_mvc.jpg, right, nolink)]] 
    4950 
    5051'''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. 
     
    5657'''Qualification Task:''' Perform work that demonstrates understanding of MVC and that is a subpart of the whole MVC implementation. 
    5758 
    58 '''Mentor:''' TBA, possibly Michael Niedermayer (michaelni on IRC) 
    59  
    60 '''Backup mentor:''' TBA, possibly Kieran Kunhya (kierank on IRC) 
     59'''Mentor:''' TBA, possibly Michael Niedermayer (michaelni at #ffmpeg-devel IRC) 
     60 
     61'''Backup mentor:''' TBA, possibly Kieran Kunhya (kierank at #ffmpeg-devel IRC) 
    6162 
    6263  
    6364== Animated Portable Network Graphics (APNG) == 
    6465 
     66[[Image(animated_PNG_example_bouncing_beach_ball.png, right, nolink)]] 
     67 
    6568'''Description:''' FFmpeg currently does not support Animated PNGs. 
    6669 
    6770Specification: https://wiki.mozilla.org/APNG_Specification 
    68 Image:Animated PNG example bouncing beach ball.png 
    6971 
    7072'''Expected results:''' 
     
    8890       - test code under valgrind so no invalid reads/writes happen  
    8991 
    90    - APNG muxer && APNG encoder 
     92   - APNG muxer & APNG encoder 
    9193       - use existing PNG encoder code (write encoder in same file) 
    9294       - write compliant files, make sure they play correctly in major web browsers that support APNG 
     
    9597'''Prerequisites:''' C coding skills, familiarity with git/source code control systems. 
    9698 
    97 '''Qualification Task:''' Implement format autodetection for imagepipe & image demuxer 
    98  
    99 '''Mentor:''' TBA, possibly Paul B Mahol (durandal_1707 on IRC) 
    100  
    101 '''Backup mentor:''' TBA, possibly Peter Ross (pross-au on IRC)  
     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)  
    102104 
    103105 
    104106== FFv1 P frame support == 
    105107 
     108[[Image(ffv1pframes.jpg, right, nolink)]] 
     109 
    106110'''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. 
    107111 
     
    119123== Misc Libavfilter extension == 
    120124 
    121 [[Image(Lavfi-gsoc-filter-vintage-illustration.jpg, right)]] 
     125[[Image(Lavfi-gsoc-filter-vintage-illustration.jpg, right, nolink)]] 
    122126 
    123127'''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. 
     
    145149== Subtitles == 
    146150 
    147 [[Image(subtitles_support.jpg)]] 
     151[[Image(subtitles_support.jpg, center​, nolink)]] 
    148152 
    149153'''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. 
     
    167171== Postproc optimizations == 
    168172 
    169 [[Image(PostProc.jpg, 240, right)]] 
     173[[Image(PostProc.jpg, 240, right, nolink)]] 
    170174 
    171175'''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+). 
     
    188192== Bayer RGB colorspaces == 
    189193 
    190 [[Image(bayer_rgb_colorspaces.png, right)]] 
     194[[Image(bayer_rgb_colorspaces.png, right, nolink)]] 
    191195 
    192196'''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. 
     
    214218 
    215219== MPEG-4 ALS encoder == 
    216 ATunes.png 
    217  
    218220 
    219221'''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. 
     
    230232'''Qualification Task''': Add floating point support to MPEG-4 ALS decoder 
    231233 
    232 '''Mentor:''' TBA, possibly Paul B Mahol (durandal_1707 on IRC) 
    233  
    234 '''Backup Mentor:''' TBA, possibly Stefano Sabatini (saste on IRC) 
     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) 
    235237 
    236238 
    237239== 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 
     245The 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. 
    243246 
    244247'''Expected results:''' 
     
    262265           - Port the SDL renderer to the new VO infrastructure 
    263266           - 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()  
    265268       - Integrate hardware acceleration into ffmpeg 
    266269           - Add support for VA-API: use the VA/DRM API for headless (no-X display) decoding, use libudev to determine the device to use  
     
    270273'''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. 
    271274 
    272 '''Mentor:''' TBA, possibly Gwenole Beauchesne (__gb__ on IRC) 
     275'''Mentor:''' TBA, possibly Gwenole Beauchesne (!__gb!__ at #ffmpeg-devel IRC) 
    273276 
    274277'''Backup Mentor:''' TBA 
     
    282285 
    283286   - MPEG-2 encoding: 
    284        - Add basic encoding with I/P frames (handle the -g option) 
    285        - Add support for B frames (handle the -bf option) 
     287       - Add basic encoding with I/P frames (handle the `-g` option) 
     288       - Add support for B frames (handle the `-bf` option) 
    286289       - Add support for constant bitrate (CBR, i.e. maxrate == bitrate and bufsize set) 
    287290       - (Optionally) add support for interlaced contents  
    288291   - H.264 encoding: 
    289        - Add basic encoding with I/P frames (handle the -g option) 
    290        - Add support for B frames (handle the -bf option) 
     292       - Add basic encoding with I/P frames (handle the `-g` option) 
     293       - Add support for B frames (handle the `-bf` option) 
    291294       - Add support for constant bitrate (CBR, i.e. maxrate == bitrate and bufsize set) 
    292295       - Add support for constant QP (CQP, i.e. handle the -cqp option) 
     
    302305'''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. 
    303306 
    304 '''Mentor:''' TBA, possibly Gwenole Beauchesne (__gb__ on IRC) 
     307'''Mentor:''' TBA, possibly Gwenole Beauchesne (!__gb!__ at #ffmpeg-devel IRC) 
    305308 
    306309'''Backup Mentor:''' TBA, possibly Tushar Gohad 
     
    321324'''Prerequisites:''' C coding skills, familiarity with git/source code control systems, knowledge about transform based audio coding would be useful. 
    322325 
    323 '''Mentor:''' TBA, possibly Baptiste Coudurier (bcoudurier on IRC) 
    324  
    325 '''Backup Mentor:''' TBA, possibly Stefano Sabatini (saste on IRC) 
     326'''Mentor:''' TBA, possibly Baptiste Coudurier (bcoudurier at #ffmpeg-devel IRC) 
     327 
     328'''Backup Mentor:''' TBA, possibly Stefano Sabatini (saste at #ffmpeg-devel IRC) 
    326329 
    327330 
     
    339342'''Prerequisites:''' C coding skills, familiarity with git/source code control systems. 
    340343 
    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) 
    346347 
    347348----