Warsztat.GDCompo!ProjektyMediaArtykułyQ&AForumOferty pracyPobieranie

Opisz napotkaną sytuację, a redakcja niezwłocznie znajdzie rozwiązanie!

wyślij anuluj

Macierzowa kompresja grafiki

Działanie algorytmu:

1. Wczytanie obrazu.

2. Podział obrazu na małe bloki, które będą osobno kompresowane (można ustawić dowolny rozmiar).

3. Podział bloku na kanały RGB, które będą osobno kompresowane.

4. Faktoryzacja macierzy NxN (bloku) na dwa wektory o długości N (pionowy i poziomy).

5. Stworzenie nowej macierzy na podstawie operacji miedzy dwoma wektorami (można ustawić dowolne działanie, np. dodawanie, mnożenie).

6. Porównanie bloku oryginalnego z nowo powstałą macierzą (można wybrać dowolną funkcję do porównania pikseli, tzw. metryka, np. kwadratowa, logarytmiczna, liniowa).

7. Poprawa wartości wektorów otrzymanych w wyniku faktoryzacji.

8. Powtórzenie etapów związanych faktoryzacją i porównywaniem.

9. Zwrócenie skompresowanego pliku.

 

Co jest i jest fajne

Można wpływać na następujące elementy kompresji:

- rozmiar bloku,

- ilość bitów używanych na zakodowanie liczby w wektorze,

- metody kombinacji macierzy,

- metody porównującej bloki,

- stopień dokładności wyliczanych danych (ilość iteracji poprawiających dane).

 

Czego nie ma i nie będzie

Program tylko symuluje działanie algorytmu. Innymi słowy skompresowane dane nie są nigdzie zapisywane i nie można ich użyć do odtworzenia obrazka. Dodanie tej funkcjonalności nie jest sporym problemem, nie taki był jednak cel mojej pracy.

 

Co mogłoby się pojawić, ale się nie pojawi

Niezależne ustawienia dotyczące kompresowania poszczególnych kanałów. Kompresowanie kanałów HSV, które dają się lepiej kompresować niż RGB.

Kategoria:
Program naukowy/inżynierski

Dodano:
2014-11-02 19:08:50

Ostatnia aktualizacja:
2014-11-09 09:18:16

Punkty:
634

Adres:
goo.gl/4mvcUO

Autor projektu:
deshan

Tagi:

Język/Angielski Platformy/Windows

  • Napisz komentarz:
    Aby dodać swój komentarz, musisz się zalogować.

Warsztat używa plików cookies. | Copyright © 2006-2017 Warsztat · Kontakt · Regulamin i polityka prywatności
build #ff080b4740 (Tue Mar 25 11:39:28 CET 2014)