Autor Wątek: Spectrum i wyświetlanie obrazu na telewizorze - czy da się zrobić prawdziwy interlace?  (Przeczytany 36383 razy)

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
Nie tyle telewizor co standard PAL, który wymaga 50 półobrazów (w przypadku ZXa jest to 50 ramek będących pełnym obrazem) na sekundę. Dość dobrze tłumaczy to Chris Smith na swojej stronie (http://www.zxdesign.info/vidresearch.shtml i następne).
(swoją drogą ciekawe czy prędzej jego książka stanieje do rozsądnego poziomu, czy ja się złamię... )
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Nie tyle telewizor co standard PAL, który wymaga 50 półobrazów (w przypadku ZXa jest to 50 ramek będących pełnym obrazem) na sekundę.

Tak zacząłem się zastanawiać... Skoro Spectrum wyświetla 50 pełnych ramek, a TV interpretuje je jako 25 półobrazów - to teoretycznie można programowo osiągnąć podwójną rozdzielczość w pionie. Telewizor usiłuje wyświetlać 625 linii, rysując co drugą linię - raz 312, raz 313. Czyli podmieniając zawartość ekranu dokładnie co ramkę (wiem, mało realne, jeśli to nie jest 128k lub Timex), uzyskujemy 384 piksele w pionie.
Czy nikt na to dotąd nie wpadł, czy popełniłem gdzieś błąd w rozumowaniu?

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
Nie ma lekko.
Oba tryby - (interlaced i progressive) różnią się impulsami synchronizacji.
Spectrum wyświetla 50 ramek które TV interpretuje jako 50 pełnych obrazów o połowie wysokości.
A ULA nie przeprogramujesz... :)
Machines should work. People should think.

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
> Nie tyle telewizor co standard PAL, który wymaga 50 półobrazów (w przypadku ZXa jest to 50 ramek będących pełnym obrazem) na sekundę

>Tak zacząłem się zastanawiać... Skoro Spectrum wyświetla 50 pełnych ramek, a TV interpretuje je jako 25 półobrazów

50 nie 25 :) Telewizor odświeża obraz 50 razy na sekundę i tyle samo razy Spectrum wysyła sygnał do telewizora.

Owszem istnieje coś takiego jak przeplot, po angielsku interlace. Stary telewizor kineskopowy odświeżając ekran rysuje co drugą linię bo inaczej by nie zdążył. Jednak te jego linie są dość rozmazane tak więc z pewnej odległości po prostu nie jesteśmy w stanie w ogóle zobaczyć że to jest co druga linia, wszystko się zlewa w jedną całość. Tak więc na jakieś specjalne efekty bym tu nie liczył.

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Nie ma lekko.
Oba tryby - (interlaced i progressive) różnią się impulsami synchronizacji.
Spectrum wyświetla 50 ramek które TV interpretuje jako 50 pełnych obrazów o połowie wysokości.
A ULA nie przeprogramujesz... :)

To co piszesz przeczy podstawowym założeniom telewizji (analogowej), zatem i systemu PAL...
Przede wszystkim ULA pracuje zawsze w trybie interlaced.
Każdą ramkę (1/50 s) telewizor PAL zinterpretuje zawsze jako półobraz i wyświetli ją co drugą linię.
Półobraz to jest zawsze zbiór linii parzystych lub nieparzystych na całą wysokość ekranu.
Zatem?
« Ostatnia zmiana: 2014.11.24, 21:56:32 wysłana przez trojacek »

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
50 nie 25 :) Telewizor odświeża obraz 50 razy na sekundę i tyle samo razy Spectrum wysyła sygnał do telewizora.

Dokładnie, mózg jedno, palce co innego ;)

Cytuj
Owszem istnieje coś takiego jak przeplot, po angielsku interlace. Stary telewizor kineskopowy odświeżając ekran rysuje co drugą linię bo inaczej by nie zdążył.

Jednak nie. KAŻDY telewizor konsumujący sygnał PAL będzie obraz wyświetlał według tej zasady - raz linie parzyste, raz nieparzyste. Nawet najnowszy LED 800 Hz. Jedyna różnica, że nie ma on kineskopu i nie lata plamka po ekranie - ale dane z wejścia będą dalej interpretowane jako półobrazy.

Cytuj
Jednak te jego linie są dość rozmazane tak więc z pewnej odległości po prostu nie jesteśmy w stanie w ogóle zobaczyć że to jest co druga linia, wszystko się zlewa w jedną całość. Tak więc na jakieś specjalne efekty bym tu nie liczył.

