Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 8. listopad 2014, 19:29:04 Předmět: Vlastní komprese #2 |
|
|
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 .
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
Díky.
Jinak komprese chvíli trvá, takže trpělivost. |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 11. listopad 2014, 21:08:14 Předmět: Re: Vlastní komprese #2 |
|
|
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 |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 12. listopad 2014, 00:02:08 Předmět: |
|
|
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 |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1536 Bydliště: u Prahy
|
Zaslal: 12. listopad 2014, 10:38:20 Předmět: |
|
|
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 |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 12. listopad 2014, 10:39:33 Předmět: |
|
|
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? |
|
Návrat nahoru |
|
|
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 12. listopad 2014, 13:59:29 Předmět: |
|
|
mar napsal: |
Jinak k čemu je linuxákům wallet, když jsou zvyklí za nic neplatit? |
OT: tam prave sysli ty penize co neutrati |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 12. listopad 2014, 19:55:33 Předmět: |
|
|
rezna: Dík, tak už to konečně chápu
Linux je skvělý systém (i když ALSA - neplést s Alza 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 |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 14. listopad 2014, 19:44:42 Předmět: |
|
|
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 |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 21. listopad 2014, 09:13:08 Předmět: |
|
|
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 |
|
|
|