Скачать MetaTrader 5

Алгоритмы сжатия LZW / Хаффман / Deflate

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Есть возможность протестировать программу перед покупкой. Узнай как!
o_o
Модератор
23694
o_o 2011.04.08 23:02 

Други, есть ли уже у кого реализация на MQL4 / 5.    (или же подробно комментированный на C++)

Мой по LZW сжимает только на 25%. А Хаффмана на больших файлах почему-то барахлит, файл получается больше чем исходный. :(

Интернет хорошо прорыскал. Нашел древние варианты (паскаль и с), но писаны коряво и без коментов (к тому же проверить нет чем).

Спасибо.

Nikolay Demko
12464
Nikolay Demko 2011.04.09 19:13  

Это читал? по моему вполне вразумительно и на С#      

http://algolist.manual.ru/compress/standard/lzw.php

����� LZW-������ ������
  • algolist.manual.ru
Mark R. Nelson �������: ���������� �.�. ���������� �������� Lempel/Ziv ������ � ������ ������ ��� ������� ����������� � 1977�., � ������������������� (Terry Welch) ������� ��� ����������� � 1984�. �������� �� ��������� �����. ���� � ���� ������, �� LZW-������ �������� ������ �������� ���������� ������. ��� �������� ��� ������-���� �������...
o_o
Модератор
23694
o_o 2011.04.09 20:21  
Urain:

Это читал? по моему вполне вразумительно и на С#      

http://algolist.manual.ru/compress/standard/lzw.php


c LZW вопросов нет. он понятен и реализация проста.  Из-за того, что адресация словаря (слов в словаре) ограничено 1 байтом - то сжатие всего 25-30%

если делать адрес на 2 байта, то уже не рационально. Оптимально было бы 12 бит, но мороки много с переводом в байты.

сейчас пыхчу над Хаффманом, код сделал, дерево строит (визуализацию дерева проверил), но вот почему то на больших файлах (более 100кб) путь в дереве к конкретному символу занимает больше 8 бит (то есть родных для символа 1 байта). Нерационально получается.

Думал, что может кто реализовал. Кстати, Хаффман работает быстрее LZW раза в два минимум. если бы еще так сжимал :)

IgorM М
4801
IgorM М 2011.09.09 22:09  

хотелось бы узнать на какой стадии у топикстартера реализация  под mql5 алгоритма  Хаффмана?

я пока портирую на mql5 этот http://studup.com.ua/blog/2011/03/19/11.html , код рабочий, да и Делфи мне попривычнее 

o_o
Модератор
23694
o_o 2011.09.11 01:19  

это класс с алгоритмами Хаффмана.

сначала сделал сжатие, но из-за того, что кодируется байтами, результирующее дерево получается большим. То есть в результате кодирования файл занимает больше места чем оригинал.

поэтому обратное декодирование уже не стал дописывать, так как не увидел смысла.

если у вас получится сжимать по коду из Дельфи более компактно, то скиньте пожалста.

Файлы:
IgorM М
4801
IgorM М 2011.09.12 17:22  

пока с лету не получилось код из Делфи на mql5 переписать

за код спс, посмотрю 

Anatoli Kazharski
56929
Anatoli Kazharski 2015.07.19 10:30  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий