Welcome, Guest. Please login or register.


Author Topic: Grafikai trükkök (Read 59566 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3835
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
Grafikai trükkök
« on: 2013.April.06. 10:22:23 »
Tegnap egy nagy magyarazasban beugrott egy kerdes, azt sztm erdemes altalanositani, es nyitni egy ilyen grafikas topikot is.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3835
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
Re: Grafikai trükkök
« Reply #1 on: 2013.April.06. 10:31:23 »
Az elso targyalni valo kerdes pedig az lenne ebben a topikban, hogy mi is van itt az interlace- szel ?

Ugye a TV- k ugy mukodtek, valami frekvenciaproblemak, meg korabeli alkatreszproblemak, pontossagok, mittudomenhogymik miatt, hogy 50Hz- el felkepeket nyomtak a TV kepernyojere. Ez azt jelenti hogy egy 25Hz- es (25 FPS) kepnek egy kepkockaja ugy kerult a TV kepere, hogy eloszor a kepkocka mondjuk minden paratlan sora, tehat minden masodik vizszintes sor kerult a kepre, majd ha az kesz volt, akkor jott egy olyan (fel)kep ami minden paros sort irt a TV kepernyore. Es mivel ezt viszont 50Hz- en csinaltak, ezert kijott a 25 Hz a teljes kepekhez. Ezt a 2 felkepet aztan "osszemosta" gondolom a katodsugarcso, meg a pontatlansagok, meg a CRT kioltasi ideje, meg ilyenek.

Tehat lehetne- e az, hogy en mindig csak azokat a scanline- okat frissitem a memoriaban, amit nick epp a TV -re fog kuldeni, tehat a mindenkori paros vagy paratlan sorokat ? Es persze mindezt a "normal" vertikalisan 300 koruli sorszamnal gondolom, ha e fole kell menni ehhez, akkor mar nem buli, hisz mondjuk dupla ennyi sor fele az pont annyi, mintha nem csinaltunk volna semmit ... :)
Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4767
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 18.0 Firefox 18.0
    • View Profile
Re: Grafikai trükkök
« Reply #2 on: 2013.April.06. 11:12:27 »
Quote from: Z80System
Tehat lehetne- e az, hogy en mindig csak azokat a scanline- okat frissitem a memoriaban, amit nick epp a TV -re fog kuldeni, tehat a mindenkori paros vagy paratlan sorokat ? Es persze mindezt a "normal" vertikalisan 300 koruli sorszamnal gondolom, ha e fole kell menni ehhez, akkor mar nem buli, hisz mondjuk dupla ennyi sor fele az pont annyi, mintha nem csinaltunk volna semmit ... :)
Normál (nem interlace) módban a NICK minden sort elküld másodpercenként 50-szer. Megoldható a "kis felbontású" interlace is, de azzal természetesen láthatóan romlik a kép minősége.

Offline Z80System

  • EP addict
  • *
  • Posts: 3835
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
Re: Grafikai trükkök
« Reply #3 on: 2013.April.06. 11:21:07 »
Es akkor a tv jelek altal "lefedett" fuggoleges felbontas valahol 600 sor korul van valojaban ? Es nekunk a 300 sorunkat "duplazza" ra a nick a kepre ?
Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4767
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 18.0 Firefox 18.0
    • View Profile
Re: Grafikai trükkök
« Reply #4 on: 2013.April.06. 11:40:16 »
Nem duplázza. Az interlace valójában egyszerűen úgy működik, hogy a ~300 soros 50 Hz-es képet a függőleges szinkron időzítése fél sorral "remegteti" függőlegesen, és ez (a páros/páratlan sorok váltott megjelenítésével együtt) nagyobb felbontás illúzióját eredményezi. A normál mód csak annyiban különbözik, hogy nincs minden második képkocka eltolva függőlegesen. Commodore gépeken hasonló trükköt használnak a multicolor mód vízszintes felbontásának növelésére a hardware scroll használatával.

