Sofware in Review
Tech news
at TheJemReport.com
Software reviews
at SoftwareinReview.com
Hardware reviews
at HardwareinReview.com
Discuss technology
at TJRForum.com
Sofware in Review → Tutorials → Video encoding tutorials →

Improving video quality on the Nokia E61 Smartphone

By Nico Salazar

The Nokia E61 was billed by many as the next "Treo killer" smartphone, with an impressive array of email options, multimedia capabilities, a vibrant 3-inch screen, long battery life, comfortable QWERTY keyboard, and above average reception and voice quality. I think it's definitely lived up to the hype, and many reviewers and users agree. Be that as it may, there are some shortcomings that irritate me -- specifically, the E61's relatively poor performance playing video. This article will examine video recording, encoding, and playback options that will help improve a video's quality when viewed on portable devices like the Nokia E61.

Introduction

What has been to date a blessing and a curse for the Nokia E61 is that it runs the Symbian S60 3rd Edition operating system. Although it's an extremely stable OS, and offers multitasking and telephony built in as part of its core functionality, its software selection is still lacking in comparison to Windows Mobile, PalmOS, and to its own predecessor Symbian S60 2nd Edition with which it is not backward binary compatible.

When I bought my E61 I was disappointed with the bundled video player, RealPlayer. Primarily it suffered from an inability to handle substantial motion. Panning or fast movement of objects would result in obtrusive artifacts and dropped frames. I tried the only third party application available at the time, SmartMovie by Lonely Cat Games, and when I discovered that its performance looked even worse, I began to search for another solution. At the time there were some rumors circulating that an application that I had used with my last device -- a Treo 600 -- called The Core Pocket Media Player (TCPMP) was in the process of being ported for the E61. As time went on, the rumors became more substantial, and then the developers of TCPMP launched a commercial Web site that announced the program's new name (CorePlayer) and showed a download button for a Symbian version with a "coming soon" stamp over it.

At this point I put my aspirations of watching video on my E61 on hold and decided I might as well wait for CorePlayer. It has now been many months since the first time I saw that download button, and it still has that "Coming Soon" stamped on it. Despite several posts on the company's forum to the contrary, I suspect we may never see a version of CorePlayer for the E61. Since it's taking so long, this may be an indication that the E61's hardware is not capable of playing full framerate, high quality video.

I decided to stop waiting for CorePlayer and give the bundled version of RealPlayer another shot with some differently-encoded video clips. I have re-encoded some video files every way I could think of to optimize playback. I did this with the understanding that I'd probably never be able to watch high framerate video without visible artifacts, but I decided to see just how good I could get it to look.

Current video playback options for the E61

First, let's take a look at what video playback programs are available.

RealPlayer: This is the solution that comes bundled with the E61, so it wins points for not costing any money. My first impressions were that it had great contrast and picture quality when playing low motion video, but any significant panning or on-screen action caused dropped frames and conspicuous artifacts to appear, such as blocking and jagged lines. RealPlayer also lacks the ability to play video files with any extension other than mp4 and 3gp. Lastly, it doesn't stretch odd-sized videos across the entire screen, so video must be encoded at the native resolution. If it isn't, your video will most likely look like a postage stamp with large black borders around it.

SmartMovie: SmartMovie by Lonely Cat Games is to date the only 3rd party commercial video player for the E61. The major advantage users get by using SmartMovie is the ability to play several different video formats. SmartMovie also comes with a PC application to shrink and optimize video for playback on S60 3rd Edition devices. SmartMovie costs U.S. $27.99 but has a trial version available through the company Web site. My assessment of SmartMovie is that its video quality on the E61 is no better than RealPlayer. Contrast is poor, and picture quality seems softer, overall. Its only notable advantage is the ability to play a few more file formats, and since it costs almost $30, it didn't seem to me to be a worthwhile option.

DivX Player: This software is substantially worse than the two options listed above. While it is free of charge, the playback quality is so poor that I don't think it's worth talking about in detail. As a Symbian user I was pleased to learn that a developer like DivX was willing to write software for our platform, but this application still has a long way to go.

CorePlayer for S60 3rd: it'd be better if it existed

Many Symbian users who have migrated from Palm OS or Windows Mobile may remember using The Core Pocket Media Player (TCPMP) or some variant thereof. TCPMP became famous for excellent video playback even when used with underpowered devices. TCPMP has been renamed CorePlayer, and is now being sold as commercial software, and although since the summer of 2006 there have been rumors of a version for Symbian S60 3rd Edition (which were propogated in part by the developers), there has yet to be any release.

Video on the Nokia E61 smartphone
Video on the E61 doesn't have to suck

By the fall of last year, it seemed like the release was extremely close. On October 17, 2006, CorePlayer developer "Betaboy" wrote this on the company forum: "Guys... it may be a few more days for Symbian as we are working on a few things.... I'll fill you in over the weekend." The post has since been removed by company representatives. As of this writing, the 6-month mark since that post has come and gone with no CorePlayer S60 release. There have been similar teasers on the forum since then, but nothing to back them up.

Browsing the forum, you're likely to come across irate posts by S60 3rd Edition users that feel that they've been strung along. As of the publishing of this article there hasn't been a demo released, and no definitive release date posted. This program, should it ever materialize, could well be the best hope of getting great quality video playback on the E61. I hope the CorePlayer developers get their act together soon and release a version of CorePlayer that will work with my device, but patience has run out, so I decided to give RealPlayer another go to see if I had made my initial conclusions prematurely.

Video testing goals

My initial experiences with RealPlayer made it clear that just about any video file I would want to play would first need to be optimized to run on the E61. The purpose of my testing was to figure out what optimization parameters would yield the best results during playback on my smartphone.

When optimizing video there a several different parameters to set:

  • Dimensions, which are often referred to as resolution in pixels
  • Frames per second (FPS)
  • Bitrate for audio and video encoding
  • Codec
  • Container format
  • Audio sample frequency

In addition to these standard factors, some software may offer the option to use special algorithms to improve video quality.

The only parameter I chose to keep fixed was the picture dimensions. I already knew that RealPlayer was unable to stretch odd-sized videos to fill the entire screen of the E61, so because of this I chose to leave all videos in the E61's native 320x240 resolution.

The E61 can handle memory cards up to 2 gigabytes, which is enough to hold a substantial amount of video at 320x240. Since 2GB cards are readily available through retailers for around $30, my optimizations are geared entirely toward playback quality, not file size. I also wanted to perform my testing with a few different video formats and see if one set of parameters would work the best for everything or whether each type of video would benefit from different parameters.

Test setup

The mobile device I tested was the Nokia E61. All video files were played from the stock 64mb Nokia-branded Mini-SD memory card.

I looked at several pieces of software to optimize the video files. These included just about every converter program I could find through Google that was designed with phones and handhelds in mind. By far the best one was eRightSoft's SUPER. SUPER's user interface is a bit buggy, but its overall stability, wealth of settings, and great output quality made it the best option for my testing. The software is free to download and use.

I used SUPER on a Dell Inspiron 9300 running Windows XP Professional for all of the video optimization. The three different types of video clips used for testing were:

  • Clip #1: a simply-drawn cartoon with a 4:3 aspect ratio -- the same length/height ratio as the E61's screen.
  • Clip #2: a high definition live action video that doesn't contain a lot of fast motion. During optimization I cropped it to 4:3.
  • Clip #3: another high definition live action clip. This one is different in that it has action scenes with fast motion, and it's "letterboxed" to maintain i's original 16:9 aspect ratio.

Test procedure

The basic test procedure I used was to try as many different combinations of parameters as needed to determine how each parameter would affect video playback quality. I then refined the process by making small changes to parameters until I felt the results were as good as I could reasonably get them.

Assessing video quality is a highly subjective practice, but I did my best to keep my testing as standardized as possible so that the results are at least consistent. After each file was encoded, I loaded it onto the E61 and performed back-to-back comparisons of each one. The qualities I was looking for included the following:

  • Contrast
  • Picture sharpness
  • Presence of artifacts, including jagged edges, video noise, blocking, and dropped frames

I chose specific parts of the video clips that were prone to distortion, and graded each part on a scale from 1 to 10 for picture quality and smoothness of motion. In all I tested well over 100 different optimization settings.

Combining containers with codecs

Before I began my testing, I needed to know what combinations of container format and codec were playable. I encoded all possible combinations and attempted to play them on the E61, and recorded the results.

Containers: The only container formats recognized by RealPlayer were 3GP and MP4. The most notable container rejected was AVI. AVI is one of the most popular containers used today, so that's a bit of a disappointment.

Video codecs: RealPlayer was able to play four of the available video codecs: MPEG-4, H.263, DivX, and Xvid. RealPlayer was unable to play the following formats: H.263+, H.264, Motion JPEG, MPEG-1. MPEG-2. MS-MPEG-4v1, and MS-MPEG-4v2. When attempting to play unsupported file types, RealPlayer either gives an error message immediately, or in many cases, plays the audio with no video displayed.

H.263: None of the video optimizing software I considered for this test would encode H.263 in a screen resolution greater than 176x144. Because of the inherently bad quality of a video that small, as well as RealPlayer's difficulties stretching videos with smaller dimensions, I chose not to do further tests with this codec.

MPEG-4: only works in a 3GP container.

Xvid and DivX: both work with the MP4 container.

These results can cause some confusion, especially with the MPEG standards. MP4 is a container; MPEG-4 is a video codec, and at least on the E61, the two are incompatible for some reason.

H.263 is by far the oldest of the codecs available for use on the E61. It was originally designed in the mid 1990s for video conferencing applications. Before I began my testing, I held out a hope that this codec might be better suited to the somewhat limited hardware in the E61. Since it is such an old standard, it was obviously made to run on older, slower hardware, and that suggested that the E61 would have no difficulties displaying it. Unfortunately, RealPlayer's inability to stretch videos with smaller dimensions prevented full screen playback (even in full screen mode). That said, the test videos I made using this codec played very smoothly. If there is a way to encode videos with H.263 and dimensions of 320x200 that RealPlayer can display, this could be a compelling option.

I've made my optimal SUPER settings files for both containers available for download: 3GP and MP4.

Observations during testing

Since it was necessary to have an understanding of how different encoding parameters affected output quality of the video, I began by changing only one setting at a time in SUPER, and then attempting to determine what the effects were.

FPS: Initially I tried to encode video at the same frame rate as my source video -- 25 frames per second. The result was a video that was basically unwatchable. It was very jerky because RealPlayer constantly dropped frames during playback. This was the case with all three codecs tested, and it confirmed what I had already expected -- full frame rate video with RealPlayer was not an option. Next I tried encoding at 12.5 fps (1/2 the original). A certain smoothness that I had previously taken for granted when watching TV and DVDs was lost, but the overall fluidity of motion was still decent. This turned out to be the best compromise, and after getting the other settings sorted out I was able to achieve really good quality with this FPS setting. I also tried doing 6.25 FPS -- 1/4 the original frame rate. The results of this test were as bad as the first. Video appeared very jerky, but this time it wasn't because RealPlayer was dropping frames -- it was because the frames did not exist in the first place.

Video bitrate: During my tests with bitrate I learned that, as a general rule, when bitrate is set too high it causes dropped frames during playback, and when it's set too low it causes blocking artifacts to appear. Finding the optimal compromise between the two was exceptionally difficult. It quickly became clear to me that bitrate was one of the most important factors in perfecting video encoding, but I learned in the next set of tests that this setting is not the only one that affects the final bitrate.

Optimization algorithm: After spending a substantial amount of time working with bitrates, I decided to try experimenting with SUPER's optimization algorithms. There are three possible options: None, High Quality, and Top Quality. Among other possible changes, it seems that these algorithms dynamically vary video bitrate. Using these optimization algorithms produced far better output than any of the bitrate settings I had done on my own. When using Xvid and DivX codecs, I achieved the best results with the High Quality algorithm. When using the MPEG-4 codec, the Top Quality algorithm looked the best.

When using the optimization algorithms, the bitrate setting acts more like a cap than a specific setting. After reaching a certain point, increasing the bitrate setting didn't increase file size or quality. However, the FPS setting has a huge effect on video size when using the optimization algorithms.

Video codec: With Xvid, DivX, and MPEG-4, I was able to achieve great video playback on the E61. MPEG-4 files were a bit smaller than the other two. I felt that Xvid looked slightly better than the others overall, but I was able to produce great video with all three codecs.

