:: Research Group Embedded Interaction :: Media Informatics :: Ludwig-Maximilians-University Munich


Camera speed evaluation of the Nokia 6600

The goal of this project was to evaluate the integrated camera of a mobile phone, particularly the camera of the Nokia 6600. Therefore we implemented a simulation program to allow an evaluation of the factor speed. In this program the numbers of images are counted which have been taken on a given time. In our implementation we evaluated simulations with durations between one and ten seconds. After the end of the given time the results were displayed. Apart from the time we evaluated also the influence of different kinds of encoding formats and resolutions. So we run simulations for the encoding format PNG, BMP, GIF and JPEG and resolutions of the size 80x60, 160x120 and 200x150 pixels.

Used Software

  • J2ME (MIDP 2.0, CLDC 1.0)
  • Mobile Media API (MMAPI)

Used Hardware

  • Nokia 6600 (Software version 4.09.1)

Source Code

All source codes can be found at Simulation.zip.

Needed steps for taking pictures

The Mobile Media API provides support for capturing audio or video from the onboard hardware (microphone or camera) with the “capture” locator syntax. Capture can be used, for instance, to display input from the camera on the screen. You getting the video capture and the VideoController to get access to the video data.

Create a Player

First you have to create a player object. The player gets input from the onboard camera.

	Player player;
	...
	player=Manager.createPlayer(“capture://video”);
	player.realize();

Get control of the camera

The next step is to get the control of the player and append the videoControl to the display of the mobile phone. Afterwards the player can be started.

	VideoControl videoControl;
	...
	videoControl=(VideoControl)player.getControl(“VideoControl”);
	...
	append((Item)(videoControl.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE,null)));
	...
	player.start();

Taking Photos

VideoControl has a method, getSnapshot, that allows you to get a snapshot of the video is displaying. This is particularly useful when it is displaying live video from the phone’s camera, as it allows you to take a photo.

	byte[]pngImageData=videoControl.getSnapshot(null);

All devices that support video playing will also support the ability to get snapshots in PNG format. You can also specify other formats if the device supports them, and give a width and height:

	byte[]jpegImageData=videoControl.getSnapshot(“encoding=jpeg&width=120&height=90”);

Results of the simulations

The following tables show the results of the different simulations and shows some example pictures.

Format of the image: PNG

Example picture:
Result of the test running for PNG images:
Resolution
Time in seconds
Memory Size in KB
Number of pictures
80x60
1s
12, 7KB
1
3s
4
5s
8
7s
11
10s
15
160x120
1s
42, 0 KB
1
3s
3
5s
5
7s
7
10s
10
200x150
1s
67,4 KB
1
3s
2
5s
3
7s
5
10s
7

Format of the image: BMP

Exapmle picture: Result of the test running: for BMP images
Resolution
Time in seconds
Memory size in KB
Number of pictures
80x60
1s
5,8 KB
1
3s
5
5s
8
7s
12
10s
17
160x120
1s
20,2 KB
1
3s
3
5s
6
7s
9
10s
12
200x150
1s
31,0 KB
1
3s
2
5s
4
7s
6
10s
8

Format of the image: GIF

Example picture: Result of the test running
Resolution
Time in seconds
Memory size in KB
Number of pictures
80x60
1s
2,3 KB
1
3s
5
5s
8
7s
12
10s
17
160x120
1s
4,8 KB
1
3s
3
5s
6
7s
9
10s
12
200x150
1s
7,1 KB
1
3s
2
5s
4
7s
6
10s
8

Format of the image: JPEG

Example picture: Result of the test running
Resolution
Time in seconds
Memory size in KB
Number of pictures
80x60
1s
1,1 KB
1
3s
5
5s
8
7s
12
10s
18
160x120
1s
2,9 KB
1
3s
3
5s
6
7s
9
10s
12
200x150
1s
3,0 KB
1
3s
2
5s
4
7s
6
10s
9

Intermediate Conclusion:

At this state of the evaluation we achieved the knowledge that the format BMP provides the best performance in speed. Because of the compression process the formats JPEG, GIF and PNG are slower. But the picture quality of the encoding format BMP is surprisingly the worst. One explanation is the relative small memory size compared to a picture in the PNG format. We assume that the Nokia 6600 camera supports the encoding format PNG best. Pictures in this encoding format need the highest memory size and therefore such a high quality of the images is possible. This high memory size could also be an explanation why the speed performance of taking images in the format PNG is the worst.

The JPEG format provides the best results regarding the speed performance and the quality of the pictures.

Moreover as smaller the resolution was as faster runs the system and more pictures could be taken. Therefore we conclude that the performance depends on the resolution and the encoding format. In the following we tried to improve the results of changing some parts of the program to achieve a higher efficiency.

1. Change of storage

We tried to store the byte[] of the images as elements of a vector, a hashtable and an array. By changing the kind of storage the success was marginal. The performance of the Nokia 6600 was almost the same.

2. Change of the method parameter

In the other simulations we always specified the resolution explicitly as a parameter of the method "getSnapshot". In the following example we only specified the encoding format BMP with no specification of the resolution. The default resolution is 160x120 pixels. The result was amazing. The improvement of the performance was extraordinary high. The quality of the image was the same as before.

Best run for the format BMP and default resolution 160x120 pixel

Resolution
Time in seconds
Number of pictures
160x120
1s
1
3s
11
5s
18
7s
27
10s
40

Conclusion:

The results of the simulation recommend the usage of the encoding format BMP and their default resolution of 160x120 pixels, if the target is to achieve the highest number of pictures in a small time. This simulation reached the best performance in speed. But the quality of the images is worse. If the taken pictures should provide a high quality the usage of the encoding format PNG is recommended. But their speed performance is extremely worse.

If both are important a good quality of the taken pictures and a good speed performance the usage of JPEG seems to be the best.

The evaluation has shown that the speed factor depends on the resolution and the format of the picture. The performance is getting lower on high resolutions. Moreover the performance depends on the type of encoding. GIF, JPEG, and PNG images are compressed types of pictures. The process of compression is a reason for the lower performance. The kind of storage does not have any special influence on the performance factor.

References



If you have any comments or questions, please feel free to ask us!