wtorek, 23 stycznia 2018

Kompresja danych

1.Kompresja to taki proces zmniejszania objętości danych,który umożliwia odtworzenie pierwotnych danych. Proces odtwarzania pierwotnych danych nazywamy dekompresją.

2.Współczynnik kompresji obliczamy, dzieląc objętość danych skompresowanych przez objętość danych nieskompresowanych.

Rc= Vk/ Vnk * 100%

lub

Rc'= (1-Vk/Vnk) * 100%

Z współczynnikiem kompresji wiąże się pojęcie bitrate. Stosuje się je w przypadku strumienia danych, a więc ciągu danych przesłanych w czasie rzeczywistym np. 128 kb/s oznacza,że dane zostały zmniejszone tak, by jedna sekunda filmu lub dźwięku zajmowała nie więcej niż 128 kilobitów. 

3. Rodzaje kompresji:

  • Kompresja bezstratna (ang. lossless compression)
W przypadku kompresji bezstratnej dane odtworzone są identyczne (bit po bicie) z danymi pierwotnymi.

Zastosowanie:
- teksty
- programy komputerowe
- bazy danych
- pliki z innych danych (pliki arkusza kalkulacyjnego,pliki konfiguracyjne,dane przesyłane w sieciach komputerowych itp.)
  • Kompresja stratna (ang. lossy compression) 
W przypadku kompresji stratnej dane odtworzone są podobne do danych pierwotnych i na ogół się różnią od nich w sposób trudny do wychwycenia.

Zastosowanie:
dźwięki (kompresja GSM wykorzystywana w telefonii komórkowej)
- muzyka (format MP3)
- obrazy (format JPEG)
- filmy (format MPEG)

4.Programy do kompresji danych:
  • 7-Zip
  • WinRAR
  • IZArc
  • Zipware
  • PeaZip
  • Ashampoo ZIP 2017
  • Free RAR Extract Frog
  • Hamster Free Zip Archiver
  • Bandizip
  • HaoZip
  • B1 Free Archiver


wtorek, 2 stycznia 2018

Skończoność algorytmów

1. Jednym z warunków poprawności algorytmu jest jego skończoność.

2. Algorytm,który nie jest skończony, nie może zostać uznany za poprawny, bowiem nigdy nie spowoduje wyznaczenia poprawnego wyniku. Powodem nieskończoności działania algorytmu może być np.błędnie określony warunek zakończenia iteracji.

3.Algorytm powinien być skończony dla wszystkich danych wejściowych, to znaczy,że żadna ich kombinacja, dopuszczona przez specyfikacje problemu, nie powinna powodować sytuacji, w której algorytm się nie kończy.

Poprawność algorytmów

1.Algorytm jest poprawny, jeżeli dla poprawnych danych daje poprawne wyniki ( dla dowolnej kombinacji danych wejściowych spełniających warunki początkowe algorytm wyprowadzi wyniki spełniające warunki końcowe).
Algorytm jest poprawny, jeżeli rozwiązuje problem zgodnie z specyfikacją problemu (zadania).

2.Algorytm jest całkowicie poprawny, jeśli dla wszystkich danych wejściowych spełniających warunki początkowe wyprowadzi wyniki spełniające warunki końcowe i obliczenia zostaną zakończone.

3.Algorytm jest częściowo poprawny, jeśli dla obliczeń,które się skończą,ich wyniki są poprawne względem warunków początkowych i końcowych. ( nie jest konieczne wykazanie,że obliczenia kończą się dla wszystkich poprawnych danych).

4.Algorytm uniwersalny, to algorytm, który umożliwia rozwiązanie dowolnego zadania z pewnej klasy zadań. Przykładem może być algorytm sortowania,który umożliwia uporządkowanie dowolnego ciągu danych.

Ponadto poprawny algorytm powinien być dobrze określony i uniwersalny (występują polecenia i operacje zrozumiałe dla użytkowania).

5.Błędy:
  • logiczne ( błędne użycie instrukcji programu) - powoduje,że nie dla wszystkich poprawnych danych program generuje poprawne wyniki, w celu wykrycia tych błędów programy poddaje się testowaniu, polegającemu na sprawdzaniu, czy dla określonych danych program generuje określone wyniki.
  • kompilacji (składowe)