Proč se video kóduje do různých velikostí a toků?

petersveter

Tak som premyslal, ze aky je dovod ze sa na youtube, rumble, bitchute... enkoduju videa zaroven do roznych velkosti aj bitrejtov?

Ono totiz si vezmime ze ludia maju obrazovky ktore dnes kazda bez problemov zobrazuje full hd a aj v tomto rozliseni nativne videa pozeraju.

Cize ak mam 1920x1080 a 1mb/s, tak mam nejaku "standardnu" kvalitu videa. Ak potom idem na 640x480 a mam 200 kb/s, tak mam na prvy pohlad znacne zhorsenu kvalitu, ale kedze je to mensia velkost, tak kvalita je teoreticky rovnaka ako pri tom full hd(1920*1080=2 073 600px, 640*480=307 200px, 6.75x menej px, a 1mbs/200mbs=5x mensi bitrate, cize cca velmi podobna uroven kvality, skoro totozna).

No lenze ten obraz ktory aj tak prehravam na full hd obrazovke je potom znovu zdeformovany(skalovany na full hd) a mam teda prakticky rovnaky vysledok.

Tak preco to rovno neenkodovat vsetko na full hd a proste len menit bitrate a dostiahnut prakticky totozny vizualny zazitok?
« Poslední změna: 18. 03. 2024, 08:35:20 od petersveter »


.

  • *****
  • 618
    • Zobrazit profil
Spousta lidí si videa přehrává třeba na mobilních zařízeních a s využitím dat, takže nemají zájem, aby všechno bylo v max. kvalitě a spotřeba dat díky tomu enormní. Další věc je pak i ta, že ne všude je úplně ideální (rychlé) připojení k internetu.
A nechat rozlišení na fullHD a měnit bitrate pochopitelně nejde, protože při nízkém bitrate a velkém rozlišení už není video k dívání, tj. adekvátně k nižšímu bitrate se musí měnit i to rozlišení videa na nižší.
V neposlední řadě jsou i videa v nižším rozlišení a s nižším bitrate jako volně přístupná a za poplatek lze získat vyšší rozlišení a vyšší bitrate, tuším YT Premium u některých videí zpřístupňuje právě ten vyšší bitrate.

Tak preco to rovno neenkodovat vsetko na full hd a proste len menit bitrate a dostiahnut prakticky totozny vizualny zazitok?

Protože on opravdu není totožný. Zkuste vzít velkou fotografii, ideálně nějakou s barevnými přechody (stačí třeba cokoliv s nízkou hloubkou ostrosti) jednu zmenšete a zkomprimujte jako JPEG s nějakou kvalitou typu 95 % a druhou velkou zkomprimujte na tutéž velikost, tedy s kvalitou kolem 15 % a následně zmenšete. U modernějších algoritmů bude rozdíl nejspíše nižší, ale pochopitelně bude.

Nemluvě o tom, že na slabých zařízeních jednak není přeškálovávání to, co chcete u videa dělat a hlavně: obecně pak naprosto nemáte kontrolu nad tím, jak cílové zařízení obraz vlastně přeškáluje (a že je to často dost tristní).

RDa

  • *****
  • 2 740
    • Zobrazit profil
    • E-mail
Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #3 kdy: 18. 03. 2024, 11:41:45 »
Cize ak mam 1920x1080 a 1mb/s, tak mam nejaku "standardnu" kvalitu videa. Ak potom idem na 640x480 a mam 200 kb/s, tak mam na prvy pohlad znacne zhorsenu kvalitu, ale kedze je to mensia velkost, tak kvalita je teoreticky rovnaka ako pri tom full hd(1920*1080=2 073 600px, 640*480=307 200px, 6.75x menej px, a 1mbs/200mbs=5x mensi bitrate, cize cca velmi podobna uroven kvality, skoro totozna).

Zde se projevuje vedlejsi efekt kodeku - cim novejsi, tim vyssi rozliseni se vyzadovano, protoze se velikost makrobloku zvetsuje.. z 8x8 na 16x16 na 32x32. Takze pokud v HEVC kodujete SD rozliseni, davate tomu kodeku hodne zabrat a muze se stat, ze vysledek bude vizualne horsi, nez v pripade MPEG2, ktery byl navrzen pro tyhle ucely.

Prakticky vzato - bitrate a rozliseni uplne nelze skalovat - to ze mate 6x vice/mene bodu neznamena ze stream bude mit 6x vice/mene bitu za vterinu. A v pripade non-iframe kodeku, to neskaluje linearne ani pri zmene FPS.

