IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Luboš Běhounek Satik:31.1.2013 23:13

Ahoj, před nějakou dobou jsem začal z nudy pokusně programovat jednoduchý vlastní videokodek. Měl jsem hotovou kompresi, ale pak jsem to uložil na disk a dlouhou dobu jsem na tom nic neudělal. Dneska jsem se rozhodl, že si dám pauzu od programování jiných věcí a napsal jsem pro tento videokodek přehrávač (a zároveň opravil nějaké chyby v kompresi, protože jsem ji neměl moc jak otestovat :) ).

Je to napsané v C# a je to strašlivě pomalé, ale funguje to, video se hýbe a kompresní poměr je v některých případech i použitelný :)

Přehrávač:
http://www.satik.eu/…/splayer.exe

Ukázkové video:
http://www.satik.eu/…trategie.svc

  • u tohoto ukázkového souboru je kompresní poměr cca 1:25 (oproti velikosti videa bez použití komprese)
Editováno 31.1.2013 23:14
Odpovědět
31.1.2013 23:13
https://www.facebook.com/peasantsandcastles/
Avatar
Luboš Běhounek Satik:31.1.2013 23:28

Jeste jsem zapomel pridat samotny kompresni DLLko :D
http://www.satik.eu/temp/SVClib.dll

Nahoru Odpovědět
31.1.2013 23:28
https://www.facebook.com/peasantsandcastles/
Avatar
Luboš Běhounek Satik:31.1.2013 23:40

a kdo uhadne, z jakyho filmu je tahle ukazka:
http://www.satik.eu/temp/movie.svc
vyhrava bludistaka :)

Nahoru Odpovědět
31.1.2013 23:40
https://www.facebook.com/peasantsandcastles/
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Hartinger:1.2.2013 11:24

Působivé, můžeš nám ostatním nastínit jak to funguje? :D

Nahoru Odpovědět
1.2.2013 11:24
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Luboš Běhounek Satik:1.2.2013 11:39

Komprese probiha tak, ze bere postupne bitmapy, trochu je upravi, aby se lip komprimovaly, a pak ukladaj do jednoho velkyho souboru.
Ukladaji se zvlast kazda z RGB slozek (mozna by se vyplatilo prejit na HSV) a aplikuje se nekolik kompresnich metod - nektere hledaji rozdily mezi predchozim snimkem, nektere komprimuji jen ten jeden konkretni snimek.
Na kompresi (i dekompresi) kazdeho barevneho kanalu se pouziva jine vlakno kvuli rychlosti.
Vykreslovani v prehravaci po dekompresi bezi normalne pres pictureBox, takze je to pri fullHD strasne pomaly.

Je to napsane v C#, a casto se tam neco dela s poli, takze je to hrozne pomale, protoze C# pole pri vytvareni vynuluje, coz tady neni skoro nikde potreba, idealni by bylo prepsat to do C++ a vykreslovat pres DX.

Taky mam jeste v planu vylepsit kompresni pomer - planuju pridat hoffmanovo kodovani a jednu cast komprese mam napsanou jen tak narychlo a v nekterych pripadech (pokud je video clenitejsi) zabira dokonce vic nez pred kompresi.

Nahoru Odpovědět
1.2.2013 11:39
https://www.facebook.com/peasantsandcastles/
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.