平成 24 年度 卒業研究発表会 MP3 player/encoder for VC++/C++ 著者 服部翔真 指導教員 川上由紀 前川公男 1. は じ め に MP3 と い う フ ォ ー マ ッ ト は 、 現 在 多 く 普 及 し て いる。理由として、インターネット上での音楽の や り と り が 出 来 る ほ ど の 圧 縮 率 が あ る 。 MP3 プ レ イヤーの登場も大きく関係している。 本 研 究 で は 、 MP3 の 特 徴 、 背 景 に 関 し て 知 識 を 深 め る 。 ま た 、 得 た 知 識 を 用 い て 、 MP3 エ ン コ ー ダ の 作 成 、 並 び に MP3 プ レ イ ヤ ー を 作 成 す る 。 2. MPEG Audio layer-3 (MP3)の 概 要 MPEG と い う の は 、「 Moving Picture Expert Group」 の 略 で あ る 。 こ れ は 国 際 標 準 化 機 構 (ISO) に設けられた動画像の圧縮の規格をつくる団体名 のことを指す。映像や音声のファイルは、非常に 大 き く 、取 り 扱 い が と て も 大 変 で あ る 。そ の た め 、 デ ー タ を 圧 縮 し 、 デ ィ ス ク や メ モ リ 、 ま た は CPU が 取 り 扱 い や す い 大 き さ に す る こ と を MPEG は 目 的 と し て い る 。 そ し て 、こ の グ ル ー プ の 出 し て い る 圧 縮 の 規 格 を MPEG と も 呼 ん で い る 。 この規格の中で、インターネット上での音楽の やりとりなどでも扱えるようにした圧縮の規格が MP3 と 呼 ば れ て い る 。 MP3 の 特 徴 は 、 以 下 の よ う に 大 き く 二 つ に 分 け られる。図に示すように、人が聞こえない範囲の 音をカットすることにより、上記の特徴が生まれ る。 ① 音 質 は CD と ほ ぼ 同 等 ② デ ー タ サ イ ズ が WAV フ ァ イ ル の 1/10 程 度 これら2つの特徴は、人間の音響心理特性を利用 して実現される。 3. MP3 エ ン コ ー ダ の 作 成 エンコードとは、情報を一定の規則に従ってデ ータに置き換えて記録することをいう。また、デ ータ圧縮や暗号化などにも用いられる。本研究で は 、 WAV フ ァ イ ル を MP3 フ ァ イ ル に 変 換 す る こ と を示すものとする。 3.1 MDCT に お け る 周 波 数 変 換 MPEG に は い く つ か 規 格 が あ る 。 MP3 エ ン コ ー ド の 特 徴 に は 、 周 波 数 変 換 と し て MDCT(Modified Discrete Cosine Transform:変 形 離 散 コ サ イ ン 変 換 ) が あ る 。 MDCT は 、 DCT(Discrete Cosine Transform:離 散 コ サ イ ン 変 換 )を 修 正 し 、変 形 さ せ た も の で あ る 。 MDCT と DCT の 大 き な 違 い は 、 DCT の処理の直前に窓関数乗算をしている点である。 こうすることによって周波数分解能が高くなり、 音響心理特性を適用しやすくなる。 3.2 エ ン コ ー ダ の 概 要 作 成 し た エ ン コ ー ダ に は 、 LAME(Lame Ain’t MP3 Encoder)と い う ラ イ ブ ラ リ を 使 用 し て い る 。 エ ン コ ー ド 処 理 に お い て 、 WAV フ ァ イ ル の MP3 フ ァ イ ル へ の エ ン コ ー ド 部 を Lame-Enc DLL が 行 い 、 そ の 他 フ ァ イ ル 操 作 を C++で 実 装 し た 。 以下に作成したエンコーダのファイル構成図と 実行結果示す。 図 2 ファイル構成図 図 3 エンコード実行結果 図 1 音響心理特性による音声圧縮 平成 24 年度 卒業研究発表会 4. VC++を 用 い た MP3 プ レ イ ヤ ー の 作 成 プ レ イ ヤ ー は 、 VisualC++ 2010 を 用 い て 、 ダ イ アログベースで作成した。 4.1 作 成 し た プ レ イ ヤ ー の 機 能 現 在 、 作 成 し た MP3 プ レ イ ヤ ー に は 以 下 の よ う な機能がある。図 4 にプレイヤーのインタフェー スを示す。 ①再生中の曲のファイル名表示 ②再生中のファイルの再生時間の表示 ③再生中のファイル数の表示 ④ ID3Tag 情 報 の 表 示 ⑤飛ばして次・前の曲から再生 ⑥ファイルの再生 ⑦再生中の曲の一時停止 ⑧曲の再生の停止 ⑨再生中の曲の波形の表示 4.4 波 形 表 示 波 形 の 表 示 は 0.25 秒 に 一 度 行 い 、 約 0.01 秒 分 の波形を表示している。 図 5 波形表示のタイミング 一時停止の際には波形を留めたまま演奏を停止 する。また、停止の際には無音状態の波形を表示 する。 (a) 一 時 停 止 (b) 停 止 図 6 一時停止中と停止中の波形 図 4 プレイヤーのユーザインタフェース 4.2 使 用 し た ラ イ ブ ラ リ 「 VBMP3」 に つ い て 自 作 MP3 プ レ イ ヤ ー を 制 作 す る に あ た っ て 、ミ ケ 氏 作 「 Visual C++用 MP3 操 作 DLL [ 3 ] 」 を 使 用 し た 。 デ コ ー ド 部 分 に は 、 Xing Technology 社 がフリーで公開しているデコードライブラリを 使用している。以下にその特徴を記述する。 ① す べ て の MP3 形 式 に 対 応 。 ② スレッドの利用により、リアルタイムな操 作が可能。 ③ コールバック関数により、再生時間及びス テ ー タ ス を DLL か ら 自 動 的 に 通 知 。 ④タグの編集機能。 4.3 プ レ イ ヤ ー へ の フ ァ イ ル 登 録 ファイルの登録はドラッグ&ドロップにて行う。 ま た 、 対 応 し て い る 拡 張 子 は “ mp3” の み で あ る 。 現 時 点 で は 、 MP3 フ ァ イ ル か ど う か は 拡 張 子 で 判 別 し て い る た め 、実 際 に は MP3 フ ァ イ ル で も 拡 張 子 が 違 う と 弾 か れ る 。 逆 に 、 MP3 フ ァ イ ル で な く て も 拡 張 子 が “ mp3” な ら ば 、 登 録 さ れ て し ま う 。 そのときは再生時にエラーが出る。 5. ま と め MP3 に 関 す る 情 報 圧 縮 技 術 を 学 ん で 、 技 術 者 が い か に し て CD 音 源 の 音 質 を 保 っ た ま ま 高 い 圧 縮 率を実現するかという、一見矛盾した目的を実現 してきたかを知ることができた。 エンコーダと、プレイヤーを作成するうえで MP3 フ ァ イ ル を 操 作 し た が 、 タ グ の 編 集 、 ビ ッ ト レートなどの変更がとても容易に行えた。こうい っ た こ と を 実 感 し て 、 MP3 は ほ と ん ど 完 成 さ れ た フォーマットだということがわかった。しかし、 不正コピーなどによる著作権問題やライセンス問 題 が 起 こ っ た こ と か ら 、 MP3 は 世 に 普 及 さ せ る に は問題があるのではないかと思った。 [参 考 文 献 ] [1]富 永 丈 博 の ホ ー ム ペ ー ジ : http://www.initialt.org/index.html [2]開 発 者 向 け 技 術 情 報 サ イ ト MSDN: http://msdn.microsoft.com/ja-jp/default.aspx [3]Mi-Ke’ s HomePage: http://hp.vector.co.jp/authors/VA011457/
© Copyright 2024 Paperzz