Diskuze: Satikuv videokodek

C# .NET .NET (C# a Visual Basic) Satikuv videokodek American English version English version

Avatar
Luboš Běhounek (Satik):

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
:)
Avatar
Luboš Běhounek (Satik):

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

Nahoru Odpovědět 31.1.2013 23:28
:)
Avatar
Luboš Běhounek (Satik):

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
:)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Luboš Běhounek (Satik)
David Čápka:

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

Nahoru Odpovědět 1.2.2013 11:24
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Luboš Běhounek (Satik):

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
:)
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.