Difference between revisions of "X264 GCodeIn Ideas"

From VideoLAN Wiki
Jump to navigation Jump to search
Line 31: Line 31:
  
 
'''Category''': Video filtering<br>
 
'''Category''': Video filtering<br>
'''Description''': Port ''any'' video filter to x264!<br>
+
'''Description''': Port ''any'' video filter to x264<br>
 
'''Details''': x264 recently got a filtering system that allows users to process video before encoding -- resizing, cropping, and so forth.  We'd like to add fancier filters by porting them from other projects, like mplayer's libmpcodecs.  These could include denoising, sharpening, blurring, and so forth.<br>
 
'''Details''': x264 recently got a filtering system that allows users to process video before encoding -- resizing, cropping, and so forth.  We'd like to add fancier filters by porting them from other projects, like mplayer's libmpcodecs.  These could include denoising, sharpening, blurring, and so forth.<br>
  

Revision as of 19:48, 6 November 2010

Google Code In

This page is about gathering ideas for the x264 project for acceptance in the Google Code In 2010-2011 program.

x264 has been part of Videolan's Google Summer of Code in 2008, 2009 and 2010.

Ideas for x264

Warning

This is a temporary page for listing ideas for Google Code-in tasks.

The final tasks will be moved to melange, when needed.

Tools

Category: Quality Assurance
Description: Automated regression test tool
Details: x264 has no standard regression test tool, and all the developers rely on their own scripts. An automated regression test tool should be able to:

  • Test any two revisions against each other.
  • Test a wide variety of x264 settings combinations. We can help you here by giving you some of the existing scripts.
  • Report the status of a revision: working (basic regression test passes), broken (basic regression test fails), crash, etc.
  • Report the difference between any two revisions (output differs, output is identical, which tests' output differs, etc).

Outcome: A regression test script (in Bash, Perl, Python, or similar)
Difficulty: medium-hard
Tools: x264, JM, ffmpeg, Linux, git
Time: 5 days
Possible Mentors: Jason Garrett-Glaser (Dark Shikari)

CLI Development

Category: Video filtering
Description: Port any video filter to x264
Details: x264 recently got a filtering system that allows users to process video before encoding -- resizing, cropping, and so forth. We'd like to add fancier filters by porting them from other projects, like mplayer's libmpcodecs. These could include denoising, sharpening, blurring, and so forth.

You can pick any filter you want and port it -- just make sure to ask first to make sure that it would make sense in the context of x264.

Do note all filters must reach the code quality standards of x264, so in some cases you may need to do more than just copy-pasting: reformatting code, etc.

Outcome: A new filter in x264.
Difficulty: hard
Tools: x264
Time: 7 days
Possible Mentors: Jason Garrett-Glaser (Dark Shikari), James Darnley (J_Darnley), Steven Walters (kemuri-_9)

libx264 Core Development

Category: Assembly Optimization
Description: Write any assembly function: x86 (MMX/SSE), PowerPC (Altivec), or ARM (ARMv6/NEON)
Details: x264 has boatloads of assembly functions that haven't been written yet. Assembly functions are really great for Google Code-In because they can be written without any knowledge of the overall program. Most functions are only a few lines long in C, making an assembly implementation relatively easy.

If you pick this task, it's highly recommended that you have some experience in assembly coding already. Writing a single function is not too difficult if you already have some experience, but if you've never done it before, it will take significantly more time. Of course, if you're interested in learning, we'd be happy to teach you, but don't complain when it's harder than you expected!
Outcome: A new assembly function in x264.
Difficulty: hard
Tools: x264, yasm
Time: 1-7 days
Possible Mentors: Jason Garrett-Glaser (Dark Shikari), Holger Lubitz (holger), Loren Merritt (pengvado)

Contact

For ANY question, contact User:Dark Shikari, preferably on IRC.

IRC channel: #x264dev on irc://irc.freenode.net