PC-s monitorokon van "double scan", amikor a video kimenet valóban duplázza a sorokat, de erre a nagy felbontás tartomány miatt van szükség, hogy a kisebb (pl. 320x240) felbontásoknál ne legyen látható "rés" a sorok között CRT monitoron, illetve azért, hogy a frissítési frekvenciák a "szabványos" tartományban maradjanak.
« Last Edit: 2013.April.06. 11:48:49 by IstvanV »

Offline Z80System

  • EP addict
  • *
  • Posts: 3835
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
Re: Grafikai trükkök
« Reply #5 on: 2013.April.06. 12:09:26 »
Na, akkor lassuk ertem- e:

Quote
Nem duplázza. Az interlace valójában egyszerűen úgy működik, hogy a ~300 soros 50 Hz-es képet a függőleges szinkron időzítése fél sorral "remegteti" függőlegesen, és ez (a páros/páratlan sorok váltott megjelenítésével együtt) nagyobb felbontás illúzióját eredményezi.
Aham, tehat akkor egy TV film ( mert az ugye a regi katodsugaras TV- knel, jelbemenetknel mindig interlace volt ), vagy az EP interlace modja azert nem tekintheto igazi fuggoleges 600 soros kepnek kiterjedesben (az egyes kepek, felkepek frissitesi frekijeit most ne vegyuk szamitasba), mert a felkepek sorai kozott ( idozitesi ertelemben ) nem volt "kihagyva" minden masodik sor, es raadasul a 2 felkep egymashoz kepest nem egy, hanem csupan fel pixelsorral voltak eltolva fuggolegesen, igy a ket felkep pixelsorai fuggolegesen "egymasra logtak" ... vagyis ez egyfajta CRT kepcsovon megvalositott hardver felkep BLEND megoldas volt, tisztan sosem lattuk a 600 pixelunket, mindig volt benne a masik felkepbol is ... igaz ?

Quote
A normál mód csak annyiban különbözik, hogy nincs minden második képkocka eltolva függőlegesen.
Es akkor az EP nem interlace modban ezekszerint kepes olyan jelet kiadni (nem ismerem a jelek szerkezetet) ami egy alapvetoen interlace felhasznalasra tervezett TV- t NEM INTERLACE modon hajt meg, vagyis nincs az TV- k jeleben kikenyszeritve az interlace mukodes, belefer a jel szabvanyokba, hogy az EP INKABB MEGSE KERI a felkepek kozotti fel pixelsoros fuggoleges eltolast, vagyis nem normal interlace TV adaskent akar uzemelni, HANEM VALOS, IGAZI 50Hz- es 300 soros "progressziv szkennelesu" modban ? Vagyis TV es interlace ide vagy oda, az EP normal modban egy 50Hz, 300 fuggoleges sor, progressziv szkennelesu modban mukodik ?

Quote
Commodore gépeken hasonló trükköt használnak a többszínű mód vízszintes felbontásának növelésére a hardware scroll használatával.
Vagyis komondoron "szoftverbol" van megvalositva az interlace... amihez akkor az kell, hogy a hw fuggoleges scrolljuk a mindenkori interlace- esiteni kepes felbontasuk FELEVEL vagy annal kisebb lepesekben kepes legyen mozgatni a kepet ... igaz ?

Quote
PC-s CRT monitorokon volt "double scan", amikor a video kimenet valóban duplázta a sorokat, de erre a nagy felbontás tartomány miatt volt szükség, hogy a kisebb (pl. 320x240) felbontásoknál ne legyen látható "rés" a sorok között.
Hmmm... hat ez mar a 15Khz - 30Khz kerdeskor, nem ? Ez interlace- tol mar fuggetlen kerdes ...
Z80 System

Offline endi

  • EP addict
  • *
  • Posts: 6830
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: Grafikai trükkök
« Reply #6 on: 2013.April.06. 12:49:21 »
Az interlace egy marha zseniális dolog amúgy. Lényegében fake motion blur-ra konvertálja az adatcsökkentést.
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline IstvanV

  • EP addict
  • *
  • Posts: 4767
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 18.0 Firefox 18.0
    • View Profile
Re: Grafikai trükkök
« Reply #7 on: 2013.April.06. 12:53:04 »
Quote from: Z80System
Aham, tehat akkor egy TV film ( mert az ugye a regi katodsugaras TV- knel, jelbemenetknel mindig interlace volt ), vagy az EP interlace modja azert nem tekintheto igazi fuggoleges 600 soros kepnek kiterjedesben (az egyes kepek, felkepek frissitesi frekijeit most ne vegyuk szamitasba), mert a felkepek sorai kozott ( idozitesi ertelemben ) nem volt "kihagyva" minden masodik sor, es raadasul a 2 felkep egymashoz kepest nem egy, hanem csupan fel pixelsorral voltak eltolva fuggolegesen, igy a ket felkep pixelsorai fuggolegesen "egymasra logtak"
A fél sort a 300 soros felbontáshoz képest értettem, tehát 600 soros felbontáshoz viszonyítva egy sor. A felbontás 600 sornak tekinthető, de ennek csak a fele jelenik meg másodpercenként 50-szer, a másik felét a látás és/vagy a monitor tehetetlensége adja, vagy újabb TV-ken digitális de-interlace. Kifejezetten TV-re készült (pl. sport) műsorok egyébként kihasználhatják azt, hogy az egymást követő félképeknek nem kell feltétlenül ugyanahhoz a teljes képhez tartozniuk, azaz lehetséges másodpercenként 50 mozgás fázist megjeleníteni. A TV filmek azonban többnyire a mozi filmekhez hasonlóan csak 24 fps sebességűek, amit a TV adásban 25-re konvertálnak.

Quote from: Z80System
Es akkor az EP nem interlace modban ezekszerint kepes olyan jelet kiadni (nem ismerem a jelek szerkezetet) ami egy alapvetoen interlace felhasznalasra tervezett TV- t NEM INTERLACE modon hajt meg, vagyis nincs az TV- k jeleben kikenyszeritve az interlace mukodes, belefer a jel szabvanyokba, hogy az EP INKABB MEGSE KERI a felkepek kozotti fel pixelsoros fuggoleges eltolast, vagyis nem normal interlace TV adaskent akar uzemelni, HANEM VALOS, IGAZI 50Hz- es 300 soros "progressziv szkennelesu" modban ? Vagyis TV es interlace ide vagy oda, az EP normal modban egy 50Hz, 300 fuggoleges sor, progressziv szkennelesu modban mukodik ?
Igen. Ez a régebbi CRT TV-knél semmilyen problémát nem okozott (az interlace és progresszív módot nem kellett külön támogatni, az interlace egy egyszerű trükk a szinkron jelek időzítésében, amely kihasználja a CRT eltérítésének a tipikus megvalósítását), és a többi 8 bites gép is hasonló megoldást használt. Az újabb LCD TV-k azonban gyakran nem ismerik a progresszív módot - mivel 8 bites gépek már régen nincsenek a piacon - és hibásan azt is interlace-ként jelenítik meg, azaz vagy "remeg" a kép, vagy fésűszerű képhiba jelenik meg mozgásnál. Szintén problémákat okoz néha a 8 bites gépek gyakran nem egészen szabványos (nem pontosan 15.625 kHz) vízszintes frekvenciája, aminek a teljesen analóg CRT TV-knél nem volt különösebb jelentősége.

Quote from: Z80System
Vagyis komondoron "szoftverbol" van megvalositva az interlace... amihez akkor az kell, hogy a hw fuggoleges scrolljuk a mindenkori interlace- esiteni kepes felbontasuk FELEVEL vagy annal kisebb lepesekben kepes legyen mozgatni a kepet ... igaz ?
Nem, ez vízszintes interlace, ami a 160x200 felbontást növeli 320x200-ra.

Offline Z80System

  • EP addict
  • *
  • Posts: 3835
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
Re: Grafikai trükkök
« Reply #8 on: 2013.April.06. 13:05:02 »
Quote
A fél sort a 300 soros felbontáshoz képest értettem, tehát 600 soros felbontáshoz viszonyítva egy sor. A felbontás 600 sornak tekinthető, de ennek csak a fele jelenik meg másodpercenként 50-szer, a másik felét a látás és/vagy a monitor tehetetlensége adja
Aham, en is igy ertettem ...

Quote
vagy újabb TV-ken digitális de-interlace. 
Fu, akkor elvileg egy modern tv- n a digitalis deinterlace funkcioval az EP igazi 600 fuggoleges soros kepet mutathat, mert gondolom ott frankon befogjak a 2 felkepet, es egyben teszik ki 600 sorosnak ... WOW

Vagyis szerezve egy ilyen digitalis deinterleszes kijelzot, 600X600- as iview- s kepek lehetnenek ... remeges nelkul ... (persze egy jo nick- kel)


Quote
Kifejezetten TV-re készült (pl. sport) műsorok egyébként kihasználhatják azt, hogy az egymást követő félképeknek nem kell feltétlenül ugyanahhoz a teljes képhez tartozniuk,

Na az ilyet viszont akkor a digitalis deinterlesz be kell zuzza... hiszen ket kulon kepet fog interleave- elni egy 600 sorosba ... :) Abbol maszatos valami lesz.
Z80 System

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13117
  • Country: hu
  • OS:
  • Unknown Unknown
  • Browser:
  • Opera 9.80 (Opera Mini 7.5.32193) Opera 9.80 (Opera Mini 7.5.32193)
    • View Profile
    • http://enterprise.iko.hu/
Re: Grafikai trükkök
« Reply #9 on: 2013.April.06. 13:09:37 »
Vagyis szerezve egy ilyen digitalis deinterleszes kijelzot, 600X600- as iview- s kepek lehetnenek ... remeges nelkul ...
Ezt irtam is anno,hogy az LG-men tök jó állókép az interlaces iview!

Offline Z80System

  • EP addict
  • *
  • Posts: 3835
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
Re: Grafikai trükkök
« Reply #10 on: 2013.April.06. 13:16:03 »
Na, akkor mostmar "mindent" ertunk interleszileg, mar csak az maradt hatra, az eredeti problemafelvetesbol, hogy sajnalattal vegyes szomorusaggal levonjuk a kovetkeztetest: az EP mind a 300 pixelsorat meg kell mozgatni sajna 50 FPS- sel, ha valaki igazan finom mozgast akar ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3835
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
Re: Grafikai trükkök
« Reply #11 on: 2013.April.06. 13:20:10 »
Ehes programozo blitterrel almodik ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3835
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
Re: Grafikai trükkök
« Reply #12 on: 2013.April.06. 13:34:15 »
Elvi csak a kerdes, de egy buszbovitore dugott kis DMA hardver (mondom, csak elvileg) megoldana ezt a kerdest ?

Tehat a memoriasebessegektol, ilyesmiktol meg lehetne gyorsitani sokat ?

Tehat mondjuk valami modern kis elektronika, ami kepes a memcsot masolni, logikai muveleteket vegezni, meg eltolni pixeleket az EP pixelformatumainak ismeretevel.

A z80 addig malmozhatna is, nem kellene parhuzamos mukodes, vagy ilyesmi, z80- nal elinditanank, 2 pixelsor raszterido alatt kepes lenne mondjuk memmozgatni mondjuk 64K- t, es ezzel megoldana minden sebessegkerdest ...

Szal elviekben ilyen lehetseges volna, vagy mar a ramok es mittudomenmi idoziteseitol sem lehetne ilyen alomcsippet kesziteni ?
« Last Edit: 2013.April.06. 13:59:12 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3835
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
Re: Grafikai trükkök
« Reply #13 on: 2013.April.06. 15:16:16 »
ill. +1 kerdes erejeig vissza az interlaci kerdesre is:

az ep128emuban (vagy barmelyikben) az interlaci kerdes vajon hogy kezelodik ? Ott is van valtogatva 2 darab felkep a fel EP pixelsor vastagsagu felkep eltolassal, es a tenyleges hardver megjelenito kioltasara van bizva a felkepek mixelese, ami gondolom regen nem ugyanaz a filing, mint a regi TV- ken, amik gondolom lassan hunytak ki, mint a terminator szeme, szal valami elesebben villogo dolgot kepzelnek el,

