Grafika 11

background image

Wydział Fizyki, Matematyki i Informatyki
Instytut Informatyki

Zakład Grafiki Komputerowej i Obliczeń Wysokiej Wydajności

Grafika Komputerowa

wykład 11:

Formaty plików rastrowych
Budowa przykładowego pliku

rastrowego (bmp)

background image

Formaty grafiki rastrowej

BMP (Bit MaP) - format BMP jest standardowym formatem

bitmap w środowisku Windows i w systemie OS/2. Po
rozejściu się firm Microsoft i IBM powstały osobne standardy.
Zachowując pliki w „starym” formacie, istnieje możliwość wyboru
głębi bitowej koloru od 1, 4, 8 lub 24 bitów. W „nowym”
formacie kolor zapisywany może być w systemie RGBA (tu: BGRA
- 32 bity). W trybach poniżej 8 bitów występuje paleta kolorów.

Zapis obrazu zawiera informację o kolorze, a następnie obszar

danych pikseli opisywanych od lewego dolnego do prawego
górnego rogu.

W przypadku obrazów BMP można skorzystać z bezstratnej

kompresji Run-Length-Encoding (RLE). Wersja 5 została
wyposażona w możliwość obsługi kompresji stosowanej w JPEG i
PNG.

Zaletą tego formatu jest fakt, iż jest on rozpoznawany przez

wszystkie wersje systemu Windows. Podstawową wadą są duże
rozmiary plików.

Grafika komputerowa

– wykład 11

background image

Do kompresji grafiki szczególnie nadaje się algorytm RLE (Run-Leght
Encoding).
Jeśli znak (lub w tym przypadku wartość piksela) powtórzy
się więcej niż trzy razy z rzędu, to jest zapisywany tylko ten znak i
liczba powtórzeń. Można objaśnić to na przedstawionym schemacie.
Łańcuch danych do przetwarzania:
DDDDDDBBNNNNKKKKKOOO
po skompresowaniu:
6^DBB4^N5^KOOO
Przed znakiem ^ pojawia się liczba powtórzeń piksela o danej wartości.
W przytoczonym przykładzie oszczędność miejsca sięga 30%.
Algorytm jest wysoce efektywny w stosunku do obrazów o dużych
obszarach wypełnionych jednolitą barwą, a szczególnie o długich
ciągach poziomych pikseli.

Kompresja RLE

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

Kompresja RLE (Run Length Encoding)

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

GIF (Graphics Interchange Format) - definiuje protokół, który

umożliwia niezależną sprzętowo transmisję grafiki on-line. GIF
składa się z sekwencji bloków, wśród których można
wyróżnić 3 grupy: kontrolne, informacyjne oraz specjalne.

• Bloki kontrolne (np.: nagłówek czy opis ekranu logicznego)

zawierają informacje dla ustawienia parametrów sprzętu.

• Bloki informacyjne, np.: opis obrazu i rozszerzenie tekstowe,

mieszczą dane używane do wyświetlenia obrazu na ekranie
komputera.

• Bloki specjalne, np.: komentarze i rozszerzenie aplikacyjne,

służą jedynie ogólnej informacji.

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

GIF (Graphics Interchange Format)
Zaletami formatu są małe rozmiary plików oraz możliwość

obsługi przez wszystkie przeglądarki internetowe. Nadaje się do
publikacji grafiki w Internecie (w tym tworzenia obrazów
animowanych). Mimo swego podeszłego wieku wciąż cieszy się
popularnością, chociaż jest ostatnio wypierany przez animacje
Flasha. Umożliwia zastosowanie przezroczystości oraz interlacing
(przeplot).

Nie ma on jednak możliwości wykrywania błędów. Głębia barw

ograniczona jest do 8 bitów (256 kolorów). Paleta kolorów może
być optymalizowana. Do 2006 roku licencjonowany, ponieważ
obrazy są kompresowane bezstratną metodą LZW. Dlatego
stworzono konkurencyjny format PNG.

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

GIF (Graphics Interchange Format)

Obraz w formacie GIF (kolor 8-bitowy) i JPEG (kolor 24-bitowy)

Grafika komputerowa

– wykład 11

