.[ ČeskéHry.cz ].
Vlastní komprese #2

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hudba / Zvuk
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 8. listopad 2014, 19:29:04    Předmět: Vlastní komprese #2 Odpovědět s citátem

Před nějakou dobou tady měl myslím VODA vlákno, kde se pokoušel o vlastní kompresi.
Abych nebyl pozadu, napsal jsem jednoduchý vlastní experimentální kodek s použitím MDCT (plus ATH, 5-bitová nelineární kvantizace, výsledek je komprimovaný deflatem - tedy VBR Smile.
Kvalita určitě nebude srovnatelná s mp3/vorbis, velikost bývá zpravidla 2x větší, než 128kbps (záleží na vstupu), což je ale pro mě určitě zajímavé a přijatelné.
Původně jsem chtěl přehrávat ADPCM, ale bohužel to má občas mizernou kvalitu (šum), navíc nejde moc dobře komprimovat.
Tak jsem napsal něco jiného, protože nechci viset na vorbisu (plus poté, co jsem viděl specifikaci, se do vlastní implementace pouštět nechci).
Kdyby to někoho zajímalo, link ke stažení (cmdline): http://www.crabaware.com/Utils/Kwl/Kwl.zip
Je tam verze pro Windows, Linux (testoval jsem na Ubuntu) a Mac (Mavericks).
Mac verze je pouze pro Intely. Na unixech možná bude potřeba chmod u+x,nejsem si jistý, jestli se tam zkopírovaly i permissions.
Umí to komprimovat/dekomprimovat a přehrávat (podle parametrů).
Docela by se mi hodilo, pokud by někdo našel něco, co po kompresi bude znít příšerně (abych to mohl poladit - zaměřil bych se na harmonický šum) - proto to sem postuji.
Chtělo by to nějaké mladé/zkušené uši Smile
Díky.
Jinak komprese chvíli trvá, takže trpělivost.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 11. listopad 2014, 21:08:14    Předmět: Re: Vlastní komprese #2 Odpovědět s citátem

Tak jsem ještě udělal trochu agresívnější kompresi a šlo to dolů ještě o nějakých 15%. Zní to řekl bych ok, testoval jsem spoustu různých druhů žánrů.
Ještě jsem přidal Winamp plugin (pouze Windows), seekování je velmi pomalé, protože formát není stavěný na random access, ale čistě na streamování.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 12. listopad 2014, 00:02:08    Předmět: Odpovědět s citátem

Chtělo by to možnost volitelně definovat výstupní soubor, navíc kwl je v linuxu typ KWallet Wallet.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1536
Bydliště: u Prahy

PříspěvekZaslal: 12. listopad 2014, 10:38:20    Předmět: Odpovědět s citátem

Tak v linuxu je použito přehršel přípon, v tom se nikdo nevyzná. Naštěstí se to tam bere podle začátku souboru, takže můžou třeba 2 programy používat stejné přípony.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 12. listopad 2014, 10:39:33    Předmět: Odpovědět s citátem

Pravda, ten výstup tam určitě přidám plus ještě pár parametrů.
S tou příponou - nezagooglil jsem... Ale měnit to už asi nebudu (stejně to budu používat akorát já),
jenom tam do toho toolu přidám, že cokoliv, co nemá příponu wav,
bude brát jako komprimované audio, takže v kombinaci s tím -o to může být třeba kw! nebo cokoliv jiného.
Jinak k čemu je linuxákům wallet, když jsou zvyklí za nic neplatit? Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 12. listopad 2014, 13:59:29    Předmět: Odpovědět s citátem

mar napsal:
Jinak k čemu je linuxákům wallet, když jsou zvyklí za nic neplatit? Smile


OT: tam prave sysli ty penize co neutrati Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 12. listopad 2014, 19:55:33    Předmět: Odpovědět s citátem

rezna: Dík, tak už to konečně chápu Smile
Linux je skvělý systém (i když ALSA - neplést s Alza Smile je pravda příšerná ve srovnáním s CoreAudio na Macu nebo DSoundem na Windows a hodně jsem nadával),
vlastně mám celkem rád všechny.

Takže je tam update, nová verze má -o na přesměrování výstupního souboru.
Přibyl taky -v (verbose), který vypíše ratio a average bitrate (a čas, jak dlouho trvala (de)komprese).
-f je force (vždy přepíše výstup). Link je stejný jako nahoře.

Ještě jsem přidal http://www.crabaware.com/Utils/Kwl/samples.zip,
kde jsou zkomprimované dva songy od Machinae Supremacy ze soundtracku k Jets'n'Guns (mají to volně ke stažení na svých stránkách, takže tím snad nic neporušuji),
což je mimochodem vynikající 2d space shooter od našinců z Rake in grass, kdo nehrál,
je to ke koupi na Steamu nebo přímo na jejich stránkách, doporučuji (je to zábavné narozdíl od většiny good looking AAA shitů).
EDIT: tak jsem v této verzi stačil ještě jednou mikrooptimalizací rozbít kompresi, opraveno
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 14. listopad 2014, 19:44:42    Předmět: Odpovědět s citátem

Tak, poslední update, jeden drobný fix a přidání možnosti nastavení kvantizace a ATH thresholdu.
Našel jsem jeden zvuk, který dělá problémy (paradoxně všechny normální hudby, co jsem zkoušel, byly v pohodě).
Konečně vím, co znamená preecho a proč vorbis používá dlouhá a krátká okna.
Já používám 2048, tento případ se dá opravit použitím 512, ale to zase uškodí ve většině normálních případů (jako třeba táhlé smyčce apod.), takže to nechávám, ja to je.
S tím, že případně zvednu počet bitů na kvantizaci; pokud tedy bude potřeba.
Link na preecho: http://www.crabaware.com/Utils/Kwl/preecho.zip
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 21. listopad 2014, 09:13:08    Předmět: Odpovědět s citátem

Ještě jedna (teď už fakt poslední) změna, normalizované spektrum a možnost ručně nastavit latency (default je 50 msec, ale našel jsem problém na ext. USB zvukovkách).
Kvůli tomu jsem ještě změnil dsound playback z pollingu na eventy.
No a vylepšil jsem ještě inflate, takže teď zabírá míň paměti a nedochází k realokacím v průběhu dekódování.
Říkám si, že by možná bylo zajímavé podporovat i ASIO, ale dost pochybuji, že z pohledu her hráči vůbec ví, co to je, navíc bych musel viset na SDK od Steinbergu, což nechci.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hudba / Zvuk Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna