VP3/Theora Encoder

From MultimediaWiki
Jump to navigation Jump to search

Google Summer of Code 2008

Student  : Sisir Koppaka

Mentor  : Mike Melanson

Minimum Requirement: I and P frame support, simple motion estimation before September 1st.

This purpose of this page is to serve as a one-stop reference to all things related to this project, so that one can know the most recent status by visiting this page. Essentially, it is a filtered version of mails(private and mailing list) and interaction related to this project. This page would also be useful to anyone interested in participating in future editions of SoC in FFmpeg or even general, newbie multimedia hackers.

What this is all about

I plan to implement an encoder for VP3 first, and then for Theora during this summer. The stable reference implementation has been criticised of not producing high quality videos and this has in turn been attributed to the fact that most of the VP3 code base that was donated and which formed the basis for that effort was undocumented. An experimental encoder is also under development, in which Xiph.org hopes to better the quality.

Currently, the plan is to do a clean implementation for FFmpeg, i.e., not to use the Xiph.org codebase for developing this one. The hard focus of this implementation is quality.

Worklog

A log of all stuff I did.

  • April 25 : Created this page.

Resources

This section contains links to online resources, research papers or any other stuff that would be useful to this project. Please feel free to add any other resources that you think would help me in this project.

Tools

These are some tools which might be required in this project. I'm acquainted with some of them, and still learning some. If you feel there is some tool that I need to know that would make my job easier, like for debugging or optimization(which I will do in the later part of this summer), then please add your suggestions here - I will look it up and learn it. If you know of better sources of information on these tools, then please do add such links below.

GDB

Debugging

Valgrind

Debugging

gprof

Profiling

Advice

Anything which does not fall under the above sections.

  • For ASM optimizations, interframe motion estimation functions are already in place for general use, but there is the matter of porting the SIMD-optimized versions of the DCT (MMX/SSE2/AltiVec). But that is already written in the original project and can be safely cribbed within the constraints of this project. That type of optimization comes later on, after the basic encoder is already functional (or when you need to pick some low-hanging fruit to gain confidence before working on something really complex). - Mike Melanson

Contact

My contact information

  • Primary email : sisir DOT koppaka AT gmail DOT com This is also my primary chat ID, in Google Talk and Jabber.
  • Yahoo! - sisir UNDERSCORE ssa AT yahoo DOT com (Only for chat, no mails)
  • Website: http://koppaka.net/