Страница 2 из 4

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 01:12
vdemidov
Попробуй нагенерить других тайлов, во-первых чернобелых с разным заполнением верхнего левого квадратика 4 на 4, во-вторых таких же, но разных цветов. В первую очередь следует проверить догадку что оно кодируется блоками, а во вторых нужно обратить внимание на четвертую четверку байт в шапке.

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 11:06
zed
Да, так и есть - кодируется 4*4 pix, т.е. имеем таблицу 64*64 элемента по 8 байт.
Тогда в заголовке, вот это:
Код: Выделить всё
FF FF FF FF FF FF FF 7F = 0111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 (64 бита)

говорит о наличии/отсутствии (бит установлен/сброшен) строки или столбца в таблице. Только почему первый бит = 0?

Дальше изменял первый блок последней строки (для удобства, чтоб в редакторе не шарится по телу тайла). Вот скрин + изменения в тайле:

27.12.png

Код: Выделить всё
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 88 D2 1C 04   O‚£1........ˆÒ..
00000010   FF FF FF FF FF FF FF 7F  7F EF 00 00 D8 90 EE FE   ÿÿÿÿÿÿÿï..ؐîþ


27.12_1.png

Код: Выделить всё
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  FF FF 00 00 55 41 41 55   ÿÿÿÿÿÿÿÿÿ..UAAU


Т.е. в элементе можно выделить 2 блока по 4 байта. Первый блок завязан на цвет, второй - флаги пикселей - каждый байт описывает строку из 4-х пикселей, итого по 2 бита на пиксель. В первом примере, первая строка: FE = 11 11 11 10 (где 10 описывает 1-й пиксель в строке - на картинке это зелёный пиксель). Получается, что каждый пиксель может находиться в одном из 4-х состояний, в зависимости от которого и рассчитывается его цвет.

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 15:33
zed
По поводу первого блока есть мысль, что это максимальное и минимальное значения цвета в элементе. Тогда состояние пикселя - отклонение его цвета от максимального/минимального. Что-то вроде:
00 - минимальное
01 - максимальное
10 - сильное минимальное
11 - сильное максимальное
Для расчёта цвета с учётом степени отклонения, видимо, используются 4 байта из заголовка файла (четвёртая четвёрка).

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 16:16
vdemidov
Мда. Нагенери все-таки побольше разных чернобелых хаполнений квадратика. И еще разными цветами заполни весь квадратик 4 на 4.

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 19:11
zed
Составил табличку соответствия цветов:
Код: Выделить всё
цвет    web        ghex
белый   ff ff ff   ff ff
чёрный  00 00 00   00 00

красный ff 00 00   f8 00
синий   00 00 ff   00 1f
зелёный 00 ff 00   07 e0

оттенки ff 00 ff   f8 1f
        00 ff ff   07 ff
        ff ff 00   ff e0

всего получаем 65k цветов.

В принципе, если в блоке не более 2-х цветов, то уже сейчас можно этот блок превратить в картинку, а вот если цветов больше, то хз...
Похоже, это формат с потерями, т.е. после восстановления картинки, исходных цветов мы не получим?

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 19:35
vdemidov
Ты уверен, что в табличке для оттенков правильно порядок байт записал? А то выходит странно. Судя по табличке отдельных цветов там на синий и красный идет по 5 бит, а на зеленый 6 бит.

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 19:37
zed
Кажись не перепутал. См. пример 9, все оттенки с него взяты.

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 19:43
vdemidov
Тогда странно. Просто не аддитивно выходит. А должно бы. судя по белому и черному цветам.

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 19:47
vdemidov
Таки ты перепутал. Для чистых цветов порядок байт поменял, а для смешанных забыл.

Re: Формат снимков в кэше GE 5.1.3533.1731

СообщениеДобавлено: 27 дек 2009, 19:54
zed
vdemidov писал(а):Таки ты перепутал. Для чистых цветов порядок байт поменял, а для смешанных забыл.

Исправил.