音声エンコーダの遅延問題

複数のエンコーダを使ってそれぞれの遅延の有無と、音声時間の変動を調べた。

まとめ


可逆圧縮は時間は変わらず、Fraunhofer_mp3, lame, speex だけ音声が短くなり、それ以外の全ては時間が長くなった。AAC では特に fdk_aac_he, fdk_aac_he_v2 で大きな遅延が見られ、nero_aac は 1pass と 2pass を比較しても遅延が発生しなかった。AAC では LC よりも HE, HE よりも HE_v2 の方が遅延や時間が長くなったが、aacplus だけ、HE と HE_v2 の長さが一致した。

AAC 以外のエンコードについては opus は優秀であるが動画投稿向けではない。ローカル環境の保存として x264/opus MKV や、音楽ファイルとして有効に使える。また歌ってみたなどで MIX を依頼するときに無圧縮の音声ファイルである WAV を送ってくださいと言われるのは、無劣化であるというのもあるが、この遅延問題も大きな理由である。

関連記事
AviUtl で出力したときにどのような場合に音がずれるのか

使用エンコーダ


  • iTunes 11.0.2 for Windows (64-bit)
    itunes_aac, itunes_mp3, itunes_alac
    http://www.apple.com/jp/itunes/download/

  • ffmpeg-20130408-git-9dc88ac-win64-static,
    libopus, native_aac, speex, nellymoser, alac, flac は zeranoe ビルドより
    http://ffmpeg.zeranoe.com/builds/win64/static/
  • ffmpeg-HEAD-90a56eb.tar.gz
    libaacplus-2.0.2
    http://tipok.org.ua/node/17
    fdk-aac
    https://github.com/mstorsjo/fdk-aac
    faac-1.28
    http://sourceforge.net/projects/faac/files/faac-src/

  • えこでこツール 1.14
    http://sourceforge.jp/projects/ecodecotool/
    Fraunhofer は付属のもの

  • neroAacEnc 1.5.4.0
    http://www.nero.com/jpn/company/about-nero/nero-aac-codec.php

  • Quicktime 7.7.3
    http://www.apple.com/jp/quicktime/download/
    qaac 2.18
    https://sites.google.com/site/qaacpage/cabinet


エンコード素材


魔法少女まどか☆マギカBDの2巻に入っているサウンドトラックの2曲目より。「Salve, terrae magicae」は次回予告に流れる曲で、全3巻のサウンドトラックの中で一番圧縮率が低かった曲である。

エンコーダの種類と内訳


AAC:13
MP3:3
ogg:3
nellymoser:1
可逆圧縮:2
オリジナル:1

AAC


ffmpeg_native_aac_lc
faac_lc
fdk_aac_lc
fdk_aac_he
fdk_aac_he_v2
aacplus_he
aacplus_he_v2
nero_aac_lc
nero_aac_he
nero_aac_he_v2
qaac_lc
qaac_he
itunes_aac_lc

MP3


lame_mp3
fraunhofer_mp3
itunes_mp3

OGG


vorbis
opus
speex

可逆圧縮


itunes_alac
ffmpeg_alac
ffmpeg_flac

その他


nellymoser
itunes_wav

使用コマンドオプション


ffmpeg


-acodec aac -strict -2
-acodec libfaac
-acodec libfdk_aac -ab 128k -afterburner 1
-acodec libfdk_aac -profile:a aac_he -ab 70k -afterburner 1
-acodec libfdk_aac -profile:a aac_he_v2 -signaling explicit_sbr -ab 20k -afterburner 1
-acodec libaacplus -ab 70k // HE-AAC
-acodec libaacplus -ab 20k // HE-AAC v2
-acodec vorbis -strict -2
-acodec libopus -ar 480000
-acodec libmp3lame
-acodec speex -ac 1 -ar 16000 -ab 28k
-acodec nellymoser -ac 1
-acodec alac
-acodec flac

iTunes


aac 160k
mp3 160k

えこでこツール


Fraunhofer cbr 128k

nero