background image

Nazwa algorytmu LZW pochodzi od pierwszych liter nazwisk jego
autorów: Jacob Ziv, Abraham Lempel i Terry A.Welch. Pierwsza wersja
algorytmu pochodzi z 1977 roku i znana jest jako LZ77. Rok później
pojawił się nieco zmieniony algorytm LZ78. Po publikacji w 1984 roku
przez Terrego Welcha praktycznej realizacji LZ78, algorytm otrzymał
ostateczna nazwe LZW. W pliku GIF stosowana jest jego
implementacja o nazwie Variable Length Code LZW.
Uwaga: Algorytm LZW jest chroniony patentem.
Właścicielem patentu jest firma Unisys Corporation. Od 1995 roku
producenci, którzy chcą sprzedawać oprogramowanie, używające
algorytmu LZW do przetwarzania danych muszą mieć licencję od
Unisys Corporation i licencja ta jest płatna. Zwolnieni od opłat są tylko
użytkownicy końcowi i organizacje nie komercyjne.

Kompresja bezstratna
LZW

Grafika komputerowa

– wykład 11

background image

Idea algorytmu LZW jest stosunkowo prosta i polega na zastępowaniu
znalezionych ciągów danych specjalnymi kodami. W trakcie
przeglądania zbioru wejściowego program zapamiętuje w tablicy (lub
innej strukturze danych) znalezione ciągi danych i odpowiadające im
kody. Algorytm jest jednoprzebiegowy i nie wymaga zapisu tablicy z
kodami do zbioru wynikowego.
W zależności od konkretnej implementacji, algorytm może operować
na bajtach bądź na danych o innej długości. Taka elastyczność ma
szczególne znaczenie przy kompresji grafiki, w której opis jednego
piksela może być kodowany różną ilością bitów.

Kompresja LZW

Grafika komputerowa

– wykład 11

background image

Wraz ze wzrostem ilości danych wejściowych rośnie wielkość tablicy
z sekwencjami danych. Dzięki temu rośnie także
prawdopodobieństwo, wzrostu stopnia kompresji kolejnych porcji
danych. Implementacja algorytmu LZW musi uwzględnić możliwość
przepełnienia się tablicy oraz koniec danych.

Kompresja LZW

Grafika komputerowa

– wykład 11

background image

Podczas procesu dekompresji danych, program odtwarza tablice
kodów na podstawie odczytanych danych. Do poprawnego odczytu
dekompresor musi znać największy możliwy kod danych oraz kody
specjalne.

Dekompresja przeprowadzana jest w oparciu o kody zawarte w
tabeli i prowadzi do uzyskania ciągu analogicznego z
wejściowym.

Dekompresja danych

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

TIFF (Tagged Image File Format) – został opracowany do druku

postscriptowego. Znajduje zastosowanie w wymianie plików
między aplikacjami i platformami komputerowymi. Jest czytany
przez większość systemów operacyjnych.

Format TIFF może posługiwać się algorytmem kompresji

bezstratnej LZW. Oparty jest on na koncepcji tagów, które
dostarczają informacji na temat obrazu (typ kompresji, rozmiar,
kolejność bitów oraz autor, data i oprogramowanie
źródłowe). TIFF 5.0 definiuje 45 tagów. Ze względu na wysoką
jakość obrazu TIFF jest używany w poligrafii, fotografii,
profesjonalnym przetwarzaniu i analizie obrazu. Jego podstawową
wadą jest duży rozmiar plików.

W przypadku zastosowania pewnych metod kompresji mogą

występować trudności z rozpoznawaniem przez różne programy
graficzne.

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

PNG (Portable Network Graphics - "ping")elastyczny,

przenośny format opracowany jako alternatywa dla standardu
GIF. Nie zawiera żadnych rozwiązań patentowanych.

Podobnie jak GIF, jest on używany do wyświetlania obrazów na

stronach WWW i w serwisach interaktywnych. Jest niezależny od
platformy. PNG zawiera pełną informację o kolorze (do 48 bitów);
w celu zmniejszenia rozmiaru plików posługuje się algorytmem
kompresji bezstratnej DEFLATE, który łączy LZ77 i kodowanie
Hufmanna, co zapewnia wydajniejszą kompresję niż GIF.

