kompresja LZO

0

Witam

potrzebuje wykorzystac kompresje/dekompresje LZO w delphi.mam biblioteke
LZO.dll ale nie umie przy dekompresji (od tego zaczalem) okreslic wielkosci zkompresowanych i
zdekompresowanych danych..jak ktos jest w temacie,wie o co chodzi.ogolnie
prosze o jak najprostsze wytlumaczenie jak poslugiwac sie funkcjami z tej
biblioteki

pozdrowienia.

0

Po prostu po kompresji zapisz na początku bufora czy pliku ile jest danych przed i po kompresji ;]

0

no wlasnie chodzi ,ze to jest plik już skompresowany algorytmem lzo.w skrocie opisze co robie:

skladnie funkcji:
function lzo1x_decompress(const Source: Pointer; SourceLength: LongWord; Dest: Pointer; var DestLength: LongWord; WorkMem: Pointer (* NOT USED! *)): Integer;

tworze 2 streamy (typu tmemorysteram) jeden sluzy dla danych skompresowanych,drugi dla zdekompresowanych
zmienna typu integer do przechowania wyniku funkcji

do jednego streamy ladyje plik skompresowany
i teraz jak okreslic jego wielkosc??
jak okreslic wielkosc steramu wyjsciowego??
czy to:

How much can my data expand during compression ?

LZO will expand incompressible data by a little amount.
I still haven't computed the exact values, but I suggest using
these formulas for a worst-case expansion calculation:

Algorithm LZO1, LZO1A, LZO1B, LZO1C, LZO1F, LZO1X, LZO1Y, LZO1Z:

output_block_size = input_block_size + (input_block_size / 16) + 64 + 3

[This is about 106% for a large block size.]

wystarycz??

0

dzieki ,już sobie dalem rade,zle wywolywalem funkcje.... no i mam jeszcze problem z ustaleniem wielkosci pilku wyjsciowego ale to dopracuje,dekompresja dziala.

pozdrowienia

1 użytkowników online, w tym zalogowanych: 0, gości: 1