閉じる
閉じる
×
こんにちは!今回はAACエンコーダの音質比較を書きます!
最近ffmpegでの生放送が増えてきました。
ffmpegには内蔵エンコーダの他に(自分でビルドしないといけませんが)
faacやfdk_aacもあってどれを使えばいいの><って人も多いはず!はず!
というわけで各エンコーダとおまけで生放送では使えませんが一般的な用途でよく使われる
neroAacEncとiTunesのAACエンコーダで音質を調べた結果を書きます!
この記事ではどこまで高い周波数が出てるかで音質を比較します。
そのため必ずしもここに書かれている結果通りの音質に感じない場合があります。
また一般的な音楽ではなくホワイトノイズを用いて調べてますので
一般的な音楽で調査すると違う結果になる可能性があります。
また実際に一般的な音楽でも検証してみましたがある程度違う結果も出ています。
ホワイトノイズでの結果はあくまで参考程度に留めておいて下さい。
以上の点をあらかじめご了承頂いてお読みになって下さい。
今回は上にも書きましたがホワイトノイズを用いて調べます。
まずAudacityで3秒間のホワイトノイズのWAVファイルを作成しました。
作成したwavファイルを各エンコーダでAACにエンコード、
ffmpegで再びWAVファイルに戻しWaveSpectraで波形、周波数を調べました。
ビットレートは音声がAACの放送でもっともよく使われていると思われる(勝手に思っている)
96kbpsと音質重視の場合使ってるかもしれない128kbpsで調査しました。
まずはエンコードする前のホワイトノイズのWAVから見てみましょう。

ここに出ている22050.0Hzが劣化していないときの状態です。(44100.0Hzの半分)
劣化するとグラフの右端までいかず途中で崖のように落ち込むのですが
その崖の手前でどこまで出ているかで比較します。
最初は96kbpsから見ていきます。まずは内蔵エンコーダ(vo_aacenc)からです。

13910.4Hzまで出ています。画像を見れば崖のようになっているのがわかると思います。
崖下になるとほとんど音が出ていない状態です。
音声を圧縮する際は人間に聞こえにくい高音域を削るので削られている状態ですね。
次はfaacです。

10282.1Hzまで出ています。さっきのvo_aacencより低いですね。
ここまで下がると音質の劣化がはっきりと感じられます。
ちなみにfaacはこちらも使用者が多いXSplit等にも使われているそうです。
次はfdk_aacです。

14233.4Hzまで出ています。ffmpegに内蔵できるエンコーダの中ではもっとも高いです。
96kbpsのAACで放送するときはこちらをおすすめします。
ちなみにfdk_aacにはafterburnerという品質を上げるオプションがあるのですが
今回使う場合と両方試してみたところどちらも同じ結果になりました。
ここからは生放送での使用外となります。次はneroAacEncです。

18637.0Hzまで出ています。先ほどまでと比べるとかなり高い数値です。
動画に使うなどの用途でAACに変換する場合はこちらをおすすめします。
最後にiTunesです。

14071.9Hzまで出ています。fdk_aacより若干低い程度ですが
neroAacEncには遠く及ばない数値になっています。
コマンド記述の必要がなく簡単に使えるのであまり音質を気にしない人にはいいかも。
ここまでが96kbpsの音質比較になります。
まとめてみると生放送用途ではfdk_aac>内蔵エンコーダ>faacということになります。
ただ内蔵エンコーダでも悪くはないと思うのでビルドが面倒、わからないという方は
内蔵エンコーダで十分だと思います。よほどいい環境と耳でなければわからないと思います。
つづいて128kbpsの結果を見てみます。まずは内蔵エンコーダから。

19929.0Hzまで出ています。数値的に見るとかなりいいですが
いろんな楽曲で試してみたところここまでの数値が出ることは少なかったです。
なのでこの結果はホワイトノイズ特有の結果として見て下さい。詳しくは後述。
次はfaacです。

15923.8Hzまで出ています。96kbpsのときは一番悪い結果でしたが
128kbpsの今回はそこそこの数値になっています。安定もしているのでおすすめできます。
次はfdk_aacです。

