| この記事の要点 |
|
概要
AAC(Advanced Audio Coding、エーエーシー)は、MPEG-2 Part 7(ISO/IEC 13818-7)および MPEG-4 Part 3(ISO/IEC 14496-3)で標準化された非可逆音声圧縮形式です。1997 年に Fraunhofer IIS、AT&T、Sony、Dolby、Nokia など複数の企業の共同開発によって策定され、それまで広く普及していた MP3 の後継として位置づけられました。
最大の特徴は、同じビットレートでも MP3 より明らかに高音質であることです。これは、改良された変換窓・より大きな周波数分解能・予測符号化・ノイズ整形(TNS)など、多数の符号化ツールが追加されているためで、一般に「MP3 128kbps ≒ AAC 96kbps」とされます。実用的には 128kbps〜256kbps の AAC が音楽配信の主流ビットレートで、Apple Music は 256kbps AAC、YouTube も多くの動画で AAC 128〜192kbps を採用しています。
AAC のもう一つの重要な側面は、事実上の業界標準となっている点です。iTunes Store の楽曲ダウンロードは初期から AAC、地上デジタル放送(日本)・ワンセグ・YouTube・Netflix・Spotify(高音質設定)・PlayStation/Xbox の音声、Bluetooth A2DP の上位コーデック、すべてに AAC が組み込まれています。MP3 がフリーソフトと家電の隅々まで浸透している一方で、ストリーミング時代の主役は AAC に置き換わったと言ってよい状況です。
内部構造
AAC は MP3 と同様に「人間の聴覚にとって聞こえにくい成分を捨てる」心理音響モデルに基づいていますが、技術的な改良点が多数あります。
フィルタバンク:AAC は 1024 サンプル(または短窓 128 サンプル)の MDCT(変形離散コサイン変換)を使い、MP3 の 576 サンプルより大きな周波数分解能を持ちます。これにより定常的な音をより細かく解析できます。
予測符号化:過去の周波数係数から現フレームを予測し、差分のみを符号化することで圧縮率を改善します。
TNS(Temporal Noise Shaping):急峻なアタック音(拍手、打楽器など)に発生しがちな pre-echo を抑制します。
プロファイル:AAC-LC(Low Complexity、最も普及)、AAC-Main、AAC-LD(低遅延、放送・通信向け)、HE-AAC(SBR で高域を補完、低ビットレート向け)、HE-AAC v2(PS でステレオも圧縮)など多くのバリアントがあります。
コンテナとしては、ヘッダ ADTS を各フレームに付けた生 AAC ストリーム(.aac)と、MPEG-4 コンテナに格納した .m4a があり、後者はメタデータ(タイトル・アーティスト・アートワーク)を埋め込めるため iTunes/Apple Music で標準採用されています。
主な用途
- 音楽配信:iTunes Store、Apple Music(256kbps AAC)、YouTube Music、Spotify(高音質設定で 256kbps AAC)
- 動画配信の音声トラック:YouTube、Netflix、Amazon Prime Video、Hulu、TVer などほぼ全ての動画サービス
- 放送:地上デジタル放送(HE-AAC v1)、ワンセグ、BS/CS デジタル放送、米国の HD Radio
- Bluetooth 音声:iPhone と AirPods/対応ヘッドホン間の Bluetooth 接続で AAC コーデックが使用される
- スマートフォンの録音:iPhone のボイスメモは
.m4aで保存 - ゲーム機:PlayStation、Xbox、Nintendo Switch の音声フォーマット
関連形式との比較
vs MP3:同ビットレートで AAC のほうが明確に高音質です。128kbps の MP3 と 96〜112kbps の AAC が同等とされます。一方 MP3 は特許切れで自由に使え、世界中のあらゆる機器でデコード可能という資産の大きさで現役を保っています。
vs Opus:2012 年策定の Opus はリアルタイム通信から音楽までカバーする新世代コーデックで、64kbps 以下の低ビットレート領域では AAC を上回るとされます。ただし配信プラットフォームの採用は AAC のほうが圧倒的に広く、互換性で AAC が優勢です。
vs FLAC/ALAC:FLAC・ALAC は可逆圧縮で原音と同一に戻せるため音質では理論上勝りますが、ファイルサイズは AAC の 5〜10 倍。容量と音質のバランスでは AAC が現実解です。
vs WAV:WAV は無圧縮で編集向き、AAC は配信向きと棲み分けされます。
編集・再生ツール
エンコーダ:iTunes/ミュージック、ffmpeg(-c:a aac または libfdk_aac)、Apple AAC エンコーダ(Mac の afconvert)、Fraunhofer FDK AAC(高品質、Android 標準)。エンコーダの品質差が大きく、Apple/Fraunhofer 系が高品質とされます。
再生:iTunes/ミュージック、Windows Media Player(Windows 10 以降)、VLC、foobar2000、ほぼ全てのスマートフォン・カーオーディオ・ゲーム機。
編集:Audacity(FFmpeg 拡張で対応)、Adobe Audition、Logic Pro。ただし非可逆圧縮なので AAC を直接編集すると劣化が累積するため、編集は WAV/AIFF で行い最後に AAC へ変換するのが定石です。
注意点
非可逆圧縮:原音は戻りません。アーカイブには FLAC/ALAC/WAV を使ってください。
特許:AAC は MP3 と同様に多数の特許を含み、商用利用ではライセンスが必要になることがあります(個人視聴には影響しません)。
エンコーダ品質の差:同じ AAC でもエンコーダによって音質に差があります。低ビットレートで顕著で、ffmpeg 内蔵 aac より libfdk_aac/Apple AAC のほうが評価が高いです。
HE-AAC のデコード対応:古い機器では HE-AAC をデコードできず、SBR で補完されるべき高域が消える、または再生不可になる場合があります。
関連リンク
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15