|
|||||||||||||||||||||||||
| Ważna wiadomość: Artykuły poświęcone konwersji pomiędzy różnymi formatami video znajdziesz tutaj |
![]() ![]() |
czw, 26 lis 2009 - 22:16
Post
#1
|
|
![]() ®Profesjonalista Grupa: Administrator Postów: 2,071 Rozpoczętych tematow: 71 Dołączył: pon, 28 lis 05 Skąd: z Kondominium Nr użytkownika: 383 |
Ile punktów możemy uzyskać z analogowego obrazu? Przyjrzyjmy się niektórym pojęciom i danym technicznym analogowych systemów telewizyjnych aby lepiej zrozumieć skąd wzięły się pewne konwencje stosowane podczas przechwytywania obrazu... i zastanowić się czy mają one sens
Pojęcia Proporcje piksela (ang. "Pixel aspect ratio") W skrócie PAR. Stosunek długości boków piksela. W niniejszym tekście przyjmujemy zapis "szerokość:wysokość". Linie (poziomej) rozdzielczości (ang. "Lines of (horizontal) resolution") Zwane też "TV lines per picture height", w skrócie TVL, TVL/PH, TVLh lub LoHR. Jest to pojęcie stosowane powszechnie w przypadku analogowych sygnałów wideo i urządzeń stosowanych do ich odtwarzania. Jest to ilość możliwych do rozróżnienia pionowych linii obrazu przy założeniu, że szerokość ekranu (w zwykłych jednostkach długości, np. centymetrach lub calach) jest równa jego wysokości (tzn. ekran jest kwadratowy). Jeśli np. w instrukcji obsługi telewizora (załóżmy że jest to tradycyjny odbiornik kineskopowy czyli CRT) mamy podaną wartość TVL=450, a ekran ma proprcje 4:3 (jak prawie wszystkie telewizory CRT), to może on wyświetlić maksymalnie 450*(4/3)=600 linii pionowych. Linie skanowania (ang. "Scan lines") Części sygnału opisujące poszczególne linie obrazu i okresy wygaszania. Są to dyskretne jednostki a ich ilość w jednej klatce wideo jest ściśle określona dla każdego analogowego systemu telewizyjnego. NTSC i PAL-M ma 525 linii, PAL i SECAM 625. Aktywne linie skanowania (ang. "Active scan lines") Linie skanowania które zawierają linie autentycznego ("aktywnego") obrazu. KOD NTSC, PAL-M = 486 PAL-I/I-1 = 582 PAL, SECAM = 576 Dla systemów PAL-I/I-1, PAL oraz SECAM "najwyższa" i "najniższa" linia tylko w połowie zawiera aktywny obraz ."Najwyższa" linia (pierwsza linia górnego półobrazu) zawiera aktywny obraz tylko w prawej połowie, zaś "najniższa" linia (ostatnia linia dolnego półobrazu) zawiera aktywny obraz tylko w lewej połowie. Okres wygaszania poziomego (ang. "Horizontal blanking interval") W skrócie HBI. Okres w którym promień elektronowy "powraca" do lewego brzegu kineskopu po "narysowaniu" poziomej linii obrazu. W analogowych systemach telewizyjnych istnieje zarezerwowana część sygnału (poza obszarem aktywnym) przeznaczona na czas trwania tego okresu. Okres wygaszania pionowego (ang. "Vertical blanking interval") W skrócie VBI. Okres w którym promień elektronowy "powraca" na górę kineskopu po "narysowaniu" półobrazu. Część linii skanowania zawartych w okresie wygaszania pionowego obecnie wykorzystuje się do transmisji dodatkowych informacji, np. teletekstu czy Closed Captions. Rozszerzony czynnik Kella (ang. "Extended Kell Factor") Czynnik określający efektywną rozdzielczość obrazu jaką możemy postrzegać. Rozszerzony czynnik Kella stosujemy do dyskretnych jednostek (takich jak linie skanowania lub piksele), zatem nie dotyczy on rozdzielczości poziomej analogowego sygnału telewizyjnego (w poziomie taki sygnał nie jest podzielony na dyskretne jednostki - jego rozdzielczość musimy obliczać w oparciu o szerokość pasma przeznaczonego dla obrazu). W przypadku sygnałów cyfrowych rozszerzony czynnik Kella stosujemy zarówno w poziomie jak i w pionie, ponieważ składa się on z pikseli. Odwrotność czynnika Kella zastosujemy obliczając ilu pikseli potrzeba aby opisać obraz o wyliczonej analogowej rozdzielczości. Wartość czynnika Kella była wyznaczana przy pomocy subiektywnych testów i podlegała rewizjom, więc do wielkości obliczanych z jego udziałem należy podchodzić z ostrożnością. Powszechnie przyjmowaną wartością jest 1/sqrt(2) czyli około 0.7. Teoretyczne maksimum to 1 (wyższe wartości są lepsze). Rozdzielczość Systemy 625/50 - PAL (B/G, B1, D/K, D1 (1), K1, I/I-1, H, L, N, Nc) & SECAM (B/G, D/K, H, K1, L/L') Rozdzielczość pionową tych systemów już znamy - mają one 574 pełne linie i 2 półlinie zawierające obraz (wyjatkiem jest I/I-1 który ma 580 pełnych linii i 2 półlinie, lecz obecnie te "dodatkowe" linie na ogół niczego nie zawierają). Aby prawidłowo zachować przeplot dla dalszej obróbki musimy więc przechwytywać obraz przy rozdzielczości pionowej 576. Na tym etapie nie stosujemy czynnika Kella. Aby wywnioskować jaką rozdzielczość poziomą możemy "wycisnąć" z tych systemów, przyjrzyjmy się szerokości pasma obrazu. KOD system pasmo aktywne linie Nc 4.2 MHz 576 B/G, B1, D1, H, N 5.0 MHz 576 I/I-1 5.5 MHz 582 D/K, K1, L/L' 6.0 Mhz 576 W każdej sekundzie mamy 25 klatek, a każda klatka ma 625 linii skanowania (pamiętajmy że musimy uwzględnić wszystkie linie, nie tylko aktywne). KOD 1 / (25 * 625) = 0.000064 Zatem jedna linia trwa 0.000064 s czyli 64 µs. Wiemy że HBI ~= 12 µs (a dla PAL-N 11.52 µs). KOD 64.00 µs - 12.00 µs = 52.00 µs 64.00 µs - 11.52 µs = 52.48 µs (PAL-N) Otrzymujemy czas trwania aktywnego obrazu w linii - 52 µs (52.48 µs dla PAL-N). Możemy obliczyć jaką część linii zajmuje aktywny obraz. KOD 52.00 / 64.00 = 0.8125 52.48 / 64.00 = 0.8200 Każdy cykl reprezentuje dwie wartości luminancji. Możemy zatem dowiedzieć się ile "punktów" luminancji może reprezentować sygnał o danej szerokości pasma. KOD Nc: ( 4200000 / (25 * 625) ) * 2 * 0.8125 ~= 437 {TVL=328} B/G, B1, D1, H: ( 5000000 / (25 * 625) ) * 2 * 0.8125 = 520 {TVL=390} N: ( 5000000 / (25 * 625) ) * 2 * 0.8200 ~= 525 {TVL=394} I/I-1: ( 5500000 / (25 * 625) ) * 2 * 0.8125 = 572 {TVL=429} D/K, K1, L/L': ( 6000000 / (25 * 625) ) * 2 * 0.8125 = 624 {TVL=468} Wiemy już ile da się wycisnąć z luminancji. A co z chrominancją? PAL używa modelu kolorów YUV, zaś SECAM i PAL-N YDbDr. Oba mają dwie składowe chrominancji, zaś każda z nich teoretycznie ma ma pasmo o szerokości 1.3MHz. KOD ( 1300000 / (25 * 625) ) * 2 * 0.8125 ~= 136 ( 1300000 / (25 * 625) ) * 2 * 0.8200 ~= 137 {PAL-N} Jednak podnośna chrominancji dla PAL to około 4.43 MHz (dla wariantu Nc około 3.58), a dla SECAM 4.25 MHz (składowa Db) i 4.4 MHz (składowa Dr), więc w praktyce szerokość pasma chrominancji jest inna. KOD PAL Nc: 4.2 - 3.58 = 0.62 B/G, B1, D1, H, N: 5.0 - 4.43 = 0.57 I/I-1: 5.5 - 4.43 = 1.07 D/K, K1, L: 6.0 - 4.43 = 1.57 SECAM B/G, H: 5.0 - 4.25 = 0.75 5.0 - 4.4 = 0.6 D/K, K1, L/L': 6.0 - 4.25 = 1.75 6.0 - 4.4 = 1.6 Wartości wyższe od 1.3 MHz nie są jednak możliwe do uzyskania, ponieważ formaty studyjne PAL i SECAM przechowują chrominancję w paśmie o szerokości 1.3 MHz. KOD PAL Nc: ( 620000 / (25 * 625) ) * 2 * 0.8125 ~= 65 B/G, B1, D1, H, N: ( 570000 / (25 * 625) ) * 2 * 0.8125 ~= 60 I/I-1: ( 1070000 / (25 * 625) ) * 2 * 0.8125 ~= 112 SECAM (B/G, H) Db: ( 750000 / (25 * 625) ) * 2 * 0.8125 = 78 Dr: ( 600000 / (25 * 625) ) * 2 * 0.8125 ~= 63 Po wykonaniu tych wszystkich obliczeń możemy pokusić się o skompletowanie tabelki przybliżonych rozdzielczości dla systemów 625/50. Zacznijmy od PAL: KOD system szerokość Y szerokość U/V PAL Nc 437 65 PAL B/G, B1, D1, H 520 60 PAL N 525 60 PAL I/I-1 572 112 PAL D/K, K1, L 624 136 Przejdźmy do SECAM: KOD system szerokość Y szerokość Db szerokość Dr SECAM B/G, H 520 78 63 SECAM D/K, K1, L/L' 624 136 136 Po zastosowaniu odwrotności rozszerzonego czynnika Kella (czyli sqrt(2)) do rozdzielczości poziomej (do pionowej nie możemy go zastosować z powodu istnienia dyskretnych linii skanowania i przeplotu) otrzymujemy minimalne rozdzielczości przechwytywania. KOD Nc 618x576 -> 624x576 B/G, B1, D1, H 736x576 N 742x576 -> 752x576 I/I-1 809x576 -> 816x576 D/K, K1, L/L' 882x576 -> 896x576 Systemy 525/60 - NTSC (M, J) & PAL-M Podobnie jak dla 625/50, tak i tu rozdzielczość pionowa jest już ustalona - 486 linii. Jednak według wszelkich zaleceń należy digitalizować tylko 480 linii. Nawet gdybyśmy chcieli przechwycić wszystkie 486, sprzęt nam na to nie pozwoli. Co mamy w poziomie? Spójrzmy na szerokość pasma obrazu. KOD pasmo aktywne linie 4.2 MHz 486 W każdej sekundzie mamy 30/1.001 klatek, a każda klatka ma 525 linii skanowania (pamiętajmy że musimy uwzględnić wszystkie linie, nie tylko aktywne). KOD 1 / (30/1.001 * 525) = 0.000063(5) Zatem jedna linia trwa 0.000063(5) s czyli 63.(5) µs. Wiemy że HBI ~= 10.8 µs. KOD 63.(5) µs - 10.8 µs = 52.7(5) µs Otrzymujemy czas trwania aktywnego obrazu w linii - 52.7(5) µs. Możemy obliczyć jaką część linii zajmuje aktywny obraz. KOD 52.7(5) / 63.(5) ~= 0.83 Każdy cykl reprezentuje dwie wartości luminancji. Możemy zatem dowiedzieć się ile "punktów" luminancji może reprezentować sygnał o danej szerokości pasma. KOD ( 4200000 / (30/1.001 * 525) ) * 2 * 0.83 ~= 444 {TVL=333} Wiemy już ile da się wycisnąć z luminancji. A co z chrominancją? PAL-M używa modelu kolorów YUV, zaś NTSC YIQ. Oba mają dwie składowe chrominancji. W przypadku PAL-M każda z nich ma pasmo o szerokości 1.3MHz. W NTSC składowa I ma pasmo o szerokości 1.3 Mhz, zaś składowa Q 0.4 MHz. KOD ( 1300000 / (30/1.001 * 525) ) * 2 * 0.83 ~= 138 {NTSC, składowa I} ( 400000 / (30/1.001 * 525) ) * 2 * 0.83 ~= 43 {NTSC, składowa Q} ( 1300000 / (30/1.001 * 525) ) * 2 * 0.83 ~= 138 {PAL-M, składowe U i V} Jednak podnośna chrominancji dla tych systemów to około 3.58 MHz, więc w praktyce szerokość pasma chrominancji jest inna. KOD 4.2 - 3.58 = 0.62 ( 620000 / (30/1.001 * 525) ) * 2 * 0.83 ~= 66 Po wykonaniu tych wszystkich obliczeń możemy pokusić się o skompletowanie tabelki przybliżonych rozdzielczości dla systemów 525/60. KOD system szerokość Y szerokość I/U szerokość Q/V NTSC M, J 444 66 43 PAL M 444 66 66 Po zastosowaniu odwrotności rozszerzonego czynnika Kella (czyli sqrt(2)) do rozdzielczości poziomej (do pionowej nie możemy go zastosować z powodu istnienia dyskretnych linii skanowania i przeplotu) otrzymujemy minimalną rozdzielczość przechwytywania. KOD 628x480 -> 640x480 VHS & S-VHS Kasety VHS są popularnym źródłem obrazu dla kart przechwytujących, więc warto wykonać obliczenia również dla nich. VHS i S-VHS zachowują strukturę linii poziomych nagrywanego obrazu, więc rozdzielczość pionowa dla 625/50 to 576, a dla 525/60 480. Pasmo luminancji ma szerokość około 3 MHz w przypadku VHS, zaś 5 MHz dla S-VHS. Poszczególne składowe chrominancji mają szerokość pasma około 0.6 MHz dla VHS, dla S-VHS tylko 0.4 MHz. KOD 525/60 VHS (luma): ( 3000000 / (30/1.001 * 525) ) * 2 * 0.83 ~= 317 {TVL=238} VHS (chroma): ( 600000 / (30/1.001 * 525) ) * 2 * 0.83 ~= 64 {TVL=48} S-VHS (luma): ( 5000000 / (30/1.001 * 525) ) * 2 * 0.83 ~= 528 {TVL=396} S-VHS (chroma): ( 400000 / (30/1.001 * 525) ) * 2 * 0.83 ~= 43 {TVL=33} 625/50 VHS (luma): ( 3000000 / (25 * 625) ) * 2 * 0.8125 = 312 {TVL=234} VHS (chroma): ( 600000 / (25 * 625) ) * 2 * 0.8125 ~= 63 {TVL=48} S-VHS (luma): ( 5000000 / (25 * 625) ) * 2 * 0.8125 = 520 {TVL=390} S-VHS (chroma): ( 400000 / (25 * 625) ) * 2 * 0.8125 ~= 42 {TVL=32} Tabelka: KOD system szerokość (luma) szerokość (chroma) wysokość 525/60 VHS 317 64 486 625/50 VHS 312 63 576 525/60 S-VHS 528 43 486 625/50 S-VHS 520 42 576 Po zastosowaniu odwrotności rozszerzonego czynnika Kella (czyli sqrt(2)) do rozdzielczości poziomej (do pionowej nie możemy go zastosować z powodu istnienia dyskretnych linii skanowania i przeplotu) otrzymujemy minimalne rozdzielczości przechwytywania. KOD 525/60 VHS 448x480 625/50 VHS 440x576 -> 448x576 525/60 S-VHS 748x480 -> 752x480 625/50 S-VHS 736x576 Wszystkie powyższe obliczenia wykonałem z możliwie dużą dokładnością (choć bez nadgorliwości), lecz w wielu miejscach konieczne były zaokrąglenia do 1 piksela. Gdy źródła podawały sprzeczne informacje, wybierałem tą która wydawała mi się najdokładniejsza (lub, w ostateczności, najbardziej popularna). Zdecydowałem się przyjąć (dość odważne) założenie, że rozszerzony czynnik Kella (mniej więcej) odpowiada rzeczywistym zjawiskom. (1) System PAL-D1 został stworzony na potrzeby Polski. Wprowadzono go aby umożliwić jednoczesną transmisję dźwięku stereo zarówno w analogowym formacie A2 (a konkretnie w wariancie czeskim) jak i cyfrowym NICAM-728. Standard ITU-R BT.601-6 Międzynarodowa Unia Telekomunikacji ustanowiła standard BT.601-6 aby ujednolicić metody digitalizacji sygnałów analogowych systemów telewizyjnych będących w użyciu. Aby ułatwić konstrukcję sprzętu, ustalono jedną częstotliwość próbkowania sygnału luminancji (13.5 MHz) dla wszystkich systemów telewizyjnych (dla chrominancji jest to 13.5 Mhz / 2 = 6.75 MHz). Dla systemów 525/60 zalecana rozdzielczość to 720x480, zaś dla systemów 625/50 720x576. Rekomendowana przestrzeń kolorów wyjściowego sygnału cyfrowego to YCbCr 4:2:2 (czyli YUY2), zaś zakres wartości to 16-235 dla lumy i 16-240 dla chromy. Sprawdźmy ile próbek uzyskamy z jednej poziomej linii obrazu. KOD 13500000 Hz * 0.000064 s = 864 próbki na linię 13500000 Hz * 0.000063(5) s = 858 próbek na linię Ponadto KOD 1 / 13.5 MHz = 74.(074) ns oraz KOD 720 * 74.(074) ns = 53.(3) µs więc 720 pikselom odpowiada 53.(3) µs. Sprawdźmy ile pikseli przypada na aktywny obszar poziomej linii każdego z systemów telewizyjnych. KOD 52.7(5) µs / 74.(074) ns ~= 712 {NTSC-M,J & PAL-M} 52.48 µs / 74.(074) ns ~= 708 {PAL-N} 52 µs / 74.(074) ns ~= 702 {SECAM & PAL-B/G,B1,D/K,D1,K1,H,I/I-1,L/L',Nc} Piksele po bokach (2*9, 2*6 lub 2*4) są przeznaczone na tzw. overscan i nie powinny zawierać aktywnego obrazu. Zalecane proporcje piksela dla systemów 525/60 to 10:11 a dla 625/50 59:54. Co z tego wynika? KOD (59/54)*702 = 767 (59/54)*708 = 773.(5) (10/11)*712 ~= 647 A więc w zadnym przypadku nie otrzymujemy idealnych proporcji obrazu 4:3 (768x576 / 640x480). Przykład z życia wzięty: Chip Brooktree Bt878 / Bt879 Ten popularny chip (stosowany w dziesiątkach modeli kart do przechwytywania, min. w wielu produktach LeadTeka i Hauppauge) stosuje różne częstotliwości próbkowania dla systemów 525/60 (14.31818 MHz = 4 * 3.579545 MHz) i 625/50 (17.734475 MHz = 4 * 4.43361875 MHz). KOD 17734475 Hz * 0.000064 s = 1135 próbek na linię 14318180 Hz * 0.000063(5) s = 910 próbek na linię Dzięki wewnętrznemu skalowaniu chip zwraca na wyjściu obraz o żądanej rozdzielczości (po odrzuceniu obszarów HBI i VBI jest to maksymalnie 768x576 dla systemów 625/50, 720x480 dla systemów 525/60). Wewnętrzną przestrzenią kolorów jest YCbCr 4:2:2 (YUY2), lecz możemy zażądać konwersji do YCbCr 4:1:1, YV12, YUV9, Y8 (czarno-biały 8bpp), RGB32, RGB24, RGB16 lub RGB15. W przypadku wyjścia YCbCr stosowana jest skala 16-253 dla Y, 2-253 dla Cb i Cr. Gdy przechwytujemy przy rozdzielczości 720x480 lub 720x576, zalecenia ITU nie są przestrzegane - aktywny obraz wypełnia wszystkie 720 pikseli w poziomie. Zatem dla 525/60 stosowany jest PAR 2:3, dla 625/50 48:45. Więc jak przechwytywać? Nasze oszacowania maksymalnej rozdzielczości możliwej do uzyskania z poszczególnych źródeł są nieco optymistyczne (zwłaszcza te uwzględniające rozszerzony czynnik Kella). W praktyce jest wiele czynników degradujących sygnał (znaczenie ma np. jakość sprzętu i okablowania), a przez to ograniczających możliwą do uzyskania efektywną rozdzielczość obrazu. Jeśli formatem docelowym ma być płyta DVD-Video, najkorzystniej będzie użyć rozdzielczości zgodnej z tym standardem, czyli 720x576 (dla NTSC i PAL-M 720x480). Jeśli nasza karta skaluje obraz niezgodnie z zaleceniami ITU (tak jak opisany wyżej chip Bt878 / Bt 879), możemy użyć rozdzielczości 704x576 (dla NTSC i PAL-M 704x480), ale tylko dla transmisji nieanamorficznej. DVD-Video obsługuje anamorfizm tylko dla rozdzielczości 720x576 / 720x480, więc gdy obraz jest transmitowany anamorficznie (co zdarza się w analogowych transmisjach niektórych polskich kanałów, np. TVP Kultura, Polsat Sport i innych) wybierzmy 720x576. Gdy nasz format docelowy nie ma takich ograniczeń, możemy wybrać maksymalną rozdzielczość obsługiwaną przez naszą kartę przechwytującą (na ogół jest to 768x576 dla PAL i SECAM). W przypadku kart próbkujących z częstotliwościami wyższymi od 13.5 MHz (jak wyżej wymieniony chip Bt878 / Bt879) możemy dzięki temu uzyskać odrobinę więcej szczegółów. A co jeśli przechwytywany obraz zajmuje za dużo miejsca na dysku? Zalecam skorzystanie z jakiegoś stratnego kodeka przeznaczonego specjalnie do przechwytywania, np. MJPEG. Obniżenie rozdzielczości przechwytywania do 480x576 lub 352x576 spowoduje znacznie większą stratę jakości niż kompresja MJPEG przy porównywalnym rozmiarze pliku. A jeśli chcemy uzyskać VideoCD? Zdecydowanie odradzam przechwytywanie przy rozdzielczości 352x288 - to odbierze nam szansę prawidłowego usunięcia przeplotu. Karty przechwytujące na ogół po prostu odrzucają jeden półobraz gdy poprosimy je o taką rozdzielczość, a wtedy otrzymamy zacięcia obrazu ponieważ "zgubimy" co drugi moment w czasie (w przypadku materiałów kręconych z przeplotem). AviSynth oferuje wiele zaawansowanych metod usuwania przeplotu które dadzą świetną jakość. Praktycznie wszystkie karty przechwytujące używają YUY2 jako wewnętrznej przestrzeni kolorów, więc użyjmy jej do przechwytywania a oszczędzimy sobie niepotrzebnych konwersji w jego trakcie. Materiał w YUY2 możemy obrabiać w AviSynth, a potem skonwertować do YV12 jedną prostą instrukcją w skrypcie. Filtry? Tak... ale nie "w locie", dopiero potem! Filtrowanie obrazu w trakcie jego przechwytywania nie da tak dobrych efektów jak filtry AviSynth dobrane po dogłębnej analizie już przechwyconego obrazu. Każdy materiał wymaga indywidualnego podejścia (innej metody usuwania przeplotu, szumu i innych artefaktów). Linki Polski standard telewizji analogowej D1 (Wikipedia) Doom9's Analog Capture Guide World analogue television standards and waveforms NTSC, PAL and SECAM overview Der Karl's capture card aspect ratio for dummies WikiPedia Ostatnia aktualizacja: 22.08.2011 -------------------- Matryce kwantyzacji, kompilacje Xvida i inne rzeczy (aktualizacja 13.07.2011)
Oby trąba twojego słonia nie trafiła w kaktusy... |
|
|
|
![]() ![]() |
|
Wersja Lo-Fi | Aktualny czas: środa, 08 luty 2012 - 17:14 |