15396.2Hzまで出ています。faacとは逆に96kbpsのときはいい結果でしたが
128kbpsの今回はあまり良くない結果になっています。高ビットレートではあんまりかも。
ここからはまた生放送での使用外となります。次はneroAacEncです。

19929.0Hzまで出ています。さすがに高い数値が出ていますね。
128kbpsでも動画に使うなどの用途でAACに変換する場合はこちらをおすすめします。
最後にiTunesです。

15923.8Hzまで出ています。faacと同じ数値ですね。
neroAacEncには及びませんが悪くはないと思います。
ここまでが128kbpsの音質比較になります。
これをまとめると生放送用途では内蔵エンコーダ>faac>fdk_aacとなりますが
前述のとおり内蔵エンコーダで一般的な音楽等をエンコードすると結果が変わってきます。
ここからはインストやボーカル入り混じった数曲で検証した結果を書いていきます。
内蔵エンコーダでは周波数がどこまで高い数値が出るかが安定しないことがわかりました。
それにホワイトノイズのときのような高い数値は一瞬すら出なかった曲も多いです。
曲の傾向からどうやら音の少ない、ボーカル曲等は数値が低くなりやすく
音の多い曲では数値が高くなりやすいみたいです。(それでもホワイトノイズより低いです)
ホワイトノイズ自体が音の塊のようなものなので高い数値で安定したのかもしれません。
生放送用途では数値が低くなりやすい音の傾向(声中心、BGM小さめ)だと思うので128kbpsのときは内蔵エンコーダは推奨できません。例として図を貼っておきます。

この音源(ポップン20サントラよりThe Sealer)を内蔵エンコーダで128kbpsでエンコしても

安定してる時でもこの程度の音質になります。同条件のfaacやfdk_aacより低いです。
faacは完全に安定とはいきませんがかなりホワイトノイズのときと近い結果が出ています。
なので生放送用途で128kbpsのAACを使いたいときはときはこちらを推奨します。
fdk_aacはかなり安定しています。様々なジャンルの数曲で調べましたが
すべてホワイトノイズとまったく同じ結果が出ました。
生放送用途で96kbpsのAACを使いたいときはこちらを推奨します。
かなり長くなりましたが自分なりの結論を出すと
・生放送用途で96kbpsのAACを使いたいときはfdk_aac
・生放送用途で128kbpsのAACを使いたいときはfaac
・動画や音楽など生放送用途ではないときはneroAacEnc
・(ビルドが面倒なら内蔵エンコーダでもそこまで変わらない)
となります。長々とお付き合いいただきありがとうございました。
またfdk_aacを使う場合は低ビットレートでも音が破綻しにくいHE-AACを使うことができます。48kbps程度でもAACの96kbps程度の音質が実現できるので使用を視野にいれるべきでしょう。(ただし音声ビットレートを上げても音質が上がりにくいというデメリットもあります)
需要があればHE-AACでのエンコーダ、ビットレートごとの音質比較もやろうと思ってます!(と言ってもfdk_aacとaacplusぐらいしか知らないけど・・・)
もしも見たいって人がいらっしゃったらコメントよろしくお願いします!
また生放送とは関係ないおそらくリスナーさんは得しないことを書いてごめんなさい><
また書くこと思いついたら書くのでよろしくお願いします。今度は音ゲーのこと書けたらいいなぁ…
そろそろ設定以外のことも書いていきたいH2NOでした。それでは今回はこれで。
最近ffmpegでの生放送が増えてきました。
ffmpegには内蔵エンコーダの他に(自分でビルドしないといけませんが)
faacやfdk_aacもあってどれを使えばいいの><って人も多いはず!はず!
というわけで各エンコーダとおまけで生放送では使えませんが一般的な用途でよく使われる
neroAacEncとiTunesのAACエンコーダで音質を調べた結果を書きます!
この記事ではどこまで高い周波数が出てるかで音質を比較します。
そのため必ずしもここに書かれている結果通りの音質に感じない場合があります。
また一般的な音楽ではなくホワイトノイズを用いて調べてますので
一般的な音楽で調査すると違う結果になる可能性があります。
また実際に一般的な音楽でも検証してみましたがある程度違う結果も出ています。
ホワイトノイズでの結果はあくまで参考程度に留めておいて下さい。
以上の点をあらかじめご了承頂いてお読みになって下さい。
今回は上にも書きましたがホワイトノイズを用いて調べます。
まずAudacityで3秒間のホワイトノイズのWAVファイルを作成しました。
作成したwavファイルを各エンコーダでAACにエンコード、
ffmpegで再びWAVファイルに戻しWaveSpectraで波形、周波数を調べました。
ビットレートは音声がAACの放送でもっともよく使われていると思われる(勝手に思っている)
96kbpsと音質重視の場合使ってるかもしれない128kbpsで調査しました。
まずはエンコードする前のホワイトノイズのWAVから見てみましょう。

ここに出ている22050.0Hzが劣化していないときの状態です。(44100.0Hzの半分)
劣化するとグラフの右端までいかず途中で崖のように落ち込むのですが
その崖の手前でどこまで出ているかで比較します。
最初は96kbpsから見ていきます。まずは内蔵エンコーダ(vo_aacenc)からです。

13910.4Hzまで出ています。画像を見れば崖のようになっているのがわかると思います。
崖下になるとほとんど音が出ていない状態です。
音声を圧縮する際は人間に聞こえにくい高音域を削るので削られている状態ですね。
次はfaacです。

10282.1Hzまで出ています。さっきのvo_aacencより低いですね。
ここまで下がると音質の劣化がはっきりと感じられます。
ちなみにfaacはこちらも使用者が多いXSplit等にも使われているそうです。
次はfdk_aacです。

14233.4Hzまで出ています。ffmpegに内蔵できるエンコーダの中ではもっとも高いです。
96kbpsのAACで放送するときはこちらをおすすめします。
ちなみにfdk_aacにはafterburnerという品質を上げるオプションがあるのですが
今回使う場合と両方試してみたところどちらも同じ結果になりました。
ここからは生放送での使用外となります。次はneroAacEncです。

18637.0Hzまで出ています。先ほどまでと比べるとかなり高い数値です。
動画に使うなどの用途でAACに変換する場合はこちらをおすすめします。
最後にiTunesです。

14071.9Hzまで出ています。fdk_aacより若干低い程度ですが
neroAacEncには遠く及ばない数値になっています。
コマンド記述の必要がなく簡単に使えるのであまり音質を気にしない人にはいいかも。
ここまでが96kbpsの音質比較になります。
まとめてみると生放送用途ではfdk_aac>内蔵エンコーダ>faacということになります。
ただ内蔵エンコーダでも悪くはないと思うのでビルドが面倒、わからないという方は
内蔵エンコーダで十分だと思います。よほどいい環境と耳でなければわからないと思います。
つづいて128kbpsの結果を見てみます。まずは内蔵エンコーダから。

19929.0Hzまで出ています。数値的に見るとかなりいいですが
いろんな楽曲で試してみたところここまでの数値が出ることは少なかったです。
なのでこの結果はホワイトノイズ特有の結果として見て下さい。詳しくは後述。
次はfaacです。

15923.8Hzまで出ています。96kbpsのときは一番悪い結果でしたが
128kbpsの今回はそこそこの数値になっています。安定もしているのでおすすめできます。
次はfdk_aacです。

15396.2Hzまで出ています。faacとは逆に96kbpsのときはいい結果でしたが
128kbpsの今回はあまり良くない結果になっています。高ビットレートではあんまりかも。
ここからはまた生放送での使用外となります。次はneroAacEncです。

19929.0Hzまで出ています。さすがに高い数値が出ていますね。
128kbpsでも動画に使うなどの用途でAACに変換する場合はこちらをおすすめします。
最後にiTunesです。

