180 likes | 285 Views
コンピュータと音. B3 入野仁志( irino). 連続データと離散データ. アナログは連続データ デジタル化するという事は離散データに標本化する。. サンプリング定理. 聴こうとする2倍の周波数でサンプリングする。 CD のサンプリング周波数は44.1 kHz よって CD は22.05 kHz の音を奏でてる。 ちなみに人間の可聴区域は一般的に20~20 kHz とされている。. サンプリング定理. 情報を小さくする. 可逆圧縮 元通りに戻る圧縮方法→文書など欠損があってはならないデータに利用 Run Length Huffman LZ
E N D
コンピュータと音 B3 入野仁志(irino)
連続データと離散データ • アナログは連続データ • デジタル化するという事は離散データに標本化する。
サンプリング定理 • 聴こうとする2倍の周波数でサンプリングする。 • CDのサンプリング周波数は44.1kHz • よってCDは22.05kHzの音を奏でてる。 • ちなみに人間の可聴区域は一般的に20~20kHzとされている。
情報を小さくする • 可逆圧縮 • 元通りに戻る圧縮方法→文書など欠損があってはならないデータに利用 • Run Length • Huffman • LZ • 非(不)可逆圧縮 • 元通りに戻らない圧縮方法→音楽、映像などの感覚で同じと感じれば必ずしも正確でなくてよいデータに利用 • MPEG,JPEG • MP3 • 心理聴覚分析
MP3って何? • Mpeg 3? × • Mpeg3は別物。今はもうない。Mpeg2に統合された。 • Mpeg 1 Audio Layer 3? ○ • 昔はそうだったけど最近はちょっと意味が拡張されている。 • ISO-MPEG ({1|2|2.5}) Audio Layer 3 (IS 11172-3 and IS 13818-3) ◎
Versionの違い • Mpeg 1 Audio Layer 3 • いわゆるMP3 • Mpeg 2Audio Layer 3 (Mpeg2/BC) • マルチチャンネル対応 • Mpeg 2.5 Audio Layer 3 (Mpeg2/BC) • 低サンプリングレート(16,22.05,24kHz)対応 • Mpeg-2/AAC • Mpeg1,Mpeg2/BCとの互換性を捨てる • その代わりに音質の向上をさせる(5チャンネルを320kbpsで符号化した際に欧州放送連合が定めた放送品質を達成できる)
参考(1) • MPEG-2/BCのBCとは? • Backward Compatible • 下位互換性の意 • MPEG-2/AACのAACとは? • Advanced Audio Codec
参考(2) • MPEG-2/BCのマルチチャンネルとMPEG1の互換性。 • L0=L+x*C+y*LS • R0=R+x*C+y*RS • x,yは予め定められた整数
MP3の処理の流れ • 心理聴覚分析 • サブバンド符号化 • MDCT(変形離散コサイン変換) • 折り返し歪み削減バタフライ • (非線形)量子化 • ハフマン符号化
不要と判断される情報 • 聴こえない範囲の音は削除 • 最小可聴限界の周波数特性 • マスキング効果 • 大きな音の直前直後にある周波数が同程度の小さな音や、大きな音の中に埋もれた周波数が同程度の小さな音などは、聴き取れない。→削除
インテンシティステレオ • ステレオサウンドの場合、単純に考えると、データ量はモノラルの2倍になってしまう • インテンシティステレオモードは、聴覚の時間差による位置検出能力は高域ほど低い、という特性を利用したもので、高域のブロックに関しては、左右独立したデータは持たずモノラル化してしまう。
サブバンド符号化 • 入力信号を細かい周波数帯域ごとに分ける。 • 入力信号がある周波数帯域に偏在する時に特に有効 • MP3では32個に分解する • 一番信号が偏在している一つを間引き、MDCT処理に渡す
MDCT(変形離散コサイン変換) • サブバンド符号化で得られた18個ずつ集める。この18個は時間順に並んでいる。 • これは時間順に並んでいる。これを周波数順に並べなおすのがMDCT。 • サブバンド符号化で得られた情報を50%ずつ重ね合わせる。(window幅36) • 隣り合わせのデータと重ね合わせて量子化誤差を防ぐ
折り返し歪み削減バタフライ • サブバンド符号化時に間引きしたデータは重複部分がある。それを除去する。
(非線形)量子化 • 各サブバンドサンプルをスケールファクタ(ダイナミックレンジを揃える)で正規化した値X(n),サブバンドごとに割り当てられたビット数に対応した値A(n)とB(n)を用いて、A(n)*X(n)+B(n)に従って量子化する。
ハフマン符号化 • 前述で生成されたデータをハフマン符号化する。 • ハフマン符号化の考え方は、よく出てくる情報に短い情報量を割り当てようというもの。
ハフマン符号化の例 • AABBCCCCCCDDという文字列があったときに各文字に2bit割り当てると2*12=24 • Cに1bit,Aに2bit,b,cに3bit割り当てると、1*6+2*2+3*4=22 • というわけで情報量が少なくなる。