-2pass -lc -br 128000 -of nero_aac_lc_2p.m4a
-2pass -he -br 70000 -of nero_aac_he_2p.m4a
-2pass -hev2 -br 20000 -of nero_aac_he_v2_2p.m4a

qaac


in.wav -o qaac_lc.m4a
in.wav --he -o qaac_he.m4a

検証方法


CD から itunes を使い wav にエンコードし、それぞれのエンコーダを使いエンコードする。そして ffmpeg でモノラル wav にエンコードし、Audacity 2.0.3 で波形表示してオリジナルと比較して遅延の確認と、真空波動研Lite 130324 で音声時間の確認した。ただし、speex と opus はサンプリング周波数が異なるので、44.1kHz の WAV に変換し直している。

エンコード後の音声時間


開始時間や総時間が変わらないのは無圧縮と可逆圧縮である WAV, Flac, Alac だけである。Fraunhofer_mp3, lame, speex だけ音声が短くなり、それ以外は全て時間が長くなった。AAC では LC よりも HE, HE よりも HE_v2 の方が長くなったが、libaacplus だけ、HE と HE_v2 の長さが一致した。opus.mkv で ogg に入っていないのは真空波動研で時間を測れなかったためにmkvコンテナに入れた。

[ori.wav]89.4390.000
[flac.flac]89.4390.000
[alac.m4a]89.4390.000



[aac.m4a]89.463+0.024
[faac.m4a]89.463+0.024
[fdk_lc.m4a]89.486+0.047
[fdk_he.m4a]89.555+0.116
[fdk_he2.m4a]89.578+0.139
[itunse_aac.m4a]89.489+0.050
[libaacplus_he.m4a]89.444+0.005
[libaacplus_he2.m4a]89.444+0.005
[nero_aac_lc.m4a]89.512+0.073
[nero_aac_he.m4a]89.582+0.143
[nero_aac_he_v2.m4a]89.582+0.143
[qaac_lc.m4a]89.489+0.050
[qaac_he.m4a]89.536+0.097



[Fraunhofer.mp3]89.290-0.149
[itunse_mp3.mp3]89.495+0.056
[lame_mp3.mp3]89.365-0.074



[nellymoser.flv]89.447+0.008
[opus.mkv]89.447+0.008
[speex.ogg]89.431-0.008
[vorbis.ogg]89.466+0.027
真空波動研Lite 130324 / DLL 130324 Unicode

エンコード後の音声波形


CDから itunes で wav にエンコードした場合と、そこから可逆圧縮形式の alac や flac にエンコードし、再度 wav に戻しても波形に変化はなかった。

