Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。 一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。 十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。  記事の転載や、基板・キットの商用利用の方は、ご連絡ください。
    学生やサークルの学習目的でまとめてご購入する場合は特別なコースをご用意させていただきます。

スポンサー

« RaspberryPiに最新のRT-Linuxを入れる方法 | トップページ | OSC 2018 東京/Spring 2/23(金)、2/24(土)に出展します。 »

2018年2月12日 (月)

AACを最高の音質で聴くためのMPDコンパイル FDK-AAC-0.1.5

MPD(Music Player Daemon)って音が良くないよね。 と思っている方々はもしかしてAACを聴いていませんか?

iTunesやmoraなどで楽曲を購入するとフォーマットはAAC(Advanced Audio Codec)になっています。

この圧縮フォーマットはATRAC(MDに使用)やPASC(DCCに使用)、MP3などよりも後発のコーデックで、圧縮率に優れていると言われています。

Aac001

しかし、MPDでAACの曲を再生すると透明感や臨場感がなく128kbps以下のMP3を聴いているような錯覚に襲われますね。

データレートが250kbps以上もあり、MP3よりも圧縮率に優れている楽曲データとは思えない音です。

なぜでしょう?

 

MPDをよくある例通りにコンパイルしたり、apt-getでインストールするとFAAD(libfaad)というライブラリを使ってAACをデコードします。

Faad_3

<< FAADは16bit出力 >>

一般ユーザの間では、このFAADが音質劣化の元凶だということは、あまり知られていないのかもしれません。また、SoftwareVolumeを併用すると、libfaadがデコードした16bitデータから更にbitが削られて量子化ノイズの影響まで受けてしまいます。

sudo apt-get remove libfaad-dev

として、libfaad-devをアンインストールしてMPDをコンパイルすると、ffmpeg内のAACデコーダを使うようになります。ffmpegの内部AACデコーダはMP3デコーダと同様に24bit処理し、24bit出力するため、少しキメ細かい音が出るようになります。

Fdkaac_2

<< ffmpegは24bit出力 >>

100%ボリュームで比較してもFAADよりずっと良い音になります。

 

 

本日は、せっかくですからAACエンコーダ/デコーダで最も音が良いと言われているFDK-AACを使ってみましょう。 MPDに直接取り込めないためffmpegに同梱するのがミソです。

Fdkaac_2

<< FDK-AACはffmpegの外部ライブラリ >>

FDK-AACはあのFraunhofer IISのコーデックらしいです。この名前をいって解かる人はかなりのツウです。おおよそ20年前、mp3黎明期において抜群の音質を誇ったエンコーダーです。

 

以下、ピンク文字はコマンド入力です。コピペしてください。

 

 

FDK-AAC-0.1.5 のコンパイル

https://ja.osdn.net/projects/sfnet_opencore-amr/

こちらから fdk-aac-0.1.5.tar.gz をダウンロードして展開(tar xvf)し、フォルダの中に入ります。

./configure CFLAGS="-O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard" CXXFLAGS="-O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard"

make -j4

sudo make install

※FDK-AACは、ソースコードは公開されていますが、著作権の問題だかで、バイナリとして配布は許されていない様子です。使いたい場合は、ソースからコンパイルしかありません。

 

 

ffmpeg-3.4.2 のコンパイル

https://www.ffmpeg.org/download.html

こちらから ffmpeg-3.4.2.tar.bz2 をダウンロードして展開(tar xvf)し、フォルダの中に入ります。

sudo nano /etc/ld.so.conf    で下記のように編集します。

