Page 1 of 1

Конвертор RLE-bitmap в BMP

Posted: 06 Apr 2016 21:51
by hardlock
Приветствую читателей и писателеф моего форума. Вот и мне пришла пора обратиться к Вам за помощью.

Предыстория.
Ковыряю я тут потихоньку дампы камер заднего вида на предмет замены в них картинок и уже кой чего достиг. На данном этапе имею вот такой "альфа-софт":
DumpEdit.png
DumpEdit2.png
Пока он умеет разбирать дамп на составные части, экспортировать каждую запись в отдельности, импортировать то, что экспортировал, удалять, вставлять и т.д. Умеет из записи выделить bitmap в формате RLE (о нём чуть ниже) отделив заголовок. Потом этот RLE файл конвертируется фирменной утилитой makeover.exe из состава родного SDK на камеру и на выходе получаем обычную картинку в BMP формате. А ещё мой софт уже умеет запихивать RLE-битмапы в дамп и собирать это всё в готовый к прошивке бинарник...

История.
К сожалению, родная утилита не хочет распознавать некоторые RLE битмапы и соответственно получить из них картинку я не могу. Но в камере то они отображаются, значит не корявые! Поэтому есть идея написать свой конвертор. Для этого у меня есть описание RLE формата - в аппноуте AND9333.PDF страница 35. Заголовок, который из Таблицы 45 в файл не входит. Всё содержимое файла описано в Таблице 46. Также выкладываю родную утилиту с примерами конвертируемых и НЕконвертируемых файлов. (во вложениях) В архиве есть файлик do_it.cmd. Если его запустить, то все не все RLE-шки конвертнуться в BMP-шки, а потом назад. Новые RLE файлы будут с постфиксом _new. Как видно исходные и конечные RLE файлы тоже не равны и это минус ФИРМЕННОЙ утилиты... или кривизны формата BMP - не знаю, но для меня главное получить BMP из RLE, с остальным утилита справляется настолько, насколько это нужно для внедрения своей картинки в дамп.

Просьба
Image
Если у кого-нибудь есть опыт работы с подобными форматами и он может уделить немного времени на решение этой задачи, прошу написать конвертор. Желательно с исходным кодом, т.к. потом планирую встроить в свой софт (копирайт естестенно сохраню Ваш) и для понимания процесса.
Единственное, что прошу не делать, это закидывать ссылками на описание и реализацию RLE кодеров, т.к. эти все темы и на хабре в том числе я уже прочитал и выкурил настолько, насколько позволило моё время.... Мне надо реализовать конкретный декодер для конкретных примеров. Если кто возьмётся за реализацию, я с удовольствием предоставлю кучу примеров кодируемых и некодируемых файлов родной утилитой.

ПыСы: как только DumpEdit научится ковырять дампы без глюков и станет хотя бы "бэтой" он обязательно будет в общем доступе.

upd1:
описание RLE-файлов в архиве
95750-2w110_00000F92_(0x91).rle
95750-3x016_00001DC0_(0xFE).rle - некодируемый, похож на 95760-2w150_00001016_(0xFE) - разметка на каком-то фоне ))).
95760-2w150_00001016_(0xFE).rle
95760-2w150_00001F04_(0x91).rle - некодируемый, похож на 95750-2w110_00000F92_(0x91) - красный треугольник с белыйм восклицательным знаком.

Re: Конвертор RLE-bitmap в BMP

Posted: 16 Apr 2016 23:48
by zalk
Походу там не простой RLE, алгоритмы с тырнета не работают.
Да и файл сам по себе странный, по алгоритму внутри сразу должна идти куча всего, а там пустота... Заголовок там что ли какой-то...
Надо думать еще.

Надо будет с makeover.exe поэкспериментировать, поскармливать ему файлы и посравнивать результаты с другими алгоритмами.

Re: Конвертор RLE-bitmap в BMP

Posted: 17 Apr 2016 13:05
by hardlock
zalk, ты даже вспомнил свой пароль :shock:

По сабжу.
Формат RLE-файла (из даташита):
Bitmap_format.png
Рассмотрим конвертируемый файл минимального размера 95750-2w110_00000F92_(0x91).rle
95750-2w110_00000F92_(0x91)_screen.png
В WinHEX это выглядит так:
95750-2w110_00000F92_(0x91)_winHex_screen.png
красным обведён заголовок файла, который разобран на предыдущей картинке, желтым - восемь полей COLORxLUT, зелёным - три поля RLE_LUTx

Из заголовка нас интересует только размер данных (Size 0x006E) вместе с тремя полями RLE_LUT, и размер картинки (LengthX: 0x0018, LengthY: 0x0020). Далее, при формировании картинки, нам надо будут цвета COLORxLUT и RLE_LUTx - формат описан на странице 7 того же даташита.
RLE_LUT_format.png

Re: Конвертор RLE-bitmap в BMP

Posted: 14 Oct 2016 01:46
by kamandors
надо еще помощь в конверторе ?

программирую на досуге, могу помочь

Re: Конвертор RLE-bitmap в BMP

Posted: 14 Oct 2016 11:37
by hardlock
kamandors, да, т.к. пару человек, которые брались за эту задачу решить не смогли. Я попробую взять наработки и выложить их тут.

Кстати, до программирования не дошло, не смогли раскопать алгоритм, по которому кодируется RLE. Пробовали кодировать простые мелкие битмапы чтобы понять принцип - ничего не вышло (((

Re: Конвертор RLE-bitmap в BMP

Posted: 19 Jul 2018 06:40
by kamandors
надо еще помощь в конверторе ?

Re: Конвертор RLE-bitmap в BMP

Posted: 19 Jul 2018 09:05
by hardlock
kamandors, да, до сих пор вопрос не решён.

Re: Конвертор RLE-bitmap в BMP

Posted: 15 Aug 2018 15:42
by kamandors
а есть большие rle файлы ?
я вижу только 2 шт по 1кб
размер максимум для иконки

эти rle должны нести в себе фото ?

Re: Конвертор RLE-bitmap в BMP

Posted: 15 Aug 2018 16:11
by hardlock
Вечером выложу всё, что есть. Там не фото, а картинки с разметкой и надписями. Некоторые можно конвертировать "родным конвертором", некоторые нет - всё выложу.