Příspěvek
od k42 » 06 črc 2020, 22:28
:sipka: Študent (věčný) jsem sice furt, anžto člověk se furt učí, ale tyhle věci celkem znám. Prostě jak se říká, z ho*na bič neupleteš a když upleteš, a když zapráskáš...
Jasně že vím - dokonce jsem takový systém kdysi naprogramoval pro side-band utajenou komunikaci a implementoval to v FPGA/ASICu - o té zvukové fonemové kompresi, která dovoluje přeměnit řeč v pár bytů za sekundu nebo o vlnové kompresi videa. Ale všechno má své výhody a nevýhody, proto se to šířeji nepoužívá, anžto dnešní technologie už zvládají ty složité "výpočtové" MPEGové komprimace... Wavelet algoritmy na video bývaly používané v praxi ve vojenských systémech a CCTV dohledech ještě začátkem 2000+ let, pak se na to nějak "zapomnělo". Má to mimo jiné výhodu v proměnném datovém toku a necitlivosti na chyby/výpadky/zúžení přenosového kanálu - jedna z implementací umí to, že je necitlivá na zmizelé pakety a jediný výsledek je ztráta některých detailů, v podstatě to je celkem ideální komprimace pro přenos videa po internetu, jelikož jeden zdroj může zásobovat odběratele s různou rychlostí připojení, aniž by se něco muselo spešl překódovávat. Část těchto nápadů měl implementován třeba kodek pro RealVideo, který také umožňoval automatické přizpůsobení rychlosti linky. Ale jinak to bylo přetlačeno komercí kolem MPEG formátů. Což je vyloženě škoda, nicméně nové komprimační algoritmy tyto myšlenky obsahují znovu, samozřejmě v mnohem komplikovanější formě. DCT/iDCT se používá, jelikož to jde snadno implementovat jako hw kodek nebo napsat v SIMD instrukcích, na rozdíl od těch jiných možností.
V podstatě máš pravdu, v tom co tvrdíš, ale ne celou pravdu, je to prostě všechno složitější. A není vůbec pravda, že by se to na školách neučilo a studenti to neznali. Kodeky bez zpoždění existují, ovšem nejsou právě nejúspornější, právě z toho důvodu, že modernější komprimace přenáší jen změny proti minulým a budoucím obrázkům, takže abys dosáhl vysoké komprese, musíš v kodeku mít co nejvíce obrázků toho streamu - být o několik snímků "zpožděný". A tím je pak dané to zpoždění, i kdybys měl komprimační procesor s nekonečnou rychlostí. Nic zázračného v tom opravdu není... ale zároveň taky neexistuje žádný zázračný kodek. Stačí se detailně podívat, jak funguje MPEG-4, MPEG-4 level 10 (AVC), H.265, ty nové "googlovské" kodeky atd. Tam všechny ty myšlenky jsou použité...