## HorizontalReduceBy2 / VerticalReduceBy2 / ReduceBy2

`HorizontalReduceBy2` (clip)
`VerticalReduceBy2` (clip)
`ReduceBy2` (clip)

`HorizontalReduceBy2` zmenšuje horizontální velikost každého snímku na polovinu, a `VerticalReduceBy2` zmenšuje vertikální velikost na polovinu. Spojte oba za sebe (v libovolném pořadí) pro zmenšení celého obrazu na polovinu. Také můžete použít zkratku `ReduceBy2`, což je stejné jako `HorizontalReduceBy2` následováno `VerticalReduceBy2`.

Použité jádro filtru je (1/4,1/2,1/4), což je stejné jako ve filtru VirtualDubu "2:1 reduction (high quality)". Tím se daří vyhnout problému vyhlazování okrajů hran (aliasing), který nastává s jádrem (1/2,1/2). Filtr Resize ve VirtualDub používá třetí, zvláštní jádro pro redukci 2:1, ale experimentoval jsem s ním a zjistil, že ve skutečnosti vytváří mírně hůře vypadající MPEG soubory--pravděpodobně proto, že mírně zostřuje hrany, a většina kodeků nemá ráda ostré hrany.

Pokud je vaše zdrojové video prokládané, filtr `VerticalReduceBy2` z něj odstraní prokládání (smícháním polí), což je jeho postranní efekt. Pokud plánujete vytvořit výstupní video o velikosti jako 320x240, doporučuji vám zachytávat v plném vertikálním rozlišení (320x480) a použijte `VerticalReduceBy2`. Získáte mnohem lépe vypadající výstup. Můj kodek Huffyuv komprimuje zachytávané video přibližně 2:1, bezeztrátově, takže můžete zachytávat 320x480 na přibližně stejný diskový prostor jako při použití zachytávání 320x240. (Pokud má váš disk dostatečnou kapacitu a podporuje takový tok dat, můžete dokonce zachytávat v rozlišení 640x480 a použít jak `HorizontalReduceBy2` tak i `VerticalReduceBy2`. Ale to už kvalitu tolik nezlepší, a pokud musíte jít do MotionJPEG pro dosažení 640x480, budete mít pravděpodobně lepší výsledek s Huffyuv při 320x480.)

Všmněte si, že je to rychlý a špinavý filtr (výkon odpovídá kompromisu). Proti standartním resize filtrům, filtr `ReduceBy2` nezachovává pozici středu obrazu. Posouvá barevné plochy o půl pixelu. Ve skutečnosti je `ReduceBy2()` ekvivalentní k:

`BilinearResize(Width/2, Height/2, 0.5, -0.5)` pro RGB,

`MergeChroma(BilinearResize(Width/2,Height/2,0.5,0.5),BilinearResize(Width/2,Height/2,1.0,1.0))` pro YV12,

`MergeChroma(BilinearResize(Width/2,Height/2,0.5,0.5),BilinearResize(Width/2,Height/2,1.0,0.5))` pro YUY2.

`$English Date: 2008/12/24 19:19:07 $`

`Český překlad:9.2.2009`