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 VRok 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).
...