A few weeks ago, my father bought a shiny new Canon EOS 550D DSLR camera, not only for capturing photos, but for videos too. Why not – after all, the video functions are finally taken seriously by the camera manufacturers and video on a APS-C-sized sensor is a very cool thing – in theory. I had the chance to analyze a few 720p/50 sample videos made with the camera, and I have to say that I’m quite disappointed.
The camera captures video with 640×480, 1280×720 or 1920×1080 pixels at 24, 25, 30, 50 or 60 fps, whereas the latter two frame rates are not available at the maximum resolution. All of these modes are progressive, which pretty much forces you to use 720p/50 (or 60, if you like) unless you want to go the jerky cineastic 24p route.
Recorded clips are stored on the SDHC card in QuickTime (MOV) format with 48 kHz 16-bit PCM stereo audio. However, the microphone is only mono, so it’s just twice the same channel. Video is encoded in H.264, but the encoder in the camera is almost as basic as it gets (warning, gritty video coding details follow): It’s Baseline Profile, Level 3.2, with a single slice per frame, a fixed GOP structure of one IDR frame every 12 frames, single QP per frame and a very, very basic QP-based rate control. All partitions are 16×16. The motion estimation is very crude (it rarely finds a usable vector, seems to be even worse than the simplest 3DRS approaches) and operates only at full-pel resolution. There are also lots of intra macroblocks in P frames. Intra prediction uses the DC, horizontal and vertical modes. To my great surprise, the deblocking filter is also in use even though this is the hardest to implement part of H.264 and it’s not even necessary: To compensate for the extremely bad interframe prediction capabilities, the camera constantly operates at QPs in the 10-20 range. That’s pretty awesome quality, but the deblocking filter is almost useless at these levels. The high quality also means that there’s a high bitrate: The average data rate written to the SD card is around 5.5 MBytes/s, which means that a Class 6 SDHC card is just barely sufficient.
Overall image quality and handling is decent – I’d say, it’s not much worse than a typical video camera. First I was afraid to see rolling shutter artifacts galore, but fortunately these are very hard to spot at 50 or 60 fps. Auto exposure could be improved, but apart from that, it’s pretty much OK.
One thing, though, is not OK and spoils all the fun of having such a great and expensive camera: At least at 720p, the camera renders near-horizontal diagonal lines as blurry, colorful stairs. Here’s a 100% crop that exhibits the problem very clearly. Just look at the edges of the benches in the background:
Yes, this image is really unscaled, it’s taken straight from the H.264 stream. It looks as if the image has been poorly debayered or even deinterlaced (though I absolutely can’t imagine why this would be necessary – after all, the camera operates in progressive mode all the time). To me, this is a classic case of epic fail – the much touted and well-advertised video feature turned out to be pretty much unuseable with these artifacts (which, by the way, look even worse in motion).
I can just hope that Canon fixes this problem with a firmware upgrade, but until then, I just have to say that I’m deeply disappointed.