m4a コンテナの低遅延ランキング(// 以下は上の位から遅延秒)
  1. faac, ffmpeg_alac, itunes_alac, nero3種, qaac_lc, itunes_wav
  2. qaac_he // 0.022
  3. aac // 0.002
  4. fdk_lc // 0.024
  5. libaacplus_he // 0.047
  6. fdk-he // 0.020
  7. libaacplus_he2 // 0.002
  8. fdk-he2 // 0.021


上から(aac = ffmpeg_native_aac_lc), faac, fdk_he, fdk_h2_v2, fdk_lc, ffmpeg_alac, itunes_alac, libaacplus_he, libaacplus_he_v2, nero_aac_he, nero_aac_he_v2, nero_aac_lc, ori(itunes_wav), qaac_he, qaac_he

aac_compare.png


m4a 以外の低遅延ランキング
  1. flac, lame_mp3, itunes_wav, vorbis
  2. nellymoser // 0.003
  3. speex, opus // 0.015
  4. Fraunhofer_mp3 // 0.013
  5. itunes_mp3 // 0.012


上から flac, fraunhofer_mp3, itunes_mp3, lame_mp3, nellymoser, opus, ori(itunes_wav), speex, vorbis

other_compare.png


nero の 1pass と 2p(pass) の違いで遅延に差はない
nero_2pass.png


nero と qaac_lc はオリジナルの wav と比べて音が遅延していない
nero_qaac_wav_compare.png


lame_mp3 と vorbis もオリジナルの wav と比べて音が遅延していない
lame_vorbis_wav_compare.png
関連記事

この記事へのコメント

2014/02/04 (火) 14:25:38

音声ファイルがまとめられていて
すごく参考になりました
ただ可逆圧縮がWAVと同じで遅延がないのは変です。
自分が非圧縮と可逆を混ぜてよく聞いてるせいで狂った耳かもしれませんが必ずコンマ数秒ずれます

ロベルト2014/02/04 (火) 21:22:05

コメントありがとうございます。

リンクし忘れていましたが、動画についても調べています。

AviUtl で出力したときにどのような場合に音がずれるのか
http://looooooooop.blog35.fc2.com/blog-entry-1106.html

この記事はけっこう苦労して書いたものですが、

>> 可逆圧縮がWAVと同じで遅延がないのは変です

記事より「ffmpeg でモノラル wav にエンコードし」

の部分で、もしかしたら無圧縮なのでデコード遅延がなくなっているのかもしれません。
今では ffmpeg の音声フィルタを使って波形を表示したり、エンコーダ部分の改良も
それからあるので再度調べると違う結果になるかもしれません。
今は時間が取れなくて再検証できませんが、動画の遅延問題を含めて再検証したいと思っています。

管理人のみ通知 :

トラックバック


ニコニコチャンネル始めました
ニコラボチャンネル
スポンサード リンク
THE IDOLM@STER THE@TER ACTIVITIES 03
THE IDOLM@STER THE@TER ACTIVITIES 03

Fate/EXTELLA REGALIA BOX for PlayStation (R) 4 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4
Fate/EXTELLA REGALIA BOX for PlayStation (R) 4 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4

妖怪ウォッチ くったりぬいぐるみだニャン ジバニャン
妖怪ウォッチ くったりぬいぐるみだニャン ジバニャン

Fate/EXTELLA VELBER BOX 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4
Fate/EXTELLA VELBER BOX 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4

Fate/EXTELLA REGALIA BOX for PlayStation (R) Vita 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS Vita
Fate/EXTELLA REGALIA BOX for PlayStation (R) Vita 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS Vita

【早期購入特典あり】初音ミクシンフォニー~Miku Symphony 2016~オーケストラ ライブ CD(初音ミクシンフォニー描き下ろしクリアファイル付き(ランダム配布))
【早期購入特典あり】初音ミクシンフォニー~Miku Symphony 2016~オーケストラ ライブ CD(初音ミクシンフォニー描き下ろしクリアファイル付き(ランダム配布))

「うたわれるもの 偽りの仮面&二人の白皇」歌集(初回限定盤)
「うたわれるもの 偽りの仮面&二人の白皇」歌集(初回限定盤)

TVアニメ『ラブライブ!サンシャイン!!』挿入歌シングル「想いよひとつになれ/MIRAI TICKET」
TVアニメ『ラブライブ!サンシャイン!!』挿入歌シングル「想いよひとつになれ/MIRAI TICKET」

『刀剣乱舞-花丸-』 歌詠集 其の三 特装盤
『刀剣乱舞-花丸-』 歌詠集 其の三 特装盤

本好きの下剋上~司書になるためには手段を選んでいられません~第一部 「本がないなら作ればいい3」
本好きの下剋上~司書になるためには手段を選んでいられません~第一部 「本がないなら作ればいい3」

新着記事と追記・編集記事
スポンサード リンク
ブログ内検索
プロフィール

Author:ロベルト
お問い合わせはこちらまで
robelt2525[at]gmail.com

中の人 @nico_lab
ブログ更新用 @blo_nico_lab

詳しいプロフィールはこちら

カテゴリ
アクセスの多い記事
記事アーカイブ

最新コメント
リンク
ニコニコ静画
アニメカテゴリ毎時ランキング
免責事項
当ブログはリンクフリーです。記事によりトラブルが生じた場合でも、当ブログ管理人は一切の責任を負いません。 当ブログに記載されている情報の正誤や利用は、ご自身の判断でお願いします。 紹介したアプリケーションに関する問い合わせは作者に問い合わせてください。ニコニコ動画に関する質問はまずは公式掲示板、2ch、各Q&Aサイトを参照ください。
ブログの読者になる(RSS)
アクセス数