Tento filtr načítá raw (syrová) video data.
RawSource
(string "file", int "widht",
int "height", string "pixel_type", string "index",
bool "show")
RawSource otvírá video soubory, které obsahují YUV2, YV16, YV12, RGB nebo Y8 video
data.
Existují tři způsoby jak jsou pozice dat video snímků počítány:
Podporované pixel_type jsou:
RGB, RGBA, BGR, BGRA (interleaved RGB bez podvzorkování, což vede k
formátům AviSynthu RGB24 nebo RGB32)
YUYV, YVYU, UYVY, VYUY (interleaved horizontálně podvzorkované což vede k
formátu AviSynthu YUV2)
YV16 (planární horizontálně podvzorkovaný, je převeden do AviSynth formátu
YUV2)
I420, YV12 (planární horizontálně a vertikálně podvzorkované což vede k
formátu AviSynthu YV12)
Y8 (jen jas což vede k formátu AviSynthu YV12 grey,
čeká na Avisynth 2.6 s nativní podporou Y8)
Maximální šířka width je 2880.
Frekvence snímků je pevná 25fps, Můžete ji změnit pomocí AssumeFPS, pokud potřebujete
(např. pro NTSC-materiál).
Při show=true se zobrazí skutečně použitá bajtová pozice pro zobrazený snímek,
následovaná:
K = použita je pozice daná v indexu
D = použita je pozice přidáním aktuálního delta
B = použita je pozice přidáním aktuálního big_delta
RawSource("d:\yuv4mpeg.yuv") #toto předpokládá, že je uvnitř platná YUV4MPEG2-hlavička. #Pokud ne, použijí se výchozí hodnoty: width=720, height=576, pixel_type="YUV2" |
RawSource("d:\src6_625.raw",720,576,"BGRA") # skutečný raw (syrový) soubor |
Můžete zadat bajtovou pozici video snímků přímo.
RawSource("d:\yuv.mov",720,576,"UYVY", index="0:192512 1:1021952 25:21120512 50:42048512 75:62976512") |
Toto je užitečné pokud to není skutečné raw video, ale např. nekomprimované MOV soubory
nebo soubor s nějakým druhem hlavičky.
Bude to pracovat kdykoli jsou vzdálenosti mezi snímky pevné nebo mají alespoň dva pevné
intervaly (např. audio data prolínaná (prokládaná) s videem každý 25tý snímek).
Zadáváte páry framenumber:byteposition.
Vnitřně jsou dva kroky hodnot (pro bajtové pozice): delta
a big_delta.
delta je uloženo vždy, když jsou dána čísla dvou sousedních snímků,
výchozí hodnotou je width*height*bytes_per_pixel.
big_delta je uloženo vždy, když jsou dány tři čísla snímků
stejných dvou intervalů. Výchozí hodnota je 0 (to znamená, že není přítomno
žádné užitečné big_delta )..
Pokud tyto podmínky nejsou splněny, vnitřní hodnoty delta a big_delta
nejsou aktualizovány, je použita jen daná bajtová pozice v indexu.
big_delta je resetováno na 0 jestliže výsledná pozice by byla za danou
(viz níže).
Zde je několik možných případů:
0: 0 |
snímek 0 začíná na bajtu 0, krok na snímek 1 je výchozí = width*height*bytes_per_pixel |
0:10000 |
snímek 0 začíná na 10000 |
0: 5000 1:15000 |
snímek 0 na 5000 snímek 1 na 15000 (delta je nastaveno na 10000) snímek 2 na 25000 (použití delta) snímek 3 na 35000 (použití delta) |
0: 5000 1: 15000 |
snímek 0 na 5000 snímek 1 na 15000 (delta=10000) snímek 2 na 25000 ... snímek 25 na 290000 (použití hodnoty (entry) místo delta, které by bylo na 255000) snímek 26 na 300000 (stálé použití delta) ... snímek 50 na 590000 (použití hodnoty (entry) místo delta) >> protože 25...50 = 50...75 nyní je big_delta nastaveno na 300000 (590000-290000) snímek 51 na 600000 (stálé použití delta) ... snímek 75 na 890000 (použití hodnoty (entry), která je stejná jako použití big_delta) ... snímek 100 na 1190000 (použití big_delta) snímek 101 na 1200000 (použití delta) |
0: 5000 1: 15000 25:290000 50:590000 75:890000 |
stejné jako v předchozím příkladu |
Řetězec index je zpracován jako jméno souboru, pokud je uvnitř "." . Data jsou pak čtena z tohoto souboru, zalomení řádků nevadí.
Pomocí yuvscan.exe můžete zkusit analyzovat soubory,
které obsahují YUV-data s jen platnými jasovými (luma) a barevnostními (chroma) daty (~16-240).
Program hledá velké nepřerušené bloky bez bajtů < 16 nebo >240
a generuje soubor "index.txt", který může být použit přímo s
rawsource (pokud máte opravdu štěstí, přinejmenším).
Je to jen verze příkazového řádku, můžete změnit výchozí parametry. Pokud znáte výšku a šířku
dat, výstup bude mnohem lepší.
Použití:
yuvscan.exe filename triggerlength threshold round_by_bytes
triggerlength: jak dlouhý musí být jeden snímek (v bajtech)
threshold: co je považováno za platná YUV data (výchozí 10, což znamená
10 ... 255-10)
round_by_bytes: protože většina dat je uložena v pěkných pozicích, výstup
může být zaokrouhlen. výchozí 9 což znamená 2^9 = $100
Český překlad:17.2.2009