Audio Settings: During testing I tried several different audio settings to see if they affected video playback. The result was that regardless of what settings I chose, video playback seemed unaffected. For this reason I opted for good quality audio and used the AAC codec set to stereo, 128kb/sec and 44100kHz samples per second. This setting yields quality as good as or better than the average MP3 audio file. The only reason I would recommend using lower quality settings would be to decrease file size.

Container Video Codec Audio Codec Dimensions Frame Rate V Bitrate Optimization A sample freq A Channels A Bitrate
Mp4 Xvid AAC 320x240 12.5 720 High Quality 44100 2 160
3gp Mpeg-4 AAC 320x240 12.5 720 Top Quality 44100 2 160

I noticed a bit of an anomaly in which the E61 displayed perfectly smooth video in non-full screen mode with a reduced-size video window. This got me thinking that maybe the E61's hardware has more to offer than I was seeing with RealPlayer, because although it should conceivably take less processing power to render a smaller video image, it should also be an additional burden on the hardware to resize the picture. So maybe there are inefficiencies in RealPlayer that can be improved upon. Unfortunately we won't know for sure until a developer steps up and gives us a great video player for Symbian S60 3rd Edition. My hope is that the team at CorePlayer proves me wrong and gives us a great release before my E61 is obsolete.

Additional video tips

For as long as I've had my E61, I have always kept the screen brightness set to maximum. I did this because it made the screen easier to see in a variety of environments. When playing video, though, it was advantageous to adjust the screen to a middle or low brightness level. With screen set lower, black areas of the screen look much clearer and vibrant colors appear to have higher contrast. This is a trick I originally started doing on my laptop computer while watching DVDs. Overall it can really improve your viewing experience.

During my testing I discovered a bug in RealPlayer. If you attempt to immediately put the player into full screen mode by using the shortcut key (the #2 button) after starting a video clip, you'll get a message saying that RealPlayer is unable to play the clip, and the video will grind to a halt, regardless of what clip you're trying to play. If you wait 5 seconds before going into full screen, you shouldn't experience this problem.

Also note that when using SUPER to encode video, you must make sure to check all parameter settings after you change your codec selection, as they will have reset to their default values.

What about file size? In my testing, file size ended up being about 5 megabytes for one minute of video. That will yield about 400 minutes of video for every 2 gigabyte memory card used.

Lessons learned from encoding

RealPlayer and Nokia E61-specific issues aside, I learned a lot about video encoding in general:

  1. Audio settings don't really affect video, so set them how you like them.
  2. Set the video bitrate high and let the appropriate optimization algorithm take care of the actual bitrate.
  3. Never go above 15 FPS; never go below 12.5.
  4. Encode at 1/2, 1/3 or 1/4 of the original frame rate. Using numbers that aren't an integer multiple will take more computer power, and will generally yield worse results.

Conclusions

My initial intention for these tests and this article was to attempt to use all available settings to optimize video on the Nokia E61. As it turned out, using the correct automated algorithm with a large enough bitrate (or bitrate cap, I should say) and setting the correct frame rate were the three keys. Unlike manipulating bitrate only, when using the optimization algorithms I didn't have to compromise between picture quality and smoothness. This was by far the most exciting result of my testing.

I also originally intended to make three distinct sets of optimization parameters for the three types of video I tested. As it turned out I achieved the best results with the same settings, regardless of what kind of video clip I encoded. On the upside, testing did give me insight into what results can be expected from those types of video. If you prefer to watch cartoons -- or any other video files which have original source material with a frame rate of 15 FPS or less -- you'll get nearly perfect results, with motion that appears smooth with little to no dropped frames or artifacts. For live action video with a frame rate of 25-30 FPS it is also necessary to halve the frame rate during encoding to get the best results. Unfortunately that will make the video look mildly jumpy.

The good news is that for all the video files I encoded for the E61, I was able to achieve a sharp picture that had really vibrant color and didn't cause unexpected dropped frames during playback. Although motion quality wasn't always stellar, it was never so bad to distract me from what I was watching.

The bottom line: If you're willing to spend a little time re-encoding video for the E61 with the appropriate settings, you can achieve results that are entirely watchable, and if you can acclimate to the mild jumpiness of 12.5 fps video (as I did), you'll be very satisfied with the results.

As for making a determination as to the E61's ability to play full frame rate video, the jury is still out. Until Nokia's version of RealPlayer is improved, or a third-party developer steps up and gives us a better option, that's a question that remains unanswerable.