音声の可逆圧縮率を上げる方法
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG既にスレタイのようなユーティリティがいくつかあるが
ここではそのアルゴリズムやさらなる発展をするため語り合うスレだ。
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGそういう規格があるのかは知らんけど。
0006デフォルトの名無しさん
NGNGmp3でいいんでない?
よほどの音感が良い人でないとmp3と圧縮されていない音声の区別も
付かないと思うよ。クラシック聴いている人とか高級なアンプ、高級なスピーカ
持っている人でないとmp3とそうでない区別は容易ではないよ。
>>1がいいたいシステムは、音声ファイルを再生するときに圧縮された音声ファイルを
その場で解凍してから再生するという仕組みですか?
0007デフォルトの名無しさん
NGNGでも、圧縮率は非常に悪い。
0008デフォルトの名無しさん
NGNG可逆mp3ね。
0009デフォルトの名無しさん
NGNG自前でシーケンサ書いててピアノ音源とかこだわると容量が洒落にならない。
このドライバを組み込んだアプリやゲームなんかをリリースしたくなった時を考え
やはり圧縮時の容量は軽めにしたい。でmp3だとそれなりにCPUが犠牲になる
今んとこ考えてるのはLZHなどの圧縮アルゴリズムに合わせてデータを最適化するというもの
ごく単純なものだと欄レングスが係り易いように値の近い隣接するデータを統一するとか
その為の判定アルゴリズムの向上とか、要するにWAveのままでどれだけクオリティを
保ったまま単純化できるかしたかった。
別に物凄い圧縮率を期待してたわけではなく、音声だけが余りに縮まないので..
0010デフォルトの名無しさん
NGNG>mp3とそうでない区別は容易ではないよ。
言い過ぎ。
0011デフォルトの名無しさん
NGNGhttp://flac.sourceforge.net/comparison.html
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGもしかして、ADPCMを知らないのか?
音質劣化ほとんど無しで、四分の一位になる。
20年以上前からある非常に有名な技術でつ…。
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG圧縮関係は特許が絡んできて面倒だから、フリーで使えるのだとあまり方法が
無いよ。
とりあえず微分してZIPやLZHで圧縮するだけでも、素で圧縮するよりは遥かに
圧縮率が良くなるかと。元の音質がよければ、たぶん2階微分の方がいいと思う。
(2階微分+ハフマンだけでもLZHよりは縮みそうな気がする)
0016デフォルトの名無しさん
NGNGADPCMなどは、次の音のレベルを現在の音を基準にするので、有効となる。
同じように、現在の音を中心にして考えるのが>>15のような微分の手法。
他には、waveletのように周波数成分に分解して符号化する、
アナログtoディジタル信号変換符号化法のような数値データ圧縮法を
音楽データに流用する方法(数値を2次から3次程度で補間する)、
などがある。
とりあえず、論文嫁。
0017デフォルトの名無しさん
NGNGMPEG7やMPEG21(?)を待つのは駄目?>MPEG99くらいならOK(w
ADPCM>
それ自体が圧縮だよね。エン/デコーダ書かなきゃならないでしょ
最悪の場合それでもいいと思うけど、Waveそのものの無駄を削るツール
書いた方が後々の為に便利かなと。ハードディスク容量が惜しいわけじゃ無いし
>>15
よく分からないンで勉強してきま〜す
あと、よくよく考えてみたら8ビットにしないまでも12ー3ビットあたりでも結構行けますね
>>16
スレタイが分かりにくかったようだ。スマソ。
圧縮したいんじゃ無く圧縮の為の最適化がしたかった
極端な話22khzを44khzにリサンプルして圧縮しても容量変わらないよね
けどこれだと温室がやヴァいからサンプル落としても差し支えない部分を調べて部分的に
最適化してくれるツールが書きたかったわけです。
どちらにしろ勉強不足な事には変わりナインで休日使って色々やってみるわ。
0018デフォルトの名無しさん
NGNG圧縮プログラムを書くのと、圧縮しやすいデータに加工するプログラムを書くのと、
大して違いはないと思うのだが。
0019デフォルトの名無しさん
NGNGまあ考え方はいっしょというわけか。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG最終的にzipとかlzhとか一般的な圧縮アルゴリズムで効果出さなきゃならんのだから
ADPCMのアルゴリズムやそう言った音声に特化した方法は意味ないだろ
0022デフォルトの名無しさん
NGNGこんな感じのソフトです。はい。けど悲しい事に私マッカーなんで
今では自作するしか無いんです。
あぽーは突然9erを切り捨てるトか言ってるのでこれを気にウィンにシフト予定ですが
0023デフォルトの名無しさん
NGNG> やはり圧縮時の容量は軽めにしたい。でmp3だとそれなりにCPUが犠牲になる
mp3もほかの圧縮方式も一緒。
むしろ可逆考えると余計に重くなるよ?
0024デフォルトの名無しさん
NGNG同じような波形を持つ部分を、同じ波形に無理やり変形。
そのときの誤差は、別に記録する。
ってのはどうかね?
0025デフォルトの名無しさん
NGNGどう言う意味?可逆だけでって事?
>>同じような波形を持つ部分を、同じ波形に無理やり変形。
そのときの誤差は、別に記録する
似て非なる部分が多い音声にはやっぱり一番効果的だと思うけど
誤差〜はLZH、zip任せなので無理。判定をうまくやってできるだけ同じ部分を
たくさん作るぐらいだね。
0026デフォルトの名無しさん
NGNG似てる波形が近くになるように並べ替えると良さげ
0027デフォルトの名無しさん
NGNG誤差の部分は符号化しちゃってもいいんでは?
それよりも、LZHやgzipを後段に使う意味は、どこにあるんだろうか。
前処理が独自の手法ならば、後段に汎用ツール使っても、再生時に独自手法が必要なわけで。
さらに、どちらもLZSS+Huffmanであり、音声圧縮には殊のほか向いていない。
ADPCMか微分してLZHが、一番圧縮率がかせげそうだが、
それ以外のことをするんだったら、wavelet変換してrangecoderにかけた方が、
よっぽど圧縮できて、しかも処理時間はLZHよりよっぽど速い。
0028デフォルトの名無しさん
NGNG似ているものを近くに並べても圧縮できない罠。
近くに寄せるなら、同じ値が連続するものじゃないと。
それじゃなきゃ、>>24みたいにしてから並び替え。
0029デフォルトの名無しさん
NGNGだから前処理はあくまでWAVEとしての範囲内だって。
だから並べ替えるとか誤差を別に符号化とか無理でしょ。
完全独自とこのやり方どっちがイイかはおいといて
普通のWaveファイルとして扱えて圧縮しやすいっていうのも遣い所アルと思うんだが
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG似てるものを近くに並べれば圧縮率は高くなるよ
多分、数パーセントしか変わらないだろうが
WAVEのような、圧縮率の低いものには、それでも充分に大きい
0033デフォルトの名無しさん
NGNGLZH,gzip使うんだろ?
だったら、似ているものを近くに寄せるより、
同じものを作り出したほうがより圧縮率向上。
あと、音声データのコーパス用意してよ>>1
議論だけじゃなく実際にプログラム書いて実験してみるからさ。
0034デフォルトの名無しさん
NGNGまじっすか。私はフーリエ変換の理解に四苦八苦してる状態です
音声データは別に何でもいいんですが著作権的に大丈夫そうなのを
後でどっかにうpします
0035デフォルトの名無しさん
NGNGttp://rivernet.cool.ne.jp/upload/img/200301191540acg.zip
ttp://rivernet.cool.ne.jp/upload/img/200301191541sim.zip
0036デフォルトの名無しさん
NGNG可逆なんだから同じ物に戻すには差分ファイルが必要になります
で、その差分ファイルを集めて圧縮した時の圧縮率は
差分ファイルに特徴が出ない限り
似たようなものを集めて圧縮率と、ほぼ同じになります
で、音声のファイルの差分に特徴が出る事は期待出来るかどうかですが
おそらく特徴はあまり出ないと思われます
理由としては、そこで特徴が出るなら
もっと圧縮率の高いツールが世の中に出回ってると思うから(←他力本願)
0037デフォルトの名無しさん
NGNGLZSSは似たようなものを圧縮することはできないよ。
あくまで、離散的に完全一致部分列が近隣に出現した場合のみ、圧縮できるのだから。
差分ファイルはLZSS以外の手法(算術符号など)でおそらくかなり有効に圧縮できるはず。
なぜなら、似ているデータの差分の差分は、0近辺に偏ることが期待できるため。
0038デフォルトの名無しさん
NGNG>LZSSは似たようなものを圧縮することはできないよ。
似てるものを集めれば、辞書が一致する可能性が増えるので
それでも、やらないよりは、圧縮に期待が出来ます
>似ているデータの差分の差分は、0近辺に偏ることが期待できるため。
確かに、MIDIなどから規則正しくWAVEに変換したものなら
かなり0方向へ偏る事は期待出来ますが、世の中の音源は
いくら似ていても、差分は、そんなに偏らないと>>36で言ってるのです
それでも差分を使いたいのなら、それまでのデータから次の値を予測し
その予測との誤差を差分にする方が、比較的良いと思われます
0039デフォルトの名無しさん
NGNGおまえ、おもろいな。
0040デフォルトの名無しさん
NGNGどこが?
0041デフォルトの名無しさん
NGNGADPCM自体は、値を現在値との差分にするだけ。
通常16bitの音声データならば、大体12bit程度になる。
>>13の4分の1程度にすることも可能ではあるが、
それはもともとの量子化ビットを16bitより小さくするのに等しく、劣化が起きる。
ただ、データが非常に単調な場合はADPCMは有効なわけで。
であるがしかし、実はADPCMは数値データ圧縮法の簡易バージョンなのであった。
ADPCMを発展させたような手法が数値データ圧縮法にはたくさんあるので、
いろいろ勉強していきやしょう。
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGwaveletやDCTなど、両方に有効な手法も多い。
数値データの圧縮は90年頃盛んで、もう古いよ。
http://search.ieice.org/jpn/2001/abs/j84-a_3_298.htm
http://search.ieice.org/jpn/2002/abs/j85-d2_3_448.htm
http://search.ieice.org/jpn/2000/abs/j83-a_10_1197.htm
http://search.ieice.org/jpn/2001/abs/j84-a_9_1206.htm
http://search.ieice.org/jpn/2001/abs/j84-a_7_893.htm
0044デフォルトの名無しさん
NGNGつっこみどころ満載ですな
0045デフォルトの名無しさん
NGNGバタフライ演算とかやって最終的にX0~3とか出てきますが
これらはどう言う数字なのでしょうか。
ここから周波数と振幅の表にするにはどうしたらいいですか?
0046山崎渉
NGNG0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049ひまだからあげ
NGNGだから、定義を明確にしろと小(ry
圧縮率100%とは、元データと全く同じサイズのデータを吐き出すということ。
ある条件のもとでそれは常に成り立つ。
圧縮率100%とは、ファイルサイズを0にすること。
これは理論的には成り立つが、実際には不可能。
圧縮率100%とは、ファイルサイズを半分にすること。
これは最近のMediaPlayerに実装された可逆圧縮が平均で達成するね。
圧縮率100%とは、ファイルサイズが2倍になること。
これは可能。
0050デフォルトの名無しさん
NGNG自分で考えたつもりでも、先人がいると
特許がらみで自由に使えなくなるって面倒だよな・・。
0051よい子は実行しないでください
NGNGつまり一度文明を滅ぼせと・・・
0052デフォルトの名無しさん
NGNG特許制度だけでいいんじゃ?
0053デフォルトの名無しさん
NGNG無理だね。
楽曲となるとパターンがすげーランダムだから既存の方法だとモデル化が難しい。
つまりエントピー下げるの無理。
0054デフォルトの名無しさん
NGNGdpcmとadpcmの違いがわかってない様子
0055デフォルトの名無しさん
NGNGファイルサイズを0にするのは
全てのデータをファイル名に含ませたりする事で可能
つーわけで、正しくは情報量だね
0056デフォルトの名無しさん
NGNGなにが「つーわけで」なの?
ファイル名に使えるサイズは高々256byte程度なんですが。
0057デフォルトの名無しさん
NGNGプ
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGそれだ!!
0062デフォルトの名無しさん
NGNGADPCMは適応予測が入るから意味が有るんだよ。
>>1
非可逆じゃないけれど、A-LawやμーLaw変換してやると2/3くらいになるよ。
音質もさほど変わらんし。
どうしても可逆じゃなくちゃいかんのなら
・波形が下降している場合は次も下降する可能性が高い
・同じく波形が上昇している場合は次も上昇する可能性が高い
等のコヒーレンスを考慮した適応型のハフマン圧縮が比較的有効だと思う。
コード書いた事ないからどれくらい圧縮できるか知らんけれど。
0063デフォルトの名無しさん
NGNGADPCMは2次微分の変形だね。
Windowsだったら、ADPCMやμ-Law形式のWAVってそのまま再生できるんじゃないの?
デフォルトでオーディオCODECに入ってたような気がするんだが。
0064デフォルトの名無しさん
NGNG可逆が条件になると、DCTもDFTも使えないな。
>>63
>Windowsだったら、ADPCMやμ-Law形式のWAVってそのまま再生できるんじゃないの?
>デフォルトでオーディオCODECに入ってたような気がするんだが。
それはそうかも知れんが、>>1はマカーだから、困るのとちゃう?
μ則の変換/逆変換なんざテーブル持たせれば実時間で演算可能だから、特に問題ないかと…
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNG可逆DCT, DFT を使えばよいのではないだろうか。
>>65
CODECを作れば今回は耐えられそうです。
0067デフォルトの名無しさん
NGNG> 可逆DCT, DFT を使えばよいのではないだろうか。
確かに。しかし性能出す事は茨の道でもあったりする。ガンバレ!
0068デフォルトの名無しさん
NGNG画像のLOCO-Iみたいに、音声でも可逆圧縮特有の方法を探さないと。
0069デフォルトの名無しさん
NGNGプラスはそのまま、マイナスはx_max/2プラス方向にシフトさせてmaxから始まり
maxに終る波形に整形する事により、1/2に圧縮可能。
デコードはminからmaxへの微分値極大を検出して判定して行う。
前提としてナイキスト周波数以下にLPFをかけたような、微分値極大が発生しない
元データであることが必要。
特許とろうとしたら既に先行技術であった(泣
0070デフォルトの名無しさん
NGNG0071山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNG0077山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0078デフォルトの名無しさん
NGNG|( ^^ )|
|\⌒⌒⌒\
\ |⌒⌒⌒~|
0079山崎 渉
NGNG0080デフォルトの名無しさん
NGNG4点FFTの結果に関して、
X0 : DC成分
X1 : 4ポイントで1周期となる正弦波に対する相関結果
(例えば、1KHzサンプリング時の場合、250Hzの成分)
X2 : 4ポイントで2周期となる正弦波に対する相関結果
(例えば、1KHzサンプリング時の場合、500Hzの成分)
X3 : 4ポイントで3周期となる正弦波に対する相関結果
(例えば、1KHzサンプリング時の場合、666Hzの成分
但し、1KHzサンプリングにより再現できる周波数は
500Hzmaxなので、X3は折り返し成分になる?
/4ポイントのデータで3周期の正弦波は表現できない)
0081デフォルトの名無しさん
NGNGフーリエ変換自体は、正弦波(余弦波)に対する相関演算ですが、もし、
単一の位相の正弦波に対して相関演算をすると、位相が90度ズレた
信号が入力された場合、相関結果が零となってしまいます。
これを避けるため、フーリエ変換では、90度異なる位相を持つ2つの正弦波
(余弦波と正弦波)との相関演算を行い、実部(余弦波に対する相関結果)、
と虚部(正弦波に対する相関結果)を組み合わせた複素数の形で結果を
出すようです。
このため、各出力の複素数の絶対値(二乗平均)を取ることにより、
各成分の大きさを得ることができます。
また、複素数の実部と虚部のアークタンジェントを取ることにより、
各成分の位相情報を得ることができます。
尚、ポイント数で周期が完結しない信号を与えた場合には、全出力に
誤差が乗るので、その影響を抑えるために窓関数などというものが
使われるのは、教科書に載っている通りです。
先に申しましたように、高いほうの約半分のデータ(1024ポイントの場合、
X513〜X1023)はスペクトラム情報としては使えないのではないかと
思います。
0082山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGサンプルレート 8 kHz
サンプルサイズ 8 bit
チャネル 1
ビットレート PCM
で録音して、バイナリエディタで開いたところ、
00000000: 5249 4646 89c2 4b01 0057 4156 4566 6d74 RIFF..K..WAVEfmt
00000010: 2012 0000 0001 0001 0040 1f00 0040 1f00 ........@...@..
最初の 5249 4646(RIFF) 89...の89が何かがわからないんです。
これはなんなのでしょうか?
0085デフォルトの名無しさん
NGNG○ビットレート 64kbps
008684
NGNGファイルサイズは 84,938byteで C24B 0100 (84,938 - 8 byte)となります。
5249 4646 <<???89???>>(c2 4b01 00)57 4156 4566 ...
0087デフォルトの名無しさん
NGNG|∀・)ノ゛ ttp://member.nifty.ne.jp/Ryuz/programing/wavefmt.html
0088デフォルトの名無しさん
NGNG008984
NGNGサンプルサイズ 8 bit
チャネル 1
ビットレート 176kbps
でやると、
00000000: 5249 4646 121a 0100 5741 5645 666d 7420 RIFF....WAVEfmt
00000010: 1200 0000 0100 0100 2256 0000 2256 0000 ........"V.."V..
不明なバイナリはなくなってます。これは一体・・・
009084
NGNGサンプルサイズ 8 bit
チャネル 1
ビットレート 64kbps
で数ファイル調べてみたのですが、89が付くやつと付かないやつがあります。
キモちわるー
009184
NGNG00000000: 5249 4646 89a2 89da 0000 5741 5645 666d RIFF......WAVEfm
00000010: 7420 1200 0000 0100 0100 401f 0000 401f t ........@...@.
89と来てa2まで付いてる・・・。
あ、スレ消費スマソ
009284
NGNGMeadowのhexlモードで開くと
00000000: 5249 4646 89a2 89da 0000 5741 5645 666d RIFF......WAVEfm
00000010: 7420 1200 0000 0100 0100 401f 0000 401f t ........@...@.
なのが、
Stirlingで開くと
52 49 46 46 A2 DA 00 00 57 41 56 45 66 6D 74 20
12 00 00 00 01 00 01 00 40 1F 00 00 40 1F 00 00
同じファイルなのに。。。
009384
NGNG009484
NGNG0095デフォルトの名無しさん
NGNGあと、hexl-find-fileでも同じかね?
0096デフォルトの名無しさん
NGNGペントハウス10月号で徹底検証 ★加藤iの★ 全裸盗撮DVD鮮明画像原版入荷
新宿歌舞伎町店頭価格10,000円の品 他商品と同価格 ★★★4枚10,000円★★★
商品映像確認後の★完全アト払い★ ダマしよう無し
同時入荷 ★朝河 蘭 新作 ★D-MODE20 白石ひより
★援交ハメ撮り 品薄入手困難なNo.3・5・8
★女子高生拉致監禁飼育シリーズ 小雪・桃井望
: http://go.fc2.com/yamazaki/
及川奈央 堤さやか 長瀬愛 も依然バカ売れ
サンプル画像充実 日本一安い、安心、確実。歌舞伎町店頭販売10年の
実績と信用と★検挙回数★の多さ? ご覧下さい。 ★★★自信有ります。★★★
http://go.fc2.com/yamazaki/
0097デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています