Thursday, October 30, 2008

TODO list

My TODO list is getting long, so I'm writing it down here. I'll keep updating this post if I decide to add/remove items or when I complete an item.
  1. finish simplifying Aften's asm structure
  2. FFmpeg AC3 decoder channel reordering (after channel order patch is applied)
  3. add FLAC 24-bit encoding to Flake and FFmpeg
  4. finish Alsophila bit allocation improvement and port to Aften
  5. port Alsophila frame encoding structure to Aften
  6. add a trellis mode for variable frame size in Flake
  7. FFmpeg FLAC parser
  8. better FFmpeg raw FLAC muxer
  9. better FFmpeg raw FLAC demuxer
  10. MP4ALS decoder for FFmpeg
  11. clean up MP4ALS encoder for FFmpeg
  12. AC3 metadata editor

Monday, August 4, 2008

ALAC update

Jai's ALAC encoder for FFmpeg SoC is going very well. Entropy coding and prediction are working. Adaptive prediction order and stereo decorrelation have been implemented, but are still works-in-progress. There is still an odd bug which generates non-lossless output when decoded. It's very rare from what I've found, and hopefully the cause will be tracked-down and fixed.

Even with the encoder as it is right now, it could be very easily cleaned-up for inclusion in FFmpeg SVN. The compression isn't great, but a decent working ALAC encoder is better than no encoder, and it's definitely on the right path to being a great encoder.

Saturday, May 10, 2008

MPEG-4 ALS encoder

Last weekend, I started working on an mp4als encoder for FFmpeg. Here is a summary of what I have implemented so far.
  • rice coding (slightly different from jpeg-ls)
  • random access (progressive prediction order)
  • lpc prediction with fixed order
  • joint stereo
  • entropy block partitioning
  • constant and zero block modes
I have quite a bit left to do though for a complete encoder. What I have so far gets comparable compression to the RM20 reference encoder with default settings, and is 3x faster.

Here is a patch against FFmpeg SVN.

Monday, April 28, 2008

staying busy

Some of the things I've been working on or will be soon...

I am mentoring 2 Google Summer of Code projects this year, an ALAC encoder and an MLP/TrueHD encoder.

Jai Menon will be creating the ALAC encoder. I'm very excited about the possibilities of this project. The format seems fairly straightforward, and Jai seems very bright and motivated, so I'm optimistic about him having time this summer for some good experimentation with the various encoding features.

Ramiro Polla will be making the MLP encoder. This seems like a bit more complex task, but I'm confident that Ramiro can complete it. This will be a wonderful addition to FFmpeg and will be very valuable for the open source community in general.

In addition to starting my mentoring, I'm also working on the E-AC3 decoder and on FLAC. E-AC3 is very close to being ready for FFmpeg SVN. The FLAC decoder just needs some work... It's acting as a demuxer, parser, and decoder all in one, with some not-so-fun side-effects. Now I just have to be persistent to get through Michael's tough reviews. :)

Maybe one of these days I'll get back to working on Aften and Flake... But FFmpeg definitely takes priority for now.

Monday, March 10, 2008

March update

I haven't posted in a while. Here is what I've been working on.

Alsophila : experimental AC3 encoder. I wanted to do some major changes to Aften, namely channel coupling and E-AC3 encoding. It was really difficult trying to get it working with Aften. I tried channel coupling at least 5 times, all without success. So I stripped-down the code to the bare bones (no simd, no threading, simplified interface). I quickly got channel coupling working, so I decided to keep the stripped-down version around for future experimental stuff before porting it over to Aften.

I've also been trying to get the FFmpeg E-AC3 decoder up-to-snuff. In the process, I'm also working on the normal AC3 decoder. I am mainly dealing with stability (segfault) issues and speeding up the downmixing without sacrificing quality.

Unrelated to coding, I've been playing PlaneShift, a fun (and free) MMORPG. They just released a new version, which is great for the added features, but has made the server a bit more unstable than usual.

I got a new camera for Christmas! It's a Fujifilm FinePix F50fd. The "fd" stands for face-detection, which is pretty cool. But the real reason I chose it was for the great
reviews. It is one of the best in its class for image quality in general, and puts the rest to shame when it comes to high-ISO/low-light picture-taking. I like to avoid flash if possible, and using a high ISO setting makes this much easier to do even without a tripod. If I was wealthy, I probably would have gotten a digital SLR, most likely a Fujifilm, but this camera is a close second place!