include ld.so.conf.d/*.conf
/usr/local/lib

ファイルを保存して閉じます。

sudo ldconfig

ldd `which ffmpeg`

とコマンドを打ち、リンク先に not found という表示がないことを確認します。(lddコマンドは、コンパイルとインストールがが終わった後に確認するのが正解な気がします。)

   linux-vdso.so.1 (0x7efeb000)
   /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76f40000)
   libasound.so.2 => /usr/lib/arm-linux-gnueabihf/libasound.so.2 (0x76e42000)
   libfdk-aac.so.1 => /usr/local/lib/libfdk-aac.so.1 (0x76d9b000)
   libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x76d1c000)
   libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x76cf5000)
   libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76ccc000)
   libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76b8d000)
   libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76b7a000)
   librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x76b63000)
   /lib/ld-linux-armhf.so.3 (0x76f56000)

 

configureです。 内蔵aacデコーダをDisable、fdk-aacをEnableします。

./configure --enable-gpl --enable-version3 --enable-nonfree \
--enable-libfdk-aac --disable-decoder=aac \
--disable-decoder=aac_fixed --disable-decoder=aac_latm

 

最後にコンパイルします。

make -j4

sudo make install

ffmpegのコンパイルは結構時間がかかります。

 

 

MPD 0.20.11 のコンパイル

Moode Audio のレシピに書かれているMPDのコンパイル方法に準拠します。もっと新しいバージョンにしても良いと思います。その時はバージョン番号を読み換えて下さい。

sudo apt-get -y install automake libmad0-dev libmpg123-dev \
libid3tag0-dev libflac-dev libvorbis-dev \
libwavpack-dev libavcodec-dev libavformat-dev \
libmp3lame-dev libsoxr-dev \
libcdio-paranoia-dev libiso9660-dev \
libcurl4-gnutls-dev libasound2-dev \
libshout3-dev libyajl-dev libmpdclient-dev \
libavahi-client-dev libsystemd-dev \
libwrap0-dev libboost-dev libicu-dev \
libglib2.0-dev

ここまで一気にコピペします。

念のためfaadが紛れ込まないようにアンインストールしておきましょう。

sudo apt-get remove libfaad-dev

sudo wget http://www.musicpd.org/download/mpd/0.20/mpd-0.20.11.tar.xz

sudo tar xf mpd-0.20.11.tar.xz

cd mpd-0.20.11

sudo sh autogen.sh

ビルドオプションはPi2、Pi3用にします。vfpやneonを使用します。

sudo ./configure CFLAGS="-O2 -march=armv7-a -mtune=cortex-a7 \
-mfpu=neon-vfpv4 -mfloat-abi=hard" \
CXXFLAGS="-O2 -march=armv7-a -mtune=cortex-a7 \
-mfpu=neon-vfpv4 -mfloat-abi=hard" \
--enable-database --enable-libmpdclient --enable-alsa \
--enable-curl --enable-dsd --enable-ffmpeg --enable-flac \
--enable-id3 --enable-soundcloud --enable-lame-encoder --enable-mad \
--enable-mpg123 --enable-pipe-output --enable-recorder-output --enable-shout \
--enable-vorbis --enable-wave-encoder --enable-wavpack --enable-httpd-output \
--enable-soxr --with-zeroconf=avahi \
--disable-bzip2 --disable-zzip --disable-fluidsynth --disable-gme \
--disable-wildmidi --disable-sqlite --disable-jack --disable-ao --disable-oss \
--disable-ipv6 --disable-pulse --disable-nfs --disable-smbclient \
--disable-upnp --disable-expat --disable-lsr \
--disable-sndfile --disable-audiofile --disable-sidplay

ここまで一気にコピペします。

sudo make -j4

sudo make install

sudo strip --strip-unneeded /usr/local/bin/mpd

これで完了です。

 

既にmpdをapt-getでインストールしている場合は、make -j4でコンパイルが終わったあと、

sudo strip --strip-unneeded src/mpd

sudo cp -f src/mpd /usr/bin/

とした方が、これまでの環境(設定)を引き継げます。

 

駆け足で書いてしまいましたが、ソースコードのダウンロードはPC上で行い、WinSCPにてRaspberryPiに転送するのが手っ取り早いです。macな人はscpコマンドで転送できるはずです。

 

 

雑感

iTunesで購入した楽曲もMPDで聴きたいという人は挑戦してみてはいかがでしょうか。

エンコード(圧縮)するソフトウェアで音が変わるというのは有名ですが、デコード(伸張)側でもかなり影響があることが実感できます。

 

高域の音数が格段に増えて、まるで違う音源を聴いているようです。残響音もきれいに響いて空間が広く感じられます。はっきり言ってWindowsのiTunes上で再生したときよりも良いです。

LAME 320kbpsのMP3に勝る音になったかどうかは何とも言えませんが、libfaadのAACの音と比べると相当まともな音になっていて、これなら十分音楽を楽しめるのではないでしょうか。

 

iTunesストアで購入した曲も、これからはMPDで再生する時代です!

というのは言い過ぎですね。

Aac002

Mastered for iTunes の効能がどの程度あるのかは分かりません。。。 

 

ざっと感想を書いておきます。

FAAD

 平面的で奥行き感も透明感もない。

FDK-AAC

 高域が散らばるようなステレオ感があり、オーディオ的に楽しませてくれる。ただ、曲によっては若干うるさいと感じる部分もある。

ffmpeg内蔵

 中音域のキメ細かさはあるが少し落ち着いた雰囲気。 へんな派手さがないので多くの曲で破綻しない。万人向けと思われる。

 

以上、参考になれば幸いです。

 

 

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村
ブログランキングに参加中です。 めざせ1位! 
もしよろしければ「ぽちっと」お願いします。 

« RaspberryPiに最新のRT-Linuxを入れる方法 | トップページ | OSC 2018 東京/Spring 2/23(金)、2/24(土)に出展します。 »

PCオーディオ」カテゴリの記事

コメント

ffmpeg内蔵AACデコーダをdisableする方法ですが、./configure するときに--disable-decoder=aac --disable-decoder=aac_fixed --disable-decoder=aac_latm のオプションを与えるのではダメなのでしょうか?
configure後のリストからaacが消えることは確認してあります。

ご指摘、ありがとうございます。
その方法の方が正しいですね。 記事の方も訂正いたします。

よろしくお願いいたします。

自分のiPod touchにはMacのiTunesにてAAC320(VBR)でエンコードした曲を入れているんですが、iPod touchにLightning - Docアダプターを接続し、アダプター内蔵のDAC出力をCQ版ぺるけ式ヘッドフォンアンプに接続すると、いい音を聴かせてくれます。

この場合、デコーダーはおそらくiPod touchのiOSに組み込まれているんだと思いますが、同じAACデータを別のエンコーダーと聞き比べたことはないので、上記の組み合わせが如何程のレベルなのかはちょっとわかりません。

三毛ランジェロさん

appleのAACデコーダは、winとmac、iPodで、わざわざ別のソースコードにするということは無いと思うので、デコードされた結果は一緒のような気もしますが、アダプタ内蔵のDACが優秀なのかもしれません。
また、ぺるけ式ヘッドホンアンプは、シンプルながら、なかなかの音を聞かせてくれるアンプと思います。

FDK-AACは、AppleのAACデコーダと少し違う傾向の音で、若干やかましい部分もあると思います。 しかし、高域の音の飛び散り方(?)がスゴく、ステレオ感が増して聞こえます。 ヘッドホンだとやかましい部分が耳に付く可能性もあり、好みが分かれるかもしれません。

AACデータを記事中のffmpegでwavに変換してiPodで聞き比べると、差が見えてくるかもしれませんね。

たかじんさん

AppleがiPhoneからヘッドフォンジャックを廃止した時、ほぼ同時に発売したLightning - 3.5mmヘッドフォンジャックアダプターがあるんですが、これは明らかにLightning - Docアダプター内蔵のDACより音質が劣ります。実際に購入して、iPadとヘッドフォンアンプを使って比較実験して確認しました。もっとも、測定機材を使用して客観的に比較した訳ではなく、あくまでも聴覚上の比較ですが、それでも差異が認められました。

Appleとしては、「ヘッドフォンジャックを廃止する代わりにステレオミニプラグが使えるアダプターを安価に供給するから許してね」ということで、コスト抑制のために上質なDACは搭載しなかったものと推測しています。

三毛ランジェロさん

Docタイプはスペースに余裕があるので、デカップリングコンデンサを入れられそうですが、変換ケーブルは厳しいでしょうね。

あとは、消費電流の問題もあり、変換ケーブルタイプでは音質的に不利になる可能性もあるかと思います。
もちろん、コスト的な部分で安価なDAC/ヘッドホンドライブ回路を搭載しているかもしれませんね。

試してみて、音質の変化に驚きました。
今まで聴いていた音はなんだっただろうという感じです。

ちなみに、MpdPlayのライブラリを入れ替えたのですが、Rpi 3でコンパイルしてPi Zeroで使っています。FDK-AACのconfigrパラメータも記事のままで大丈夫でした。

sliverbbsさん

使ってくれる人がいてよかったです。ありがとうございます。

Pi Zeroでもそのまま使えたんですね。 なぜだろう。。。 実はneonなど有効になっていないのかな??

遅くなりましたが、確認してみました。

lpi@raspberrypi:~/ffmpeg-3.4.2 $ ldd ffmpeg | grep fdk
libfdk-aac.so.1 => /usr/local/lib/libfdk-aac.so.1 (0xb6f27000)

pi@raspberrypi:~/ffmpeg-3.4.2 $ ldd ffmpeg | grep faad
pi@raspberrypi:~/ffmpeg-3.4.2 $

こんな感じです。

sliverbbs さん

イイ感じですね。

FAADが取り込まれていてもmpd.confを編集すればffmpegに流すことが出来るらしいのですが、moodeやvolumioを使っていると、mpd.confの編集はWEB-UIに任せて置いた方が整合性が崩れなくて良いですからね。

たかじんさん こんにちは

Moode 4.0とSabreberryDAC zeroとpi3でFDK-AACを組み込んで使っております。
DAC zeroは、OSコンの100uF×5を追加、ケースは、千石のアルミ削り出しにしております。2個のステレオミニジャックのネジが閉まらず、ホットメルトで固めております。
今まで、痩せて聞こえて、Moodeのミキサーで低音を盛り上げても物足りなく感じておりました。
高音の今まででていなかった音がでてきて、低音もくっきりしてきました。
すごい、良い感じです。
Moode 4.0をスクリプトは、何回か失敗しましたが、最初SDカードの領域拡張でもしているのでしょうか、ゆっくり待ってからやると失敗しなくなりました。

toto さん

DAC zeroにOSコン 5個ですか。 すごい豪華ですね。

あのアルミ削りだしケースは、肉厚があって、端子などを設置しにくそうですが、オーディオ機器としては良さそうです。

おっしゃるとおりMoodeのスクリプト、長い時間待つことが重要です。 ネットワーク環境が良い人は1時間くらいで終わるみたいです。 私の家だと4時間ほどかかっていました。

たかじんさん こんにちは

Moode4.1にインストールしてみました。

moode4.1のMPDバージョンを調べると、0.20.18
ffmpeg,3.2.10-1
次に、インストールしたバージョンは、
fdk-aac-0.1.6.tar.gz
ffmpeg-4.0.tar.bz2
MPD 0.20.18
2回失敗した後、3回目に上手くいきました。


toto さん

三度目の正直 ですね。 うまくいってよかったです。
Moode4.1の導入スクリプトは、エラーがでるといううわさがありますね。
私も時間ができましたら挑戦しようと思います。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/587107/66383249

この記事へのトラックバック一覧です: AACを最高の音質で聴くためのMPDコンパイル FDK-AAC-0.1.5:

« RaspberryPiに最新のRT-Linuxを入れる方法 | トップページ | OSC 2018 東京/Spring 2/23(金)、2/24(土)に出展します。 »

サイト内検索

Sponsors link

2018年8月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