Jego zaletą jest pełna kontrola poprawności pliku i trójstopniowa

korekcja błędów.

Wyświetlanie może odbywać się z przeplotem w obu kierunkach,

co daje lepszy efekt niż jednokierunkowy przeplot w formacie GIF.

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

PNG (Portable Network Graphics - "ping")
PNG nie daje możliwości zastosowania animacji. Umożliwia za to

wyświetlanie

barw

o

zadanym,

dowolnym

stopniu

przezroczystości oraz dodatkowych informacji o obrazie. Jego
wadą jest brak obsługi przez niektóre przeglądarki. Uwzględnia
także korekcję gamma.

Plik PNG składa sie z serii bloków (chunk). Po bloku PNG file

signature, który rozpoczyna plik PNG, obowiązkowo występują:
IHDR (nagłówek), IDAT (dane obrazu) oraz IEND (zakończenie).
Wszystkie pola liczbowe w pliku PNG zapisywane są w
układzie Big-Endian, czyli poszczególne bajty zapisywane są od
najstarszego do najmłodszego.

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

Kompresja LZ77

Algorytm LZ77 jest metodą bezstratnej kompresji słownikowej,

opracowanej w 1977 roku przez Abrahama Lempela i Jacoba
Ziva. Opiera się on na zasadzie, iż poszczególne słowa lub ich
fragmenty powtarzają się w danym tekście. W słowniku jest
zatem zapamiętywana pewna liczba ostatnio kodowanych
danych, następnie w przypadku powtórzenia się jakiegoś ciągu
znaków, jest on zastępowany dwiema liczbami, z których
pierwsza określa jego pozycję w słowniku, a druga długość
ciągu.

Grafika komputerowa

– wykład 11

background image

Kodowanie Huffmana

Dla danego zbioru symboli S = {x

1

, …, x

n

} istnieje zbiór

stowarzyszonych z nim prawdopodobieństw P = {p

1

, …, p

n

}.

Symbolami są najczęściej bajty, lecz mogą nimi być np.: pary znaków.
Prawdopodobieństwa mogą zostać z góry określone dla danego
zestawu

danych,

np.:

poprzez

wyznaczenie

częstotliwości

występowania znaków w tekstach danego języka. Częściej jednak
wyznacza się je indywidualnie dla każdego zestawu danych.
Kodowanie Huffmana polega na utworzeniu słów kodowych (ciągów
bitowych), których długość jest odwrotnie proporcjonalna do
prawdopodobieństwa p

i

. Tzn. im częściej dane słowo występuje (może

wystąpić) w ciągu danych, tym mniej zajmie bitów.

Kompresja JPEG

Grafika komputerowa

– wykład 11

background image

Kodowanie Huffmana

Własności kodu:
• kod Huffmana jest kodem prefiksowym - żadne słowo kodowe nie
jest początkiem innego słowa;
• jeśli prawdopodobieństwa są różne, tzn. p

j

> p

i

, to długość kodu dla

symbolu x

j

jest nie większa od kodu dla symbolu x

i

;

• słowa kodu dwóch najmniej prawdopodobnych symboli mają równą
długość;
• dwa najdłuższe symbole różnią się tylko jednym, ostatnim bitem.
Kompresja polega na zastąpieniu symboli otrzymanymi kodami.

Kompresja JPEG

Grafika komputerowa

– wykład 11

background image

Drzewo Huffmana

A

0.1

Mamy symbole A,B,C,D
o prawdopodobieństwach
wystąpienia odpowiednio [0.1,
0.2, 0.3, 0.4].

Łączymy węzły odpowiadające
symbolom (A) i (B). Teraz
mamy (A + B) = 0.3, (C) =
0.3, (D) = 0.4

B

0.2

C

0.3

D

0.4

A

0.1

B

0.2

C

0.3

D

0.4

0.3

A

0.1

B

0.2

C

0.3

D

0.4

0.3

Łączymy węzły
odpowiadające drzewku (A +
B) oraz (C). Teraz mamy ((A
+ B) + C)=0.6 i (D) = 0.4

