Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Embedded ZIP?
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=13423
Страница 1 от 2

Автор:  Цецо [ Съб Дек 13, 2014 11:00 am ]
Заглавие:  Embedded ZIP?

Някаква прилична ембедед имплементация на zip/unzip да сте срещали? Трябва ми нещо дето да се търкаля на система с 128К рам, файловете са върху флешкарта. Задължително е да е тично по стандард, че файловете идват от горе пакетирани. В смисъл трябва ми да разкомпресира стандартен ZIP файл направен на компютър. И обратното.

Автор:  miro_atc [ Съб Дек 13, 2014 12:19 pm ]
Заглавие:  Re: Embedded ZIP?

ха честито!

Като (ако) подкараш стандартна компресия, сподели с нас простосмъртните :D

Автор:  Цецо [ Съб Дек 13, 2014 12:33 pm ]
Заглавие:  Re: Embedded ZIP?

Що? Къде е уловката? В крайна сметка всяка линукс дистрибуция го прави това, нали така?

Автор:  miro_atc [ Съб Дек 13, 2014 1:01 pm ]
Заглавие:  Re: Embedded ZIP?

с 128K RAM и още толкова код нямаш проблем, но предполагам нямаш това предвид...

Стандартния zip поддържа много и различни алгоритми, трудно е да ги поддържаш всички опции. Да не говорим че някои са и патентни.
Ако ти ще компресираш, е ОК, правиш най-лесния за теб алгоритъм, всички те разбират... Тук няма уловка. Може да се справиш в рамките на 10-на К код/рам..
Ако ще трябва да разкомпресираш творенията на разни измислени програмисти, просто забрави... Аз последно правих прост битмап, без компресия. Викам си няма начин нещо да се обърка, толкова е просто... една структура 5 полета трябва да са попълнени само. Да де, ама се оказа че от Windows 7 нагоре paint-овете не попълват правилно някои полета..

Тъй де, аз на няколко пъти съм правил компресии преди време, но все елементарни. Колкото пъти съм се гледал за нещо по-стандартно толкова пъти съм удрял на камък.

Автор:  Цецо [ Съб Дек 13, 2014 1:34 pm ]
Заглавие:  Re: Embedded ZIP?

Мдам... Това май верно може да се окаже проблем.

Автор:  palavrov [ Съб Дек 13, 2014 3:30 pm ]
Заглавие:  Re: Embedded ZIP?

Кода за разкомпресиране на ZIP не е кой знае колко сложен ... примери има колкото искаш. Единствения препъни камък може да е буфера който се ползва за декомпресия - ако не бъркам май е 64кб ... в първите версии на PKZIP преди 20+ години беше май 4к ... ама после процесорите станаха достатъчно бързи за да поддържат sliding window от мегабайти с цел да се повиши компресията. Това е ако решиш да използваш стандартни библиотеки, ако решиш да си направиш собствена (мисля, че някъде около седмица копане ще стигне) може да се използва буфера за декомпресирания файл вместо този 64к допълнителен буфер - т.е. ти така или иначе най вероятно ще искаш цялото съдържание на декомпресирания файл в паметта - ако е така трябва да си предвидил достатъчно памет.

Автор:  Цецо [ Съб Дек 13, 2014 4:44 pm ]
Заглавие:  Re: Embedded ZIP?

Ми не, не го ща в паметта файла. Реално декомпресирания фаил е мегабайти, а аз има 128К всичко на всичко РАМ. Трябва да се декомпресира директно върху картата. Но 64К буфер мога да преглътна.

Автор:  miro_atc [ Съб Дек 13, 2014 4:51 pm ]
Заглавие:  Re: Embedded ZIP?

Цецо, паметта е за речниците... не просто за буфер на стрийма ;-)

Ако речникът не е в RAM ще се забави много...

Автор:  Цецо [ Съб Дек 13, 2014 4:57 pm ]
Заглавие:  Re: Embedded ZIP?

Ми хубаво, речници да са, толкова ли са големи, че да не влизат в 64К? Признавам, че нямам идея как работи точно, не ми е останало време да се ровя засега в теорията.

Автор:  DanielDimov [ Съб Дек 13, 2014 5:11 pm ]
Заглавие:  Re: Embedded ZIP?

речника във временен файл на работната карта и ще стане с малко RAM, но по-бавно... важното е че ще стане!

Автор:  miro_atc [ Съб Дек 13, 2014 5:26 pm ]
Заглавие:  Re: Embedded ZIP?

Ами май най-малкия речник беше 64к при zip-a.

Общо взето идеята му е проста - от файла четеш данни или инструкции как да си извадиш цитат от речника. Като след всяка операция речника се ъпдейтва.
Речникът в началото е празен, постепенно се пълни...

Примерно трябва да компресираш файл, който съдържа "ЦецоЦецо". Компресиран ще изглежда:
* данни = "Цецо"
* повтори от речника последните 4 байта.

Номерът е, че за да компресираш добре трябва да може да търсиш повторения в голям диапазон... Тоя, който компресира избира размера.. може и да ти шляпне мегайбайти ако реши.

Така че вариант речник във флаш не е лош да го имаш. Вероятно ще те забави в пъти, ама... няма пълно щастие!

Автор:  syscop [ Съб Дек 13, 2014 5:27 pm ]
Заглавие:  Re: Embedded ZIP?

http://www.info-zip.org :)

Автор:  palavrov [ Съб Дек 13, 2014 5:59 pm ]
Заглавие:  Re: Embedded ZIP?

По скоро те това:
https://code.google.com/p/miniz/

Автор:  Цецо [ Съб Дек 13, 2014 6:19 pm ]
Заглавие:  Re: Embedded ZIP?

Добре бе, той зипа е от зората на демокрацията, търкаляше се под ДОС даже и на дискети. Колко пък ресурс да иска толкова?

Автор:  miro_atc [ Съб Дек 13, 2014 6:36 pm ]
Заглавие:  Re: Embedded ZIP?

А ти файлове от зората на демокрацията ли ще декомпресираш? :-)

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/