feya писал(а):интересно с первого взгляда не похож ни на один распространенный формат.
Наверняка ещё один формат собственной разработки.
feya писал(а):Оптимальность поражает - 32 кб из которых 16 забита nul'ами)
Нули, это записи о чёрных пикселах: первый тайл в GE имеет снимок только посередине (128*256 pix), а сверху и снизу (по 64*256 pix) - чёрное поле.
Предварительно:Файл состоит из 2-х частей: заголовок и хэш-таблица.
Заголовок:
- Код: Выделить всё
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F
00000000 4F 82 A3 31 00 01 00 00 00 01 00 00 00 00 00 00 O‚£1............
00000010 FF FF FF FF FF FF FF 7F ÿÿÿÿÿÿÿ
где,
Magic: 4F 82 A3 31
X: 00 01 00 00 (256) - размер тайла (хэш таблицы?) по X
Y: 00 01 00 00 (256) - размер тайла (хэш таблицы?) по Y
???: 00 00 00 00 - разделитель?
Mask: FF FF FF FF FF FF FF 7F
Хэш-таблица - всё остальное, размерность 128*128 элементов (или 256*256, если размер элемента 2 бита). Для получения цвета пиксела, берётся соответствующий элемент из таблицы и прогоняется алгоритмом по маске.
Для начала, наверное, нужно определиться с размерностью таблицы, ну, и потом уже выйти на алгоритм. Надо пробовать скармливать GE тайлы с разноцветным пикселом, а остальное пространсво заполнять чёрным цветом и анализировать... Может, в хэш таблице описаны не все пикселы тайла, а только "узловые", а остальное дорисовывается соответствующим алгоритмом, может ещё что, нужно смотреть.
Может они расчитывают выиграть засчет скорости доступа или еще чем-то таким?
Оптимизация за счёт отказа от JPG -> Bitmap преобразования, у них уже лежит сразу готовый битмап, который можно без лишних задержек сразу передавать в алго, натягивающий битмап на глобус.