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


Ignore:
Timestamp:
Feb 1, 2014, 3:25:55 AM (6 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----