Grafika komputerowa - ćwicz. 3
Temat: Procesory graficzne
1. Sterowniki graficzne:
Funkcje:
- odczyt zawartości pamięci graficznej i generowanie szeregowego
strumienia informacji obrazowej do urzÄ…dzenia zobrazowania (pikseli);
- generacja sygnałów synchronizacji H, V i Blank.
Sterownik graficzny firmy Motorola: MC6845
2. Akceleratory graficzne:
Funkcje:
- wykonywanie specjalizowanych zadań graficznych: cieniowanie,
wypełnianie obszarów, triangulacja, depth cueing, (efekt głębi
przestrzennej), antyaliasing, operacje HLHSR itp.
- funkcje sterownika graficznego.
3. Koprocesory graficzne:
Funkcje:
- procesor graficzny GP (Graphics Processor)
Wykonuje rozkazy graficzne z dostępnej listy rozkazów graficznych
(rozkazy sterujące, rozkazy kreślenia, rozkazy transmisji blokowych),
składuje wytworzone mapy bitowe w pamięci dostępnej przez procesor
obrazu
- procesor obrazu DP (Display Processor)
Generuje sygnały synchronizacji i szeregowy strumień informacji
obrazowej, jednocześnie może wyświetlać wiele okien na ekranie z
różnych obszarów map bitowych pamięci graficznej.
- jednostka sterujÄ…ca interfejsem BIU (Bus Interface Unit) .
Steruje wszelką komunikacją pomiędzy koprocesorem a zewnętrznym
procesorem i pamięcią graficzną. Zawiera zintegrowany sterownik
pamięci DRAM/VRAM umożliwiający realizację różnych trybów dostępu
przy transmisjach blokowych. Wykorzystywany przez DP i GP w
operacjach dostępu do map bitowych w pamięci graficznej.
Koprocesory graficzne firmy Intel: I82720, I82786.
4. Procesory graficzne:
Funkcje:
- funkcje koprocesora graficznego;
- jednostka obliczeniowa wykonująca rozkazy z listy rozkazów
uniwersalnych (rozkazy arytmetyczne, logiczne, warunki, skoki itp.)
Procesory firmy Teksas Instruments:
- TMS34010 16-bitowy procesor graficzny
- TMS34020 32-bitowy procesor graficzny współpracujący
z koprocesorem zmiennoprzecinkowym TMS34082
Procesory firmy Intel:
- I860 64-bitowy procesor graficzny z 2 jednostkami obliczeń
stałopozycyjnych i zmiennoprzecinkowych, z układem MERGE
(mnożenie macierzy 4x4)
5. Systemy wieloprocesorowe z przetwarzaniem potokowym:
Chipsety GeForce: Vertex Shader, Pixel Shader, Unified Shader
- przetwarzanie potokowe: potok strumień informacji opisujących
pojedynczÄ… klatkÄ™ animacji;
- obliczenia na danych opisujących wierzchołki (współrzędne, wektory
normalne) wykonywane przez układ Vertex Shader;
- obliczenia na wartościach pikselowych (składowe R, G, B, A)
wykonywane przez układ Pixel Shader;
- obliczenia implementowane w postaci programów niskopoziomowych
składających się od kilku do kilkudziesięciu rozkazów.
Procesor obrazu DP (Display Processor) generuje sygnały
synchronizacji i szeregowy strumień informacji obrazowej
Sygnały synchronizacji urządzeń rastrowych:
- synchronizacja pozioma (ang. Horizontal)
- synchronizacja pionowa (ang. Vertical)
- sygnał wygaszania: Blank (HBlank, VBlank)
1 Parametry sygnałów synchronizacji
1
1
1
Synchronizacja pozioma
1. Horizontal Line Rate: HFreq [kHz]
2. Horizontal Synchronization Width: HSync [µs]
3. Horizontal Back: HBack [µs]
4. Horizontal Front: HFront [µs]
HFront HSync HBack
HActive (K pixeli)
HBlank
1/HFreq
Synchronizacja pionowa
1. Vertical Line Rate: VFreq [Hz]
2. Vertical Synchronization Width: VSync [ms]
3. Vertical Back: VBack [ms]
4. Vertical Front: VFront [ms]
VFront VSync VBack
VActive (L linii video)
VBlank
1/VFreq
Przykład 1.
Sprawdzić czy monitor o dopuszczalnej częstotliwości odchylania poziomego
HFreq=33 kHz może współpracować z kartą graficzną SVGA w trybie rozdzielczości
800x600 z częstotliwością odświeżania VFreq=60Hz.
Wymagania techniczne monitora: min. czas HBlank=5µs
min. czas VBlank=0.67ms
VFront VSync VBack
600 linii video (VActive)
VBlank
1/VFreq
1. VFreq=60Hz
VActive =1/VFreq - VBlank= 1/60Hz-0.67ms=16.67-0.67=16.0ms
HFreq=1/(VActive/L)=1/(16.0ms/600)=1/26.67µs=37.5kHz
2. VFreq=50Hz
VActive =1/VFreq- VBlank= 1/50Hz-067ms=20.0-0.67=19.33ms
HFreq=1/(VActive/L)=1/(19.330ms/600)=1/32.22µs=31.0kHz
Przykład 2.
Wyznaczyć pasmo przenoszenia sygnału video (VBW) dla karty j.w. dla:
L=600 linii
K=800 pixeli
HFreq=37.5KHz VBW Video Band Width
HFront HSync HBack
HActive (800 pixeli)
HBlank
1/HFreq
HActive=1/HFreq-HBlank=26.67µs-5µs=21.67µs
VBW=1(HActive/K)=1/(21.67µs/800)=1/27.09ns=36.9MHz
Zadanie 1:
Obraz wyświetlany na monitorze w sposób kolejnoliniowy odświeżany jest z
częstotliwością VFreq=60Hz. Zakładając, że układy sterujące monitora wymagają
minimalnych czasów wygaszania HBlank=2µs i VBlank=2ms wyznaczyć
częstotliwość sygnału synchronizacji poziomej HFreq i szerokość pasma sygnału
video VBW dla kart graficznych generujÄ…cych obraz w standardzie:
" Hercules 720x348
" EGA 640x350
" VGA 640x480
" SVGA 800x600
" * 1024x768
" TIGA 1280x1024
" * 1600x1280
Lp. Standard KxL HFreq [kHz] VBW [MHz]
1. Hercules 720x348
2. EGA 640x350
3. VGA 640x480
4. SVGA 800x600
5. 1024x768
6. TIGA 1280x1024
7. 1600x1280
Zadanie 2:
Wyznaczyć częstotliwość sygnału synchronizacji poziomej HFreq i szerokość pasma
sygnału video VBW dla obrazu generowanego z przeplotem o rozdzielczości:
" 800x600
" 1024x768
" 1280x1024
" 1600x1280
Zakładamy (jak w Zadaniu 1), że układy sterujące monitora wymagają minimalnych
czasów wygaszania HBlank=2µs i VBlank=2ms oraz odÅ›wieżanie z
częstotliwością VFreq=60Hz
Lp. Standard KxL HFreq [kHz] VBW [MHz]
1. SVGA 800x600
2. 1024x768
3. TIGA 1280x1024
4. 1600x1280
Przebiegi synchronizacji pionowej i poziomej w trybie z przeplotem
VFront VSync VBack
VActive L/2 linii video
VBlank
1/VFreq
HBlankp
HFront HSync HBack HSync HBack
HActive (K pixeli)
HBlank
1/HFreq
1 Założenia: (tak się przyjmuje):
1
1
1
HFront = HBack E"
E" 10 ÷20 % HBlank
E"
E"
dla 20%:HBlank :
HFront = HBack = 0,2*HBlank HBlankp = 1,8*HBlank
RozwiÄ…zanie: VFreq=60Hz
1. VActive = 1/VFreq - VBlank= 1/60Hz-2ms=16.67-2=14,67ms
2. HFreq=1/(VActive/(L/2))=1/(14,67ms/300)=1/0,0489ms=20,45kHz
3. HBlankp = 1,8*HBlank= 1,8*2µs =3.6µs
4. HActive = 1/HFreq - HBlankp = 1/(20,45kHz)- 3.6µs=48,9-3,6=45,3 µs
5. VBW=1/( HActive/K)=1/(45,3 µs/800)=17,66 MHz
Zadanie 3:
Wyznaczyć maksymalną częstotliwość odświeżania obrazu dla karty graficznej
generujÄ…cej obraz:
a) bez przeplotu
b) z przeplotem
o rozdzielczości 1600x1280 taktowanej zegarem VCLK=100MHz zakładając, że
minimalne czasy wygaszania pionowego i poziomego wynoszÄ… odpowiednio
HBlank=1µs i VBlank=1ms
RozwiÄ…zanie:
******************Synchronizacja pozioma***************************************************
HActive = K * 1/VCLK = 1600* 1/100 MHz = 16µs
a) 1/ HFreq = HActive + HBlank = 16µs + 1µs = 17µs
b) 1/ HFreq = HActive + HBlankp = 16µs + 1,8µs = 17,8µs
HBlankp = 1,8*HBlank
******************Synchronizacja pionowa***************************************************
a) VActive = L * 1/ HFreq = 1280* 17µs = 21,76 ms
b) VActive = L/2 * 1/ HFreq = 640* 17,8µs = 11,39 ms
a) 1/ VFreq = VActive + VBlank = 21,76 ms + 1 ms = 22,76 ms
b) 1/ VFreq = VActive + VBlank = 11,39 ms + 1 ms = 12,39 ms
a) VFreq = 1/ 22,76 ms = 43,9 Hz
b) VFreq = 1/ 12,39 ms = 80,7 Hz
Uwagi:
a) zbyt mała częstotliwość VFreq w trybie bez przeplotu /migotanie
obrazu/
Procesor TMS34010 blok współpracy z monitorem
1 Rejestry środowiskowe bloku współpracy z monitorem TMS34010
1
1
1
1 Przebiegi sygnałów w czasie wyświetlania jednej linii obrazu
1
1
1
Rejestry środowiskowe bloku współpracy z monitorem TMS34010
1 Przebiegi sygnałów w czasie wyświetlania jednego obrazu
1
1
1
1 Wyświetlanie obrazu - charakterystyka czasowa
1
1
1
Zadanie 4
Wyznaczyć wartości rejestrów środowiskowych bloku współpracy z monitorem procesora
graficznego TMS34010 określających parametry czasowe sygnałów synchronizacji dla
obrazu generowanego w trybie:
- rozdzielczość KxL=1152x870
- częstotliwość odświeżania VFreq=75 Hz
- pasmo przenoszenia VBW=100 MHz. - {VCLK}
Zweryfikować parametry czasowe obliczone z rzeczywistymi.
Macintosh
1152x870
HFreq [kHz]
A [ µs ] 12.98
B [ µs ] 1.0
C [ µs ] 0.23
D [ µs ] 11.52
E [ µs ] 0.23
VFreq [Hz] 75.0
O [ms] 13.33
P [ ms ] 1.6
Q [ ms ] 0.2
R [ ms ] 11.33
S [ ms ] 0.2
VideoClock [MHz] 100,0
Rejestry Macintosh
1152x870
HESYNC
HEBLNK
HSBLNK
HTOTAL
VESYNC
VEBLNK
VSBLNK
VTOTAL
ROZWIZANIE:
DANE: Rozdzielczość 1152 x 870
VFreq = 75 Hz
VCLK = 100 MHz
************OBLICZENIA WSTPNE*****************
O =1/VFreq = 1/(75 Hz) = 13.33 ms
HActive = D =1152"1/VCLK =1152*10 ns = 11.52 µs
**********************************************************
*********VERTICAL**********************************
Dobieramy VBlank
VBlank =1/VFreq - (HActive+HBlank) "L
VBlank ma wartość maksymalną dla HBlank=0 stąd:
VBlank << 1/VFreq - (HActive+0) "870 = 13.33 - 10.02 =3.31 ms:
Przyjmujemy VBlank = 2 ms
VBlank = P + Q + S
Q = S = H" (10÷20%) VBlank przyjmujemy10% stÄ…d:
Q = S = 0.2 ms
P = 1.6 ms
R = VActive = 1/VFreq - VBlank = 13.33 - 2 =11.33 ms
A = 1/HFreq = VActive/ 870 =11.33 ms / 870 =12.98 µs
HBlank = A - D = 1/HFreq - HActive =12.98 - 11.52 =1.46 µs
HBlank = B + C + E
C = E = H" (10÷20%) HBlank przyjmujemy C=E=0.23 µs (H"15% ) stÄ…d:
C = E = 0.23 µs
B = HBlank - C - E = 1.46 -0.23-0.23 = 1 µs
*********************************************************
*********HORIZONTAL******************************
Dobieramy HBlank
HBlank + HActive =(1/VFreq-VBlank) / 870
HBlank ma wartość maksymalną dla VBlank=0 stąd:
HBlank + HActive << (1/VFreq-0) / 870= 13.33 ms / 870 = 15.32 µs
HBlank << 15.32 µs - HActive = 15.32 - 11.52 = 3.8 µs
Przyjmujemy HBlank = 1.46 µs
HBlank = B + C + E
C = E = H" (10÷20%) HBlank
przyjmujemy C = E = 0.23 µs stÄ…d B =1.46 - 0.23 - 0.23 = 1 µs
A = 1/HFreq = HActive + HBlank =11.52+1.46 = 12.98 µs
R = VActive = 1/HFeq " 870 = 11.33
-s
VBlank = O - R = 1/VFreq - VActive =13.3 - 11.3 =2 ms
VBlank = P + Q + S
Q = S = 0.2 ms H" (10÷20%) VBlank
P = 1.6 ms
*********************************************************
Dla HSync jednostka taktu Przeliczenie Dla VSync jednostka taktu
Przeliczenie na takty
1/VCLK= 10 ns na takty 1/HFreq= A= 12.98 µs
A 12.98 µs 1298 O 13.3 ms 13.3 ms/(12.98 µs)=1024
B 1.00 µs 100 P 1.6 ms 1.6 ms/(12.98 µs)=123
C 0.23 µs 23 Q 0.2 ms 0.2 ms/(12.98 µs)=15
D 11.52 µs 1152 R 11.3 ms 11.3 ms/(12.98 µs)=870
E 0.23 µs 23 S 0.2 ms 0.2 ms/(12.98 µs)=15
Rejestry H (uwzględniona numeracja taktów od 0)
HESYNC+1 B = 100
HEBLNK+1 B + C = 100 + 23 = 123
HSBLNK+1 B + C + D = 123 + 1152 = 1275
HTOTAL+1 B + C + D + E =A = 1275 + 23= 1298
Rejestry V
(uwzględniona numeracja taktów od 0)
VESYNC+1 P = 123
VEBLNK+1 P + Q = 123 + 15 = 138
VSBLNK+1 P + Q + R = 138 + 870 = 1008
VTOTAL+1 P + Q + R + S =O = 1008 + 15= 1023
Zweryfikować parametry czasowe obliczone z rzeczywistymi
Wartości rzeczywiste
Wartości obliczone
1/VCLK= 10 ns
A 12.98 µs 1298" 10 ns=12.98 µs
B 1.00 µs 100" 10 ns=1.00 µs
C 0.23 µs 23" 10 ns=0.23 µs
D 11.52 µs 1152" 10 ns=11.52 µs
E 0.23 µs 23" 10 ns=0.23 µs
Wartości rzeczywiste
Wartości obliczone
1/HFreq= A= 12.98 µs
O 13.3 ms 1024" 12.98 µs = 13.291 ms
P 1.6 ms 123" 12.98 µs = 1.596 ms
Q 0.2 ms 15" 12.98 µs = 0.195 ms
R 11.3 ms 870" 12.98 µs = 11.293 ms
S 0.2 ms 15" 12.98 µs = 0.195 ms
Literatura: Grafika Komputerowa metody i narzędzia. Jan Zabrodzki
Rozdz. 9
9.22 Procesory graficzne
TMS 34010
TMS 34020
Układ współpracy z urządzeniami zobrazowania
“!
Rejestry wewnętrzne:
HESYNC+1
WYNIKI
Zadanie 1
o VActive=1/VFreq - VBlank
DANE WYNIK
VFreq 60 [Hz] VActive [ms] 14,67
VBlank 2 [ms]
HBlank 2 [µs]
DANE WYNIK
K L HFreq [kHz] HActive [µs] VBW [MHz]
Hercules 720 348 23,73 40,15 17,93
o HFreq=1/(VActive/L)
EGA 640 350 23,86 39,90 16,04
VGA 640 480 32,73 28,56 22,41
o HActive=1/HFreq-HBlank
SVGA 800 600 40,91 22,44 35,64
o VBW=1/(HActive/K)
1024 768 52,36 17,10 59,89
TIGA 1280 1024 69,82 12,32 103,87
1600 1280 87,27 9,46 169,16
Zadanie 2 z przeplotem
DANE WYNIK
o VActive=1/VFreq - VBlank
VFreq 60 [Hz] VActive [ms] 14,67
VBlank 1 [ms]
HBlank 2 [µs] HBlankp 3,6 [µs]
o HFreq=1/(VActive/(L/2))
DANE WYNIK
o HBlank =1,8*HBlank
p
K L HFreq [kHz] HActive [µs] VBW [MHz]
o HActive=1/HFreq-HBlank
p
SVGA 800 600 20,45 45,29 17,66
1024 768 26,18 34,59 29,60
o VBW=1/(HActive/K)
TIGA 1280 1024 34,91 25,05 51,11
1600 1280 43,64 19,32 82,83
Zadanie 3
o HBlank =1,8*HBlank
p
DANE WYNIK o HActive=K*1/VCLK
VCLK 100 [MHz] HActive [µs] 16,00
(a)
VBlank 1 [ms]
1/HFreq=HActive+HBlank
HBlank 1 [µs] HBlankp 1,8[µs]
VActive=L*1/HFreq
K L
1600 1280 1/VFreq=VActive+Vblank
VFreq=
WYNIK
(a) bez przeplotu (b) z przeplotem
(b)
1/HFreq [µs] 17 17,8 1/HFreq=HActive+HBlank
p
VActive [ms] 21,76 11,39
VActive=L/2*1/HFreq
1/VFreq [ms] 22,76 12,39
1/VFreq=VActive+Vblank
VFreq [Hz] 43,9 80,7
VFreq=
Wyszukiwarka
Podobne podstrony:
t cyfrowych procesow graficznych2?t cyfrowych procesow graficznych2?t cyfrowych procesow graficznych2 wskt cyfrowych procesow graficznych2 kpet cyfrowych procesow graficznych2 kpet cyfrowych procesow graficznych2?t cyfrowych procesow graficznych2?t cyfrowych procesow graficznych2 kpet cyfrowych procesow graficznych2 kpeprocesywięcej podobnych podstron