0.6

Grafika komputerowa

– wykład 11

background image

Drzewo Huffmana

A

0.1

B

0.2

C

0.3

D

0.4

0.3

Łączymy węzły
odpowiadające drzewku ((A
+ B) + C) oraz (D). Teraz
mamy tylko jeden wolny
węzeł - drzewko (((A + B) +
C) + D) = 1.0
Obliczamy kody znaków:
A = lewo, lewo, lewo= 000
B = lewo, lewo, prawo = 001
C = lewo, prawo = 01
D = prawo = 1

0.6

1.0

0

1

0

0

1

1

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

JPEG (Joint Photographic Expert Group) - umożliwia

zastosowanie stratnej kompresji danych o regulowanym stopniu.
Algorytm zastosowany w formacie JPEG opiera się o DCT
(Discrete Cosinus Transformation). Przy wyborze wysokiego
poziomu kompresji pliki mają niewielkie rozmiary, co umożliwia
ich publikację na stronach www. Są odczytywane przez wszystkie
przeglądarki. Podstawową wadą jest pogorszenie jakości obrazu
(różnice na granicach bloków, zakłócenia na granicach obszarów)
przy dużym stopniu kompresji oraz brak przezroczystości.

Format pozwala na zapis plików o rozdzielczości barw do 24

bitów (16,7 mln kolorów) w systemach CMYK i RGB, nadaje się
zatem do prezentacji zdjęć i obrazów ciągłotonalnych. Nie
zapewnia dobrych efektów w przypadku koloru 1-
bitowego oraz obrazów zawierających wyraźne linie czy granice
między obszarami.

Grafika komputerowa

– wykład 11

background image

JPEG jest

najpowszechniejszym algorytmem kompresji obrazów.

Wiele rozwiązań tu zastosowanych jest używanych także w innych
algorytmach.

Kolejne kroki algorytmu JPEG to:
• zamiana przestrzeni kolorów z RGB na kanał jasności i dwa kanały
koloru. Ludzie znacznie dokładniej postrzegają drobne różnice jasności
od drobnych różnic barwy, a więc użyteczne jest tutaj użycie różnych
parametrów kompresji. (Krok nie jest obowiązkowy)
• obniżenie rozdzielczości kanałów koloru, zwykle odrzuca się co drugą
wartość wzdłuż osi poziomej, i każdą na pionowej, choć możliwe są też
inne ustawienia. Tak radykalne cięcie danych nieznacznie wpływa na
jakość, ponieważ rozdzielczość postrzegania kolorów przez ludzkie oko
jest słaba. (Krok nie jest obowiązkowy)

Kompresja JPEG

Grafika komputerowa

– wykład 11

background image

• Podzielenie każdego kanału obrazka na bloki 8x8. W przypadku
kanałów kolorów, jest to 8x8 aktualnych danych, a więc zwykle
16x8.
• Transformata kosinusowa każdego z bloków. Zamiast wartości
pikseli mamy teraz średnią wartość wewnątrz bloku oraz
częstotliwości zmian wewnątrz bloku, obie wyrażone przez liczby
zmiennoprzecinkowe. Transformata DCT jest odwracalna, więc na
tym etapie nie ma utraty żadnych danych.
• Zastąpienie średnich wartości bloków przez różnice wobec
wartości poprzedniej. Poprawia to w pewnym stopniu współczynnik
kompresji.
• Kwantyzacja, czyli zastąpienie danych zmiennoprzecinkowych
przez liczby całkowite. To właśnie tutaj występują straty danych.
Zależnie od parametrów kompresora, odrzuca się mniej lub więcej
danych. Zasadniczo większa dokładność jest stosowana do danych
dotyczących niskich częstotliwości niż wysokich.
Kompresja algorytmem bezstratnym, w tym przypadku algorytmem
Huffmana.

Kompresja JPEG

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej


Kompresja JPEG

Grafika komputerowa

– wykład 11

background image

Kompresja JPEG

Typowe zakłócenia wynikające z algorytmu kompresji JPEG –
widoczne nieciągłości pomiędzy poszczególnymi blokami pikseli

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

Kompresja JPEG

