OTA bitmap


OTA Bitmap was a specification designed by Nokia for black and white images for mobile phones.

Introduction

The OTA or Over The Air Bitmap was defined by Nokia Corporation as part of their Smart Messaging Specification, to send pictures as a series of one or more concatenated SMS text messages. The format has a maximum size of 255x255 pixels. It is very rare for an OTA bitmap to measure anything other than 72x28 pixels or 72x14/72x13 pixels. The specification contains a byte of data to be used for indicating a multicolour image. This was to future-proof the standard, but the advent of Multimedia Messaging meant it never got to implementation.

Basic format description

The OTA Bitmap format is a monochrome, uncompressed format using one bit per pixel. As the format was designed for cellular phones, there is no standard computer format. It may be stored as a binary file or as hex in a text file. Recognized extension is .otb.

Format copyright

This format is the Copyright of Nokia Corporation.

The data header

Before the image itself there is a header. The header is four bytes wide. A typical example is:
00 48 1C 01. These are:
00 The 'Infofield'.
48 The width of the bitmap, 72 pixels in this case.
1C The height of the bitmap, 28 pixels in this case.
01 The number of colours.
Other possibilities may be: 00 48 0E 01, 00 48 0D 01.

Encoding the pixels

After the header the image itself starts.
This example will use the following 72x28 pixel image.
The first 8 pixels, reading right from the top left hand corner are one white followed by seven blacks, giving the first byte, in Binary, as 01111111.
Converting from the binary 01111111 to hex, results in the first byte that represents the pixels. The next 8 characters are 8 blacks and so on.
When all pixels from the top row are encoded, simply move to the next. There are no markers to indicate a new row, that information is contained in the header.
In the case of an OTA bitmap that is not a multiple of eight pixels in width, a single byte is used to convey information from two lines This is not the case in some other formats, so it is important to exercise care when converting between OTA and formats like WBMP.

Putting it together

Here is the result of the image converted to OTA.
00 48 1C 01 //Header
7F FF EF FF EF FF FB FF FE //First Row
40 3F E8 38 2F FF FB FF FE //Second Row
48 3F A8 38 2F 9F FB FF FE //Third Row
4C FF A9 FF 2F 8F FA DA DA //Fourth Row
4E FF 29 01 2F 80 FA 52 52
5E 7F 69 31 2F BF 7B 07 06
4F FF 69 79 2F BE FB 77 76
47 FF 69 79 2F BE 7B 07 06
47 FE EF 7D EF BE 7B FF FE
47 FC EF 7D E7 BC F1 FF FC
40 F0 EF 7D E7 7C F1 ED BC
21 E7 C9 79 27 98 F1 E5 3C
21 E7 C9 39 27 C8 F1 F0 7C
16 6F 89 39 23 E6 E0 F7 78
15 2F 88 82 23 F3 E0 F0 78
08 3F 04 44 43 D7 E0 FF F8
04 3E 02 28 81 EF C0 7F F0
02 3C 01 39 00 FF 80 3F E0
01 38 00 BA 00 7F 00 1F C0
00 F0 00 7C 00 3E 00 0F 80
FF C0 00 38 00 1C 00 07 FF
55 FF FF FF FF FF FF FF AA
2A F3 87 87 3F 1E 67 0F 54
15 F3 93 9F 3E 4E 27 27 A8
2A F3 87 8F 3E 4E 07 27 54
55 F3 93 9F 3E 0E 47 27 AA
FF F3 9B 87 0E 4E 67 0F FF //Penultimate Row
00 FF FF FF FF FF FF FF 00 //Last Row

Support in applications

Read/write support

Note to review: there is no write support for OTA format in XnView