vagy pedig valami korabban emlitett deinterlace eljaras van hasznalva, esetleg raadasul olyan, ami nem feltetlen sorszamban 600- as, hanem marad haromszazas, de valami hardver trukkel blendeli a felkepeket ?
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3494
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 27.0.1453.15 Chrome 27.0.1453.15
    • View Profile
    • http://lgb.hu/
Re: Grafikai trükkök
« Reply #14 on: 2013.April.06. 15:36:01 »
Quote from: Z80System
A z80 addig malmozhatna is, nem kellene parhuzamos mukodes, vagy ilyesmi, z80- nal elinditanank, 2 pixelsor raszterido alatt kepes lenne mondjuk memmozgatni mondjuk 64K- t, es ezzel megoldana minden sebessegkerdest ...

Szerintem ilyen a vilagon nincs (marmint 8 bites vilagon hihi) ... Egyszeruen a hw nem alkalmas erre egyetlen 8 bites gepnel se, ez mar tul sok. Bar csak tippre mondom, nem ismerem a Z80 busz pontos idozitest, illetve hogy vmi letiltott Z80 (BUSRQ) mellett mi az az elmeleti max amit ki lehetne hozni egy DMA szeruseggel iras, olvasas ill iras+olvasas eseten savszelesseg ugyen. De gyanitom, hogy ilyen sebesseget amit irsz, azt nehezen ...

Csak viszonyitani tudok: C64-en pl 1MHz-re kerekeitve az orajelet, es ismerve a tenyt, hogy a 6502 (ill 6510, mind1) annyiban cool, hogy a CPU orajele es a memoriae meg az egesz mindensege tok ugyannyi (Z80-nal kisebb, igaz ott a CPU orajel viszont nagyobb, Z80-nal van kulon T es M cycles, 6502-nel nincs), ezert ott ugye kb 1megabyte-ot tudsz 1 masodperc alatt irni v olvasni (nyilvan ha egy byte-ot elobb irni majd olvasni kell, akkor a fele ...). Ez ugye azt jelenti, hogy 64K irasa vagy olvasasa az elmeleti max buszsegesseggel (amit CPU nem is kepes generalni!) az kb 1/15-od masodperc, ha olvasni es irni is kell, akkor a dupla annyi ido, tehat mar 1/7-ed masodperc kornyeken! Tehat az nagyon vad amit mondtal, hogy ket scanline alatt egy 8 bites gep 64K-t kepes lenne megmozgatni :) Ha half frame-eket nezunk es pl 300 sornak veszed a felkepet, akkor a 2 scanline az egy half frame 1/150-ed resze lenne idoben, azaz kb 1/7500-ed masodperc. ha jol fejszamlgatok kb nagysagrendileg csak, akkor az jon ki hogy amit te akarsz az 500-szor vagy 1000-szer (!) gyorsabb busz kene mint a C64-e. Felteve hogy Z80 meg M/T cycle 2 arany mellett is ketszer gyorsabb mondjuk a C64-nel, akkor is 500-szor gyorsabb gep kene az EP-nel (ami a buszrendszert illeti), hogy olyat lehessen csinalni amit te akarsz.

Ha vmit nagyon elszamoltam/felrebecsultem akkor bocs :)

Ezert mondtam hogy itt nem az EP a hibas vagy a Z80, ez egyszeruen mar nem 8 bites gep kategoria, ilyet meseben sem tudna egy 8 bites gep kb (meg a C64 DTV sem, ami ASIC-on reimplementalt C64 compatible joystick alaku cucc es belsoleg SDRAM van benne full 32 biten es 32MHz belso ASIC szintu orajellel se er a kozelebe annak amit te akarsz, mivel ott van DMA es Blitter is, es ezen en anno kiserletezgettem .... pedig az 32 bit es burst modban is tudja cimezni az SDRAM-ot pl !!!!)

Ha jol szamolom amit te akarsz az fel GIGABYTE per szekundum memoria savszelesseg lenne. Ez mar kb/majdnem a modern PC-k kategoriajaba esik .... nem egy 8 bites gepebe.
« Last Edit: 2013.April.06. 15:44:33 by lgb »