A odpoved proc:
Skalovani rozliseni u streamu souvisi s tim, ze dekoder je pak energeticky mene narocny. Je lepsi delat operace na 300 Kpx bufferem nez nad 2 Mpx bufferem, resp. sadou nekolika referencnich bufferu. Soucasne distribucni kodeky nemaji moznost partial decode na 1/2, 1/4, 1/8 rozliseni, natoz aby poskytovali tyto data jako substreamy.

V 2024 se vam lehce rekne, dejte vse FHD protoze to jaa prehraju. Proc nerikate, dejte vsechno v 8K a mente vsechno jen skrze bitrate.. snad chapete tu hloupost sveho pozadavku. FHD neni zadny baseline - ne kazde zarizeni ma vykon nebo pripojeni.

petersveter

Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #4 kdy: 18. 03. 2024, 12:37:24 »
Ale ja stale hovorim o tom ze finalny vysledok sa aj tak pozera vo full hd velkosti - tzn video zaberie rovnaku cast obrazovky, bez rozdielu realnej velkosti videa. Preto hovorim ze ked sa mensi obraz, i ked vo vyssej kvalite, zobrazi vo vecsej velkosti, tak degradacia skalovanim v konecnom dosledku sposobi ze to realne posobi totozne ako keby som mal full hd v horsej kvalite. A tie argumenty i o tom ze ludia pozeraju na mobiloch, ktore maju casto hustejse pixely nez displeje na notebooku alebo desktope, je naozaj zcestne. A teda potom je tu argument ze si mozem zmensit zobrazene video a vidiet ho "lepsie" bez deformacii...no lenze to iste mozem urobit s velkym videom a tiez bude posobit lepsie na mensej ploche lebo je tam viacej udajov, i ked v mensej kvalite, a tie "rozmazane" pixely uz tak posobit nebudu proste. Ale nikto nebude pozerat mensi obraz skratka cize je to irelevantny argument.

Proste mi pride ze tieto velkosti su pozostatok 2010s rokov kedy bolo online video v plienkach, pomale spojenie a male obrazovky(casto CRT este s malym rozlisenim kde FHD bol luxus). Dnes uz nic z toho neplati. Kompresia je stale ucinny liek na pomaly internet ale tie velkosti uz stratili vyznam. To je ako ked streamujete video online napriklad s modernym kodekom kde je nejaka zakladna uroven dat a cim lepsie spojenie, tym viac dat sa prenesie a obraz je kvalitnejsi ale je to proste len dynamicke a rozlisenie a vsetko je rovnake, len ide o to kolko udajov sa prenesie a vyrenderuje. Cize to stale hovorim ze preco nemat originalne rozlisenie videa a len zmenit datovy tok, naco do toho babrat rozlisenie ked to, podla mna, nema ziadnu rolu dnes?

Respektive tie datove toky su len dodatocne informacie ktore sa mozu spojit a dodat tak viac dat pre finalne video ale oni su len vrtstvene, nie su to samostatne videa ako je to dnes zavedene. Neviem uz ako sa to vola ale od VP9 uz to podporuje vsetky moderne kodeky.


Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #5 kdy: 18. 03. 2024, 13:20:56 »
"Ale ja stale hovorim o tom ze finalny vysledok sa aj tak pozera vo full hd velkosti..."

Tohle je myslím nesprávný předpoklad.

RDa

  • *****
  • 2 740
    • Zobrazit profil
    • E-mail
Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #6 kdy: 18. 03. 2024, 15:20:10 »
Myslim ze jsi uplnej noob v oboru video kompresie a tve predpoklady jsou velice naivni.

Nastuduj si to a pak nebudes muset klast otazky, nebo doporucovat, jak by existujici segment s miliardami zarizeni a nespocitatelnym poctem zpracovanych bitu a pixelu mel delat veci jinak, protoze to nejaky anonymni nufik jednou v nepochopeni napsal na internetovem foru :D

petersveter

Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #7 kdy: 18. 03. 2024, 15:31:38 »
Nastuduj si to a pak nebudes muset klast otazky

Toto si asi necham vytesat na nahrobny kamen.

Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #8 kdy: 18. 03. 2024, 22:32:39 »
Taky nejsem úplně přesvědčenej o tom, že fóra jsou od toho, aby tam člověk na svou otázku dostal odpověď „nastuduj si to a pak nebudeš muset klást dotazy“ ;).

Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #9 kdy: 19. 03. 2024, 13:08:57 »
Hlavně se jedná o extrémně komplexní tématiku o které už tak jsou popsány desetitisíce stran textu. Na složitá témata neexistují jednoduché odpovědi.
Proč kodek X s nastavením xyz je lepší než kodek Y s nastavením zyx při vstupním signálu Z generuje lepší výsledky?

Teď to je odvislé od výpočetního výkonu, tím nasazení jednotlivých fíčur kodeku.
Všechno lze vysvětlit i popsat, ale je to natolik obsáhlé, že pokud se člověk neorientuje ani v základech nemá to smysl řešit.
„Řemeslo se naučí každý. Umění nikdo.“
„Jednoduchost je nejvyšší úroveň sofistikovanosti.“
- Leonardo Da Vinci

RDa

  • *****
  • 2 740
    • Zobrazit profil
    • E-mail
Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #10 kdy: 19. 03. 2024, 14:00:42 »
Tak prakticky - at tazatel provede mereni mezi dvoji variantou:

IN:1080p -> komprese:1mbit -> /soubor1/ -> dekomprese -> OUT
IN:1080p -> downscale:540p -> komprese:1mbit -> /soubor2/ -> dekomprese -> upscale:1080p -> OUT

Jelikoz komprese musi byt zde echt presna kvuli predpokladu tazatele, velikost soubor1 a soubor2 musi byt velice blizka, pro stejne vstupni klipy.

Prvni metrika je kvalita vystupu - PSNR (na to existuji nastroje, kterym predhodite nekomprimovany IN+OUT).
Sada IN by mela byt napr typicka standardni/uznavana testovaci sada, ne jakekoliv video.

Druha metrika je energeticka narocnost casti za /soubor/, to lze provest napr. zmerenim kolik trva sw dekodovani bez pouziti vystupnich dat (neukladat, nezobrazovat).

Az budete mit tyhle 4 cisla zmerene - muzeme se pobavit o tom, proc to ci ono.

jjrsk

  • *****
  • 550
    • Zobrazit profil
Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #11 kdy: 19. 03. 2024, 15:54:36 »
...
Tak preco to rovno neenkodovat vsetko na full hd a proste len menit bitrate a dostiahnut prakticky totozny vizualny zazitok?
Protoze presne takto to NEfunguje.

Kazdy rozliseni ma opovidajici minimalni bitrate pro prislusny algoritmus, aby to bylo koukatelne. Kdyz chces ten bitrate snizit, musis zmensit rozliseni, protoze pokud ten bitrate klesne pod tu mez, bude vysledny obraz vyrazne horsi, nez totez v nizsim rozliseni.

Navic, a tady to bylo i nakousnuto, kodeky proste neumi jit pod nejaky limit, jednoduse proto, ze to ten algoritmus ciste matematicky neumoznuje.

A mimochodem, zrovna yt jednak rozliseni prizpusobuje zobrazovadlu, druhak vsechna videa totalne zmrvi, protoze na vsechna aplikuje svoji rekompresi, takze typicky tmavsi sceny klidne zkomprimuje jako cerny flek, ackoli na originale to cerny flek neni.

Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #12 kdy: 19. 03. 2024, 15:56:11 »
Zajímavé téma a diskuze.  Možná je to historický důvod....
Mě z pohledu konzumenta se toto nepácí. Ne vždy  si pouštím video na plnou obrazovku a stačí mi 360p "kvalita". Pokud bych měl  na výběr více kvalita, ale pořád v 1920x1080, pak půjde o plýtvání energii. (Dokonce si myslím, že ani nehraje rolik zda to mám  v cílové ploše 640x360 nebo 1920x1080 nebo 2560x1440.) Prostě to vytvoří zbytečně mnoho informací navíc (60MP/s vs 5 MPx/s), které je nutné zpracovat... Na desktopu no problem, na mobilu asi taky ne (přebije to podsvětlení), ale nelíbí se mi to.

Z pohledu tvůrce-enkdodéru nemám tolik zkušeností, ale myslím, si že lépe (jak konrétně by asi věděl RDa) se komprimuje  video  s odpovídajícím rozlišením.

Re:Proč se video kóduje do různých velikostí a toků?
« Odpověď #13 kdy: 30. 03. 2024, 13:14:51 »
Protože ne každé zařízení umí přehrát 1080p s nejnovějším kodekem, u 360p youtube snad ještě pořád používá jiný kodek. A taky ne každé zařízení umí 1080p vůbec přehrát.
Třeba staré Core 2 duo kterých je ještě hodně si s 1080p60 moc neporadí.