No ale to mnie właśnie zastanawia... To rozmazanie pozwalało na CRT robić rozmaite kolorowe gigascreeny. Ale co, jeśli TV CRT jest dobrej jakości lub jest to LCD/LED, który powinien wyraźnie odmalować każdy piksel obrazu? Nie będzie żadnego (lub pomijalne) rozmazania przecież. I nie chodzi mi o osiąganie nowych kolorów, a tylko i wyłącznie podwojenie rozdzielczości pionowej.

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Cytuj
> Owszem istnieje coś takiego jak przeplot, po angielsku interlace. Stary telewizor kineskopowy odświeżając ekran rysuje co drugą linię bo inaczej by nie zdążył.

> Jednak nie. KAŻDY telewizor konsumujący sygnał PAL będzie obraz wyświetlał według tej zasady - raz linie parzyste, raz nieparzyste. Nawet najnowszy LED 800 Hz

Masz oczywiście rację. Niemniej standard PAL został tak zdefiniowany a nie inaczej właśnie dlatego że ówczesne telewizory by nie nadążały rysować każdą linię i coś ludzie musieli wykombinować :)

Od dawna oczywiście nie było by to problemem ale standard utrzymał się niezmieniony przez długie lata, aż zaczęły go wypierać nowsze standardy.

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
To co piszesz przeczy podstawowym założeniom telewizji (analogowej), zatem i systemu PAL...
Owszem standard TV nie przewiduje nadawania obrazu w trybie progresywnym (co nie oznacza że on nie istnieje, np. 288p)
Zobacz sobie np. dokumentację do ay-3-8500, on generuje obraz tak samo - nie bawi się w półlinie i półobrazy tylko po 312 wierszach wymusza powrót plamki na początek obrazu.
Jak rozumiem, dla odbiornika analogowego oznacza to że z jego punktu widzenia wyświetla on 50*sec ramkę parzystą...
Przyjrzałem się też właśnie źródłom ULA z opencores... na ile kojarzę verilog, też nie ma tam podziału na ramkę parzystą/nieparzystą, liczniki lecą w kółko 0->447 (h) i 0->311(v)
Machines should work. People should think.

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
Przyjrzałem się też właśnie źródłom ULA z opencores... na ile kojarzę verilog, też nie ma tam podziału na ramkę parzystą/nieparzystą, liczniki lecą w kółko 0->447 (h) i 0->311(v)
Swoją drogą może to być wyzwanie dla ludzi z maszynami ZX128 na FPGA... tak zmodyfikować kod ULA, by generował obraz w prawdziwym trybie PAL (576i) pobierając dane dla ramek parzystych i nieparzystych z obu obszarów ekranu :>
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Swoją drogą może to być wyzwanie dla ludzi z maszynami ZX128 na FPGA... tak zmodyfikować kod ULA, by generował obraz w prawdziwym trybie PAL (576i) pobierając dane dla ramek parzystych i nieparzystych z obu obszarów ekranu :>

No właśnie tego dotyczyły moje dywagacje! Czy będzie widoczny efekt w postaci wyższej rozdzielczości pionowej!

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Zobacz sobie np. dokumentację do ay-3-8500, on generuje obraz tak samo - nie bawi się w półlinie i półobrazy tylko po 312 wierszach wymusza powrót plamki na początek obrazu.
Jak rozumiem, dla odbiornika analogowego oznacza to że z jego punktu widzenia wyświetla on 50*sec ramkę parzystą...
Przyjrzałem się też właśnie źródłom ULA z opencores... na ile kojarzę verilog, też nie ma tam podziału na ramkę parzystą/nieparzystą, liczniki lecą w kółko 0->447 (h) i 0->311(v)

I większość ośmiobitowców tak generuje obraz, bo ich pionowa rozdzielczość jest mniejsza niż 312.
I stąd moje przemyślenia, że można by jednak oszukać oko i poudawać półobrazy :)

Admin - można to jakoś przekierować do nowego wątku? Bo straszny offtop się zrobił...

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
No właśnie tego dotyczyły moje dywagacje! Czy będzie widoczny efekt w postaci wyższej rozdzielczości pionowej!
No to ICE czy inny Quartus w dłoń :)
Na mój gust powinno zadziałać (ale to byłby rąbnięty tryb graficzny - każde 16 linii by miało odmienne atrybuty dla wierszy parzystych i nieparzystych :) )
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
No to ICE czy inny Quartus w dłoń :)

Ale po co?
128k lub Timex w dłoń.

Gryzor

  • *****
  • Wiadomości: 2010
  • Miejsce pobytu:
    Warszawa
ZX Spectrum jak najbardziej generuje obraz progressive ale nie HD :-)

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Co nie zmienia faktu, że sygnał PAL jest interlaced. Tyle, że w każdym półobrazie idą wszystkie linie obrazu ;)