WYŻSZA SZKOŁA ZARZĄDZANIA
W CZĘSTOCHOWIE
ZARZĄDZANIE i INŻYNIERIA PRODUKCJI
Kierunek: Inżynier - Praktyczny Zawód
Studia niestacjonarne, rok III, semestr V
Rok akademicki 2012/2013
Przedmiot: GRAFIKA KOMPUTEROWA.
Temat:
Zastosowanie metod kodowania w programach graficznych.
Wykonał:
L.p. |
Imię i Nazwisko |
Ocena |
1. |
MACIEJ KARŁOWSKI |
|
WSTĘP
W dzisiejszych czasach kodowanie informacji ma ogromne znaczenie. Stosuje się je w celu zachowania poufności korespondencji, zabezpieczenia przesyłanych lub przechowywanych danych. Możliwość ukrycia informacji np. w obrazach daje nam również możliwość niejawnego podpisywania swoich prac , co jest dość istotne w dzisiejszych czasach, gdzie mamy bardzo często do czynienia z kradzieżami własności intelektualnych. Jak wiadomo przesył obrazów stanowi gros przesyłanych informacji, wobec czego stosuje się metody kodowania informacji bez znaczącej utraty jakości tych plików. Najczęściej kodowanie takie stosowane jest w programach graficznych. Programy te kodują wczytany tekst w oparciu o klucz który został wcześniej stworzony za pomocą funkcji stosującej np. kodowanie Huffmana, Shannona-Fano, lub jakąkolwiek inną metodę kodowania bezstratnego. Ogólna idea tworzenia klucza polega na tym, by zbadać jak często występują określone znaki w tekście i dla najczęściej się powtarzających stworzyć odpowiadający im klucz o jak najmniejszym rozmiarze (np. znak spacji ma klucz odpowiadający długości 3 bitów).
1. Kodowanie Huffmana (ang. Huffman coding)
Jest to jedna z najprostszych i łatwych w implementacji metodkompresji bezstratnej. Została opracowana w 1952 roku przez Amerykanina Davida Huffmana. Algorytm Huffmana nie należy do najefektywniejszych systemów bezstratnejkompresji danych, dlatego też praktycznie nie używa się go samodzielnie. Często wykorzystuje się go jako ostatni etap w różnych systemach kompresji, zarówno bezstratnej, jak i stratnej, np. MP3 lub JPEG. Pomimo, że nie jest doskonały, stosuje się go ze względu na prostotę oraz brak ograniczeń patentowych. Jest to przykład wykorzystania algorytmu zachłannego.
1.1 Praktyczne zastosowanie
Jednym z głównych problemów stosowania statycznego algorytmu Huffmana jest konieczność transmisji całego drzewa lub całej tablicy prawdopodobieństw. W przypadku transmisji drzewa węzły są odwiedzane w porządku preorder, węzeł wewnętrzny może zostać zapisany na jednym bicie (ma zawsze dwóch synów), liście natomiast wymagają jednego bitu plus takiej liczby bitów, jaka jest potrzebna do zapamiętania symbolu (np. 8 bitów). Np. poniższe drzewo z rys. nr 1 może zostać zapisane jako: (1, 0, 'd', 1, 0, 'c', 1, 0, 'b', 0, 'a'), czyli 7 + 4 · 8 = 39 bitów.
Rys. 1 Drzewo Huffmana
2.Edytory grafiki
Edytor grafiki jest programem komputerowym służącym do tworzenia, edycji i korekcji obrazów. Do podstawowych możliwości edytorów graficznych należą:
rysowanie odręczne
umieszczanie gotowych elementów graficznych np. figur geometrycznych, strzałek, rysunków itp.
przekształcanie (formatowanie) rysunków
zmiana kolorów
Znanymi edytorami grafiki są: Paint (składnik systemu operacyjnego Windows), Photo Editor (składnik pakietu MSOffice), Gimp (darmowy edytor grafiki wektorowej) i profesjonalne edytory grafiki Photoshop czy Corel. Obecnie wiele przeglądarek plików graficznych takich jak np. ACDSee czy IrfanView posiada niektóre funkcje edycyjne pozwalające na dokonanie zmian w już istniejących obrazach lub utworzenie nowych. Możliwości wyżej wymienionych można znakomicie wykorzystać przy korekcji zdjęć, obrazów pozyskanych ze skanera lub przy tworzeniu galerii zdjęć czy prezentacji i pokazów.
Tworzenie obrazów barwnych polega na zmieszaniu ze sobą barw podstawowych. Inaczej odbywa się to na ekranie monitora a inaczej w drukarce laserowej, atramentowej czy w maszynie poligraficznej.
Standard RGB (ang. Red, Green, Blue) stosowany jest do tworzenia obrazów barwnych na ekranie monitora i polega na zmieszaniu trzech podstawowych barw - czerwonej, zielonej i niebieskiej. Każda z nich może zmieniać swoje nasycenie, przez co uzyskuje się pozostałe kolory. Składowe RGB mogą przyjąć maksymalnie wartość 255 (8-bitowe kodowanie koloru) ale niektóre programy graficzne pozwalają zmienić kodowanie na 16-bitowe (65 536 wartości składowych RGB). Przykładowo kolorowi czarnemu odpowiadają składowe: R=0, G=0, B=0.
Standard CMYK (ang. Cyan, Magenta, Yellow, blacK) służy do definiowania kolorów ilustracji przeznaczonych do druku. W tym standardzie barwy powstają poprzez zmieszanie czterech kolorów - błękitnego (C), purpurowego (M), żółtego (Y) i czarnego (K). Standard CMYK daje możliwość 32-bitowego kodowania kolorów (4 294 967 296 kolorów).
3. Rodzaje grafiki
3.1 Grafika rastrowa (ang. raster graphic) to typ grafiki komputerowej, w której obraz składa się z odrębnych punktów o tej samej wielkości - pikseli - ułożonych obok siebie. Piksele mają kształt kwadratu i tworzą tzw. mapę bitową. Obraz barwny powstaje przez odpowiednie zabarwienie poszczególnych pikseli na ekranie. W edytorach grafiki rastrowej edycja jest możliwa na poziomie pojedynczych pikseli. Wadą tej grafiki jest to, że piksele są wyraźnie widoczne przy powiększeniu obrazu, linie stają się wtedy schodkowe a powiększany obraz (lub jego fragment) staje się niewyraźny. Można temu zaradzić przez stosowanie bardzo dużych rozdzielczości. To z kolei prowadzi do powstawania bardzo dużych plików. Najpopularniejszymi formatami bitmap są: BMP (nieskompresowana bitmapa), JPEG, GIF, TIFF. Najpopularniejszym edytorem grafiki rastrowej jest Adobe Photoshop, darmowy GIMP lub najprostszy Paint.
3.2 Grafika wektorowa to typ grafiki komputerowej, w której obraz jest zapisywany za pomocą wzorów matematycznych i nie jest zbiorem punktów jak w grafice rastrowej. Każdy fragment rysunku jest osobnym obiektem (wektorem), który można edytować, można zmieniać sposób i kolejność nakładania obiektów na siebie, można je grupować w jeden obiekt. Powiększanie w grafice wektorowej polega na zmianie parametrów równań opisujących krzywe, linie są zatem rysowane za każdym razem na nowo, a nie powiększane. Pliki obrazów tworzone w edytorach grafiki wektorowej są zapisywane w specjalnych formatach, które uwzględniają pamiętanie obiektów, składających się na obraz. Najpopularniejszym edytorem grafiki wektorowej jest CorelDRAW, profesjonalny Adobe Illustrator.
4. Formaty plików graficznych
Obrazy są zapisywane jako pliki graficzne o różnych formatach. Formaty służące do zapisania bitmap czyli grafiki rastrowej (z kompresją lub bez kompresji) są odczytywane przez wiele edytorów grafiki, natomiast edytory grafiki wektorowej mają swoje własne formaty związane z konkretnym programem. W tabelach poniżej zostały zestawione najpopularniejsze formaty zapisu grafiki rastrowej i grafiki wektorowej. Zmiana jednego formatu graficznego na inny jest możliwa tylko wtedy gdy dany edytor grafiki akceptuje format pliku zmienianego i potrafi zapisać go w innym żądanym formacie (inaczej mówiąc zależy to od możliwości importu i eksportu plików przez dany edytor grafiki). Przeglądarki graficzne takie jak IrfanView czy ACDSee akceptują bardzo dużo różnych formatów graficznych i przy ich pomocy można bardzo łatwo zmienić lub ujednolicić formaty plików graficznych. Formaty plików graficznych stanowią jednocześnie metody ich kodowania.
W poniższych tabelach przedstawiono najpopularniejsze formaty plików graficznych
Formaty bitmap i rozszerzenia nazw plików |
||
Nazwa pliku |
Rozszerzenie |
Opis |
BITMAPA (ang. bit map) |
bmp |
standardowy format pliku zawierającego zgodną z systemem Windows nieskompresowaną grafikę rastrową |
GIF (ang. Graphic Interchange Format) |
gif |
plik, w którym liczba pamiętanych kolorów wynosi maksymalnie 256, jest sposobem kompresji bitmap, często używany w Internecie do kompresji rysunków, wykresów, schematów itp., nie stosuje się go do kompresji fotografii |
JPEG (ang. Joint Photographic Experts Group) |
jpg |
najpopularniejszy format zapisu plików graficznych, jest sposobem kompresji bitmap, daje możliwość wyboru stopnia kompresji (im większa kompresja tym gorsza jakość), stosowany do publikacji internetowych, w cyfrowych aparatach fotograficznych |
TIFF (ang. Tagged Image File Format) |
tif |
format, w którym każdy piksel jest opisany za pomocą 24-bitowego koloru RGB, stosuje się go do zapisywania zdjęć oraz materiałów przeznaczonych do druku, jest formatem bezstratnym |
Formaty plików różnych programów graficznych |
|
Nazwa programu |
Rozszerzenie |
Standard zapisu grafiki wektorowej w środowisku Windows np. cliparty w pakiecie Office |
wmf |
Edytor grafiki wektorowej Corel Draw |
cdr |
Edytor grafiki Adobe Photoshop (format własny) |
psd |
Edytor grafiki wektorowej Micrograpx Windows Draw |
drw |
Edytor grafiki Gimp |
xcf |
Program Draw (składnik pakietu OpenOffice) |
sxd |
Program Micrografx Designer |
dsf |
4.1 Algorytm JPEG
Jest to ten sam algorytm, co przy kompresji map bitowych, film przecież jest sekwencją ujęć, a każde ujęcie to po prostu pojedynczy obraz, zazwyczaj fotografia cyfrowa. Każdy z tych obrazów może zostać z powodzeniem skompresowany za pomocą zwykłego algorytmu JPEG. Korzystanie z algorytmu JPEG, jako systemu kodowania obrazu wideo, ma dwie poważne wady: nie jest przeprowadzane porównywanie ujęć (frame differencing), a dekompresja obrazu przy wyświetlaniu jest powolna. Ponieważ algorytm JPEG zaprojektowano dla pojedynczych obrazów, kompresja poszczególnych ujęć filmu przebiega, tak jakby to były oddzielne mapy bitowe.
JPEG dzieli obraz na określone strefy barw i tak też odtwarza je po skompresowaniu. Oddziela on informację o jaskrawości i odcieniach kolorów. Wykorzystano tu właściwość ludzkiego oka, dzięki której można "zacierać" pewne subtelne różnice występujące przy "przechodzeniu" kolorów. Charakterystyczne "dzielenie obszarowe" objawia się głównie charakterystyczną "otoczką" pewnych elementów obrazka, zwłaszcza tych gdzie cieniowanie (w obrębie danego koloru) jest najbardziej szczegółowe i intensywne. Kompresja JPEG ma charakter nieodwracalny (informacje o pewnych elementach pliku graficznego są tracone bezpowrotnie).
4.2 Format PNG
W formacie tym zastosowany został algorytm kompresji deflate/inflate, który także stosuje się w programach takich jak PkZip, GZip. Jego idea polega na stosowaniu metody słownikowej, a następnie statycznego lub adaptacyjnego kodowania Huffmana. Tablice kodu Huffmana przypisują krótsze słowa kodowe dla mniejszych wartości próbek (występują one częściej). Jeśli liczba bitów użytych w procesie kodowania przekracza dozwoloną dla danego bloku danych wartość, algorytm koryguje to poprzez dobranie odpowiednio dużego współczynnika skali. Prowadzi to do większych wartości kroku kwantyzacji co pozwala osiągnąć mniejsze wartości skwantowane. Operacja ta powtarzana jest do momentu osiągnięcia wymaganej liczby bitów.
4.3 Format TIFF
Dane obrazowe w tym formacie zapisywane są na wiele sposobów. Jednym z nich jest kompresja LZW. W odróżnieniu od metod stosowanych w JPEG jej działanie nie polega na usuwaniu fragmentów informacji obrazu kosztem jakości, lecz na skupianiu grup pikseli o tym samym kolorze. Plik nie składa się zatem z zestawienia kolorów pojedynczych, następujących po sobie pikseli, lecz z krótkich opisów jednolitych powierzchni. Daje to stosunkowo wysoką kompresję co do jakości obrazu (od 1:5 do 1:3 w przypadku fotografii).
4.4 Format PCX
Dane obrazowe kompresowane są liniami począwszy od punktu 0,0 (lewy, górny róg obrazu). Jeżeli obraz ma kilka płatów to są one kompresowane po kolei (najpierw płat 0, potem 1, itd...). Standard nie mówi nic o tym, czy kolejne płaty mają być kompresowane oddzielnie jak linie, czy też traktowane jako ciąg bajtów. W trybach 24 bitowych najpierw kompresowane są składowe koloru R, następnie G, a na końcu B. Sama idea kompresji jest prosta. Jeżeli w jednej linii kolejne punkty mają taki sam kolor to zapisywana jest tylko liczba ich wystąpień oraz kolor. No dobrze, ale jak rozróżnić w pliku liczbę powtórzeń od koloru. Rozwiązanie jest prostsze niż się wydaje. W PCX liczba powtórzeń jest większa od liczby C0h (192), jeśli więc należy zapisać kolor o wartości większej niż ta liczba to zapisuje się: C0 + liczba powtórzeń, kolor.
4.5 Format GIF
Format ten korzysta z tzw. algorytmu kompresji słownikowej LZW. Polega ona w skrócie na tym, iż konstruowany jest wzorzec kodowania grupowego, czyli poziome ciągi pikseli tego samego koloru, zastąpione zostają przez liczbę określającą długość sekwencji . Dlatego właśnie wysoki stopień kompresji można osiągnąć w odniesieniu do plików graficznych, w których poziome sekwencje danych pikseli (przede wszystkim o tym samym kolorze) tworzą powielający się schemat. Podstawowe zalety formatu to: możliwość wyświetlania sekwencyjnego (w pierwszej kolejności uproszczony podgląd, a następnie wyostrzanie go do maksimum), umożliwienie zapisu w jednym pliku wielu obrazów GIF w celu późniejszej ich prezentacji w postaci animacji, możliwość ustawienia dla każdego piksela przezroczystości (jedynie dwie wariancje - albo jest, albo nie jest przezroczysty).
Ma również wady: patent na technologię kompresji LZW powoduje, że za rozprowadzanie narzędzi stworzonych po 1995 roku przetwarzających grafiki w tym formacie należy odprowadzać opłaty, nie obsługuje trybów o 24-bitowym kolorze.
4.6 Format CDR
Ten format plików jest rodzimym formatem programu CorelDRAW, jest jednocześnie formatem zastrzeżonym. W pliku CDR zapisane są informacje o wszystkich liniach i kolorach w postaci wzorów matematycznych, jako że jest to obraz wektorowy.