15923.8Hzまで出ています。faacと同じ数値ですね。
neroAacEncには及びませんが悪くはないと思います。
ここまでが128kbpsの音質比較になります。
これをまとめると生放送用途では内蔵エンコーダ>faac>fdk_aacとなりますが
前述のとおり内蔵エンコーダで一般的な音楽等をエンコードすると結果が変わってきます。
ここからはインストやボーカル入り混じった数曲で検証した結果を書いていきます。
内蔵エンコーダでは周波数がどこまで高い数値が出るかが安定しないことがわかりました。
それにホワイトノイズのときのような高い数値は一瞬すら出なかった曲も多いです。
曲の傾向からどうやら音の少ない、ボーカル曲等は数値が低くなりやすく
音の多い曲では数値が高くなりやすいみたいです。(それでもホワイトノイズより低いです)
ホワイトノイズ自体が音の塊のようなものなので高い数値で安定したのかもしれません。
生放送用途では数値が低くなりやすい音の傾向(声中心、BGM小さめ)だと思うので128kbpsのときは内蔵エンコーダは推奨できません。例として図を貼っておきます。

この音源(ポップン20サントラよりThe Sealer)を内蔵エンコーダで128kbpsでエンコしても

安定してる時でもこの程度の音質になります。同条件のfaacやfdk_aacより低いです。
faacは完全に安定とはいきませんがかなりホワイトノイズのときと近い結果が出ています。
なので生放送用途で128kbpsのAACを使いたいときはときはこちらを推奨します。
fdk_aacはかなり安定しています。様々なジャンルの数曲で調べましたが
すべてホワイトノイズとまったく同じ結果が出ました。
生放送用途で96kbpsのAACを使いたいときはこちらを推奨します。
かなり長くなりましたが自分なりの結論を出すと
・生放送用途で96kbpsのAACを使いたいときはfdk_aac
・生放送用途で128kbpsのAACを使いたいときはfaac
・動画や音楽など生放送用途ではないときはneroAacEnc
・(ビルドが面倒なら内蔵エンコーダでもそこまで変わらない)
となります。長々とお付き合いいただきありがとうございました。
またfdk_aacを使う場合は低ビットレートでも音が破綻しにくいHE-AACを使うことができます。48kbps程度でもAACの96kbps程度の音質が実現できるので使用を視野にいれるべきでしょう。(ただし音声ビットレートを上げても音質が上がりにくいというデメリットもあります)
需要があればHE-AACでのエンコーダ、ビットレートごとの音質比較もやろうと思ってます!(と言ってもfdk_aacとaacplusぐらいしか知らないけど・・・)
もしも見たいって人がいらっしゃったらコメントよろしくお願いします!
また生放送とは関係ないおそらくリスナーさんは得しないことを書いてごめんなさい><
また書くこと思いついたら書くのでよろしくお願いします。今度は音ゲーのこと書けたらいいなぁ…
そろそろ設定以外のことも書いていきたいH2NOでした。それでは今回はこれで。
広告
コメントコメントを書く
×
ある程度ご存知かもしれませんが、
・ホワイトノイズによるテスト
・カットオフ周波数による音質の判定
どちらもあまり意味がありません。
この手のものは人間の知覚特性に基づいたものなので、一般的な音源の官能テストに限ります。
一般的に、iTunesのAACは、かなり優秀とされています。
下のURLが示す実験結果では、Opus>AAC(iTunes)>ogg>=mp3>>faac という結果になっています。
http://listening-test.coresv.net/results.htm
個人的にはAAC自体は、優秀なのですが、オープンソースなfaac、fdk aacがイマイチなので、オープンソースなlameが最強なmp3と比べると煩わしさを感じますね・・・。
>>2
qaacは、単なるwrapperで実態はitunesです。
・ホワイトノイズによるテスト
・カットオフ周波数による音質の判定
どちらもあまり意味がありません。
この手のものは人間の知覚特性に基づいたものなので、一般的な音源の官能テストに限ります。
一般的に、iTunesのAACは、かなり優秀とされています。
下のURLが示す実験結果では、Opus>AAC(iTunes)>ogg>=mp3>>faac という結果になっています。
http://listening-test.coresv.net/results.htm
個人的にはAAC自体は、優秀なのですが、オープンソースなfaac、fdk aacがイマイチなので、オープンソースなlameが最強なmp3と比べると煩わしさを感じますね・・・。
>>2
qaacは、単なるwrapperで実態はitunesです。