Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %% RLE kodu užkoduotos Delta vertės
- clear all
- clc
- load('Temperature.mat');
- %Delta užkodavimas
- deltaTemp(1) = Temperature(1);
- for i = 2:length(Temperature)
- deltaTemp(i) = Temperature(i) - Temperature(i-1);
- end
- %RLE kodavimas
- j = 1;
- i = 1;
- while i <= length(deltaTemp)
- val = deltaTemp(i);
- rleEncodedTemp(j) = val;
- repeat = 1;
- while i < length(deltaTemp) && val == deltaTemp(i + 1)
- repeat = repeat + 1;
- i = i + 1;
- end
- %Kitu elementu masyve įrašomas pasikartojimų skaičius
- j = j + 1;
- rleEncodedTemp(j) = repeat;
- j = j + 1;
- i = i + 1;
- end
- %Užkoduotos Delta sekos dydis bitais
- firstValueSize = length(dec2bin(deltaTemp(1)));
- differenceValuesSize = length(dec2bin(max(deltaTemp(2:end)) - min(deltaTemp(2:end))));
- deltaEncodedSize = differenceValuesSize * (length(Temperature) - 1) + firstValueSize;
- %RLE - delta kodo dydis bitais
- rleFirstValSize = length(dec2bin(rleEncodedTemp(1)))
- maxEncodedValue = max(rleEncodedTemp(3:2:end));
- minEncodedValue = min(rleEncodedTemp(3:2:end));
- if minEncodedValue < 0
- encodedValueLength = length(dec2bin(maxEncodedValue - minEncodedValue));
- else
- encodedValueLength = length(dec2bin(maxEncodedValue));
- end
- maxEncodedRepetition = max(rleEncodedTemp(2:2:end));
- repetitionLength = length(dec2bin(maxEncodedRepetition));
- %Užkoduotos RLE koduote sekos dydis bitais
- sizeEncodedRle = ((encodedValueLength + repetitionLength) * (length(rleEncodedTemp) / 2)) + rleFirstValSize;
- %Duomenų dydžio sumažėjimas
- deltaEncodedSize
- sizeEncodedRle
- compression = sizeEncodedRle / deltaEncodedSize
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement