.[ ČeskéHry.cz ].
SDL_mixer :: distribuce dll :: vlastní komprese
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
 
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
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 19. červen 2012, 15:12:06    Předmět: Odpovědět s citátem

Pokud vím, oni to mají navržený na streamování ze souboru, já už mám soubor načtený v paměti, takže veškeré čtení ze souboru musím nahradit čtením z pěměti a to bude ještě víc prásácký než ten jejich kód...
Raději si to napíšu sám...když už nic jiného, tak se aspoň naučím novou věc a mohu to hned naučit další lidi (viz. časopis).

Rozbalovat do paměti to nehodlám, to bych rovnou mohl použít WAV...

OT: Překladač dělám úplně vlastní, teď pracuji na sémantické analýze...budu překládat trochu upravené C (já mu říkám C--) pro procesory H8S a MIPS.
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



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

PříspěvekZaslal: 19. červen 2012, 15:20:24    Předmět: Odpovědět s citátem

VODA napsal:
Pokud vím, oni to mají navržený na streamování ze souboru, já už mám soubor načtený v paměti, takže veškeré čtení ze souboru musím nahradit čtením z pěměti a to bude ještě víc prásácký než ten jejich kód...
Raději si to napíšu sám...když už nic jiného, tak se aspoň naučím novou věc a mohu to hned naučit další lidi (viz. časopis).

Rozbalovat do paměti to nehodlám, to bych rovnou mohl použít WAV...

OT: Překladač dělám úplně vlastní, teď pracuji na sémantické analýze...budu překládat trochu upravené C (já mu říkám C--) pro procesory H8S a MIPS.


No můžeš použít ov_open_callbacks, jak jsem psal. Tam ti to bude volat tvoje funkce pro read, seek, tell atd., takže se soubory to pracovat nutně nemusí.

OT: Tak to je úlet, klobouk dolů Smile Já jsem se zmohl jenom na vlastní interpret skriptu, do něčeho takového bych asi nešel.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 19. červen 2012, 15:24:49    Předmět: Odpovědět s citátem

mar napsal:

No můžeš použít ov_open_callbacks, jak jsem psal. Tam ti to bude volat tvoje funkce pro read, seek, tell atd., takže se soubory to pracovat nutně nemusí.

Pravda, to mě nenapadlo, uvidíme, ale jak jsem řekl, když se to naučím sám, mohu to naučit další lidi... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 20. červen 2012, 22:43:06    Předmět: Odpovědět s citátem

Ha, už mi to hraje tak jak potřebuji, sice jsem nakonec OGG zahodil a spokojil jsem se s obyčejným WAVem, ale naimplementoval jsem si to sám a funguje to tak, jak jsem přesně potřeboval...
Takže, žádné knihovny navíc...

Tak, ještě to trochu zkulturnit a mohu začít dodělávat poslední mizivá procenta enginu... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
franz



Založen: 30. 07. 2007
Příspěvky: 1325

PříspěvekZaslal: 20. červen 2012, 22:48:48    Předmět: Odpovědět s citátem

Jako že máš nakonec hudbu ve wavu a celou v paměti?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



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

PříspěvekZaslal: 20. červen 2012, 23:21:10    Předmět: Odpovědět s citátem

To zní jako fail.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 20. červen 2012, 23:31:04    Předmět: Odpovědět s citátem

No primárně je ten soundsystem postaven na přehrávání krátkých zvukových efektů, ale také krátké hudby. Uznávám, že WAV si schramstne v případě hudby docela hodně paměti (3 minuty hudby = cca 14 MB).
Výhoda mého řešení je v tom, že v OpenAL nevytvářím pro celý zvuk jeden buffer, ale "streamuji" to z paměti. Takže až přijdu na to, jak rychle komprimovat a dekomprimovat zvuk nějakým hybridním způsobem, mám na to připravené rozhraní...

Také bych raději, kdyby mi to běhalo s Ogg, ale v dekódování jsem se nedostal moc daleko. Pochopil jsem jak jsou data v souboru organizována, dokonce jsem měl mechanizmus na načítání dat z jednotlivých paketů/stránek, jen se mi už nepovedlo ty data dostat do požadovaného tvaru...snad někdy příště.
_________________
Opravdovost se pojí s trýzní...
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: 1484
Bydliště: u Prahy

PříspěvekZaslal: 21. červen 2012, 08:55:30    Předmět: Odpovědět s citátem

A proč nepoužiješ knihovnu, kterou můžeš linkovat staticky? Pohodlí již hotového a vedle tvého EXE nebude žádná další DLL. Třeba ten libvorbis a Tremor jsou licence BSD, kde tohle můžeš (přesněji knihovny jsou BSD a nástroje k nim GPL).
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
franz



Založen: 30. 07. 2007
Příspěvky: 1325

PříspěvekZaslal: 21. červen 2012, 09:11:43    Předmět: Odpovědět s citátem

když už bych tam měl SDL a zlib1, tak by další dll nevadila Cool
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



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

PříspěvekZaslal: 21. červen 2012, 10:11:43    Předmět: Odpovědět s citátem

VODA napsal:
Uznávám, že WAV si schramstne v případě hudby docela hodně paměti (3 minuty hudby = cca 14 MB).
Výhoda mého řešení je v tom, že v OpenAL nevytvářím pro celý zvuk jeden buffer, ale "streamuji" to z paměti. Takže až přijdu na to, jak rychle komprimovat a dekomprimovat zvuk nějakým hybridním způsobem, mám na to připravené rozhraní...

No kdysi jsem používal vlastní realtime kompresi (4 bity na sampl), v podstatě obdoba ADPCM ale bez tabulek, prostě některé kódy akorát měnily shift a dvojnásobek nebo polovinu. Myslím, že jsme v bexerovi měli takhle uložené samply. Už ale nevím, jestli se to realtime mixovalo, ale myslím, že to šlo. Samozřejmě tohle dost šumí a zhoršuje se kvalita se snižováním samplerate. Je to sice lepší než 8-bit samply, ale i tak už to dávno nepoužívám. Na hudbu jedině oggy. Zvuky 22kHz by mělo stačit.
Mimochodem 3 minuty hudby, 44100 Hz, stereo, 16-bit je 30MB. Pokud tedy nechceš 22kHz, což je škoda, protože přijdeš o výšky.
Z paměti to bude samozřejmě nejrychlejší, i když to je IMHO plýtvání.

VODA napsal:

Také bych raději, kdyby mi to běhalo s Ogg, ale v dekódování jsem se nedostal moc daleko. Pochopil jsem jak jsou data v souboru organizována, dokonce jsem měl mechanizmus na načítání dat z jednotlivých paketů/stránek, jen se mi už nepovedlo ty data dostat do požadovaného tvaru...snad někdy příště.

Tak tomu říkám masochismus Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



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

PříspěvekZaslal: 21. červen 2012, 11:22:58    Předmět: Odpovědět s citátem

Ručně loadovat obsah OGGů - to může klidně do projektu vložit zdrojáky té BSD knihovny na OGGy Smile. Vlastně jsem to tak i jednou použil na libjpeg, taky jsem nechtěl externí DLL a licence to umožnuje (dnes už bych to nedělal).
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



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

PříspěvekZaslal: 21. červen 2012, 11:42:42    Předmět: Odpovědět s citátem

No ono parsovat ogg by byla ta jednodušší část, o poznání složitější by bylo dekódovat vorbis Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 21. červen 2012, 13:44:16    Předmět: Odpovědět s citátem

mar napsal:
No ono parsovat ogg by byla ta jednodušší část, o poznání složitější by bylo dekódovat vorbis Smile

No právě. Crying or Very sad

Celou noc jsem přemýšlel nad tím, jak zkomprimovat pcm z wav. Asi po 6 hodinách jsem konečně na něco přišel. Dokáži to zkomprimovat na 50 % původní velikosti. Ve zvuku není šum, ale jako by bylo v pozadí slyšet vysokofrekvenční "duch" původního signálu. Zatím se mi to nepovedlo odstranit, ale i tak je 50 % docela velký úspěch. Rovněž to jde realtime dekódovat. Problém je, že se to po delší době s tím vysokofrekvenčním hvízdáním nedá poslouchat... Confused
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Spytihněv



Založen: 05. 04. 2011
Příspěvky: 478
Bydliště: Praha

PříspěvekZaslal: 21. červen 2012, 14:13:16    Předmět: Odpovědět s citátem

Já do Tábora použil Bass, který streamovat ogg z paměti umí - taky jsem to potřeboval. Pro free projekty je zdarma a licence pro nezávislé vývojáře vyjde jen na 125 EUR (a lze ji použít i ve všech budoucích projektech).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



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

PříspěvekZaslal: 21. červen 2012, 14:25:12    Předmět: Odpovědět s citátem

VODA napsal:

No právě. Crying or Very sad

Celou noc jsem přemýšlel nad tím, jak zkomprimovat pcm z wav. Asi po 6 hodinách jsem konečně na něco přišel. Dokáži to zkomprimovat na 50 % původní velikosti. Ve zvuku není šum, ale jako by bylo v pozadí slyšet vysokofrekvenční "duch" původního signálu. Zatím se mi to nepovedlo odstranit, ale i tak je 50 % docela velký úspěch. Rovněž to jde realtime dekódovat. Problém je, že se to po delší době s tím vysokofrekvenčním hvízdáním nedá poslouchat... Confused


No hvízdání jsem kdysi měl taky, ale to jsem si hrál s FFT a zkoušel jsem to kvantizovat a pak znovu poskládat. A taky byl problém pak navazovat bloky, musel jsem dělat crossfade, aby z toho byl nakonec souvislý signál. Jenom nechápu, jestli ti ten frekvenční šum dělal tvůj dekodér vorbisu, nebo jestli sis psal něco úplně svého.
Našel jsem teď zdrojáky k tomu "adpcm" bez tabulek, co jsem psal, ale je to 12 let starý kód, takže to dávám jako public domain. Pokud by ti to pomohlo, link je tady: http://www.mediafire.com/?926csi60y5kvv8k.
Zkomprimuje to na 25% a dekomprese je prakticky okamžitá, ale i tak to je relativně mnohem větší s nižší kvalitou, než vorbis.
Upřímně si myslím, že na tomhle zbytečně plýtváš svým talentem. A přitom by stačilo nalinkovat tremor nebo libvorbis, jak psal Ladis Wink
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
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
Strana 3 z 5

 
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