Kompresja ze
współczynnikiem
jakości 0% - 2 kB

Kompresja ze
współczynnikiem
jakości 10% - 3 kB

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

Kompresja JPEG

Kompresja ze
współczynnikiem
jakości 50% - 8 kB

Kompresja ze
współczynnikiem
jakości 100% - 48 kB

Grafika komputerowa

– wykład 11

background image

Formaty grafiki rastrowej

Opcje

BMP

GIF

PNG

JPEG

Liczba

kolorów

(bity)

24

8

48

24

Przezroczysto

ść

NIE

TAK

(jest-nie ma dla

kolorów)

TAK

(256 stopni dla

każdego piksela)

NIE

Przeplot/

Progresja

NIE/NIE

TAK/NIE

TAK/TAK

NIE/TAK

Animacja

NIE

TAK

NIE

NIE

Kompresja

NIE

(z małym wyjątkiem)

TAK

(bezstratna, LZW)

TAK

(bezstratna, LZ77)

TAK

(stratna)

Rozmiar pliku

BARDZO DUŻY

ŚREDNI

MAŁY

BARDZO MAŁY

Zastosowanie

Zdjęcia do dalszej

obróbki

Ozdobniki graficzne,

przyciski, bannery

Ozdobniki graficzne,

przyciski

Zdjęcia do prezentacji

w Internecie

Grafika komputerowa

– wykład 11

background image

Optymalne formaty grafiki rastrowej dla publikacji na

stronach www

Obiekt graficzny Cechy charakterystyczne

Optymalny format

Banery reklamowe Animacje z napisami, niewielką liczbą

kolorów

GIF 32 kolory

Przyciski,

odnośniki

Napisy, różna liczba kolorów

W zależności od cech:
GIF, JPG 40% jakości

Animacje

Średnia liczba kolorów, mała

rozdzielczość

GIF

Galerie

internetowe

Duża liczba kolorów, łagodne przejścia

tonalne, wysokie rozdzielczości

JPG 40% - 50%

Miniatury
(thumbnails)

Duża liczba kolorów, niskie

rozdzielczości
funkcja podglądu

GIF, JPG 30% jakości

Tła

Mała liczba kolorów

GIF

Tła

Duża liczba kolorów, mała jakość

JPG 20% - 40%

Grafika komputerowa

– wykład 11

background image

Budowa pliku rastrowego na przykładzie

formatu BMP

Nagłówek pliku BMP (BITMAPFILEHEADER) zajmuje 14
bajtów:

bfType/usType - pole identyfikacji rodzaju pliku ( „BM”),
bfSize/cbSize - liczba określająca długość pliku (w
bajtach),
bfReserved1/xHotspot oraz bfReserved2/yHotspot
każdorazowo po cztery bajty zarezerwowane i nie używane
w bitmapach (wartość 0),
bfOBits/oBits - liczba określająca położenie obszaru
danych względem początku pliku.

Grafika komputerowa

– wykład 11

background image

Budowa pliku BMP

Struktura BITMAPCOREHEADER (w starym formacie BMP,
bezpośrednio po nagłówku, zawiera informacje o obrazie
zapisanym w pliku):

bcSize/cbFix - liczba zawierająca wielkość struktury
(definicja wersji; w starej wersji wartość ta wynosi 12),
bcWidth/cx - liczba określająca szerokość obrazu (w
pikselach),
bcHeight/cy - wysokość obrazu (w pikselach),
bcPlanes/cPlanes - liczba określająca ilość płatów
urządzenia docelowego, wartość 1,
bcBitCount/cBitCount - liczba bitów na piksel obrazu,
dopuszczalne wartości to: 1, 4, 8 i 24.

Grafika komputerowa

– wykład 11

background image

Budowa pliku BMP

Struktura BITMAPINFOHEADER (w nowym formacie BMP,
bezpośrednio po nagłówku, tylko dla Windows):

bcSize - liczba zawierająca wielkość struktury (numer
wersji);
w „nowym” formacie BMP dla Windows wynosi 40,
bcWidth - liczba określająca szerokość obrazu (w
pikselach),
bcHeight - wysokość obrazu (w pikselach),
bcPlanes - ilość płatów urządzenia docelowego (wartość
1),
bcBitCount - ilość bitów na piksel obrazu (1, 4, 8, 16, 24
lub 32),
biCompression – sposób kompresji obrazu:
0 - brak kompresji,
1 - kompresja RLE8 (ang. Run Length Encoding 8-Bits),
2 - kompresja RLE4 (ang. Run Length Encoding 4-Bits),
3 - brak kompresji,
4 - obraz jest w formacie JPEG,
5 - obraz jest w formacie PNG;

Grafika komputerowa

– wykład 11

background image

Budowa pliku BMP

Struktura BITMAPINFOHEADER (c.d.):

biSizeImage - liczba określająca wielkość obszaru danych
obrazu (w bajtach),
biXPelsPerMeter – rozdzielczość pozioma obrazu (w
punktach na metr),
biYPelsPerMeter – rozdzielczość pionowa (w punktach na
metr),
biClrUsed - liczba określająca, ile kolorów z mapy kolorów
jest wykorzystywanych w obrazie (0, gdy wykorzystywana jest
cała mapa kolorów),
biClrImportant - liczba określająca, ile kolorów wystarcza,
aby możliwie poprawnie wyświetlić obraz zawarty w pliku.

Grafika komputerowa

– wykład 11

background image

Budowa pliku BMP

Mapa kolorów
„Stary format”:
Mapa kolorów składa się z trzybajtowych struktur nazywanych
w Windows RGBTRIPLE (trójka RGB). Struktury te
zawierają definicje składowych barw w układzie BGR
(niebieski, zielony i czerwony).
Mapa ta nie występuje w obrazach o głębokości bitowej
koloru24.
„Nowy” format:
Każda pozycja mapy kolorów opisywana jest czterobajtowymi
strukturami nazywanymi w Windows RGBQUAD. Struktury te
zawierają
definicje składowych barw w układzie BGRA (niebieski, zielony,
czerwony oraz nieużywany atrybut).
Jeżeli pole biClrUsed struktury BITMAPINFOHEADER jest
większe od zera, to jego wartość wyznacza ilość definicji
kolorów zawartych
w mapie kolorów. W przeciwnym wypadku o wielkości mapy
kolor decyduje ilość bitów na piksel. Mapa kolorów nie
występuje w obrazach o głębokości bitowej barwy 16, 24 i 32.

Grafika komputerowa

– wykład 11

background image

Budowa pliku BMP

Dane obrazu
W pliku BMP po palecie kolorów następuje obszar danych
poszczególnych pikseli obrazu. Piksele są zapisywane
wierszami od najniższego do najwyższego i w kolejności od
lewej do prawej, zatem lewy dolny róg obrazu jest zapisany na
początku obszaru danych, a prawy górny - na końcu.

Kolejne wersje plików BMP (4 oraz 5) zawierają odpowiednio
struktury
BITMAPV4HEADER oraz BITMAPV5HEADER, które pojawiają się
bezpośrednio po nagłówku pliku (BITMAPFILEHEADER). Dają
one nie tylko możliwość zastosowania korekcji gamma dla
poszczególnych kanałów koloru, ale także zapisu barwy w
niezależnym sprzętowo systemie CIE XYZ.

Grafika komputerowa

– wykład 11


Document Outline


Wyszukiwarka

Podobne podstrony:
Grafikaw 11
grafik 11 2012
zestaw 11, AiR, Semestr 2, Grafika inżynierska, zadania grafika
11 GIMP tworzenie grafiki na potrzeby WWW (cz4)
11 Grafika
grafika inzynierska 12 11 2009 c2
Filozofia zagadnienia UAP semestr letni 2010 11 Grafika Rzeźba, filozofia
grafika komputerowa wykład 11
GRAFIK SPRZĄTANIA KLATKI SCHODOWEJ 4 OSOBY 09 10 11
grafika inzynierska 12 11 2009 c1
2006 11 Tworzenie sztuki abstrakcyjnej za pomocą Fyre [Grafika]
11 Małe formy grafiki Budzyńska Agata
11 grafika barwy
Zarz[1] finan przeds 11 analiza wskaz

więcej podobnych podstron