公開日 2017/08/02 09:45
「AAudio」がもたらすものとは
遅延大幅減で “音ゲー” も増える? 次期「Android O」で大きく変わるオーディオ環境
海上 忍
■最適化/軽量化される「Android O」
Android OSの次期バージョン「Android O」。今秋の正式リリースが予定されており、本稿執筆時点では一般ユーザーも利用できるパブリックベータ版が提供されている。動作対象はNexus 5XとNexus 6P、Nexus Player、Pixel、Pixel XL、Pixel CとGoogleブランドの端末に限られるが、正式リリース前にその機能を試すことができる。
Android Oには、ひとつの画面に2つのアプリを同時表示(動画とそれ以外のアプリの組み合わせが想定されている)する「Picture in Picture」、ホーム画面上のアイコンに通知を吹き出し状に表示できる「Notifications dots」などの新機能が用意されている。
ただ高機能化されただけでなく、システムの最適化/軽量化が進められていることもポイント。アプリの起動速度は最大2倍にまでスピードアップし、バッテリーの持続時間や安定性も改善されている。Googleが「Vitals」と呼ぶ、最適化を目指す一連の取り組みは、メインターゲットのスマートフォン/タブレットのみならず、2018年導入予定の低価格端末「Android Go」、そしてテレビ/STB向けの「Android TV」を意識していることは明らかだ。
■オーディオ面の新要素「AAudio」
オーディオ目線では、新サウンドアーキテクチャ「AAudio」の導入に注目したい。従来のAndroid OSでは、CPUが命令してから実際に発音するまでの音声データの経路(以下、オーディオパス)では遅延が発生しがちで、それがオーディオ周りのエクスペリエンス向上を妨げていた。Androidに楽器アプリやいわゆる「音ゲー」が少ないことは、Android OSのオーディオパスに原因があるのだが、今度のAAudioではその懸念が大幅に低下している。
Android OSはLinuxカーネルをベースに整備された上位レイヤーで構成され、ハードウェアに近い低位レイヤーは一般的なLinuxシステムと共通項が多い。オーディオの基礎レイヤーも同様で、ほとんどのAndroid端末はLinuxで事実上標準のALSA(Advanced Linux Sound Architecture)を採用している。「AudioFlinger」と呼ばれるメディアサーバー(発音処理の仲介役的ソフトウェア)の指示をハードウェア抽象化レイヤーが受け、ALSAに伝えることで実際の音を出すということが、従来のAndroid OSにおける基本的なオーディオパスだ。
しかし、そのオーディオパスでは少なからず遅延(レイテンシー)が発生する。オーディオでいうときのレイテンシとは、システムが音を出す命令を発してから実際に音が鳴るまでのタイムラグのこと。10ms(0.01秒)以下であれば感知は困難とされているが、Androidでは100msを超える端末も少なくない。アプリが効果音を出してユーザが反応し、その結果としての操作が行われるために往復分のレイテンシーが発生するわけで、ひどいときは半拍ほどのズレが生じてしまう。これでは、楽器アプリや音ゲーは使いものにならない。
これまでにはOpenSL/ESなどのAPIを使いレイテンシーの発生を回避する手法も用意されたが、Androidではメーカー/機種ごとにサウンドチップやドライバーが異なるうえ、セキュリティの都合により仮想マシン層(Android OSのアプリはJavaベースで仮想マシンにより処理される)とカーネル層が分離されているため、すべての端末で利用できるわけではない。アプリ開発者の目線でいえば、システムレベルで統一したアプローチが用意されているほうが望ましいのはいうまでもない。
Android OSの次期バージョン「Android O」。今秋の正式リリースが予定されており、本稿執筆時点では一般ユーザーも利用できるパブリックベータ版が提供されている。動作対象はNexus 5XとNexus 6P、Nexus Player、Pixel、Pixel XL、Pixel CとGoogleブランドの端末に限られるが、正式リリース前にその機能を試すことができる。
Android Oには、ひとつの画面に2つのアプリを同時表示(動画とそれ以外のアプリの組み合わせが想定されている)する「Picture in Picture」、ホーム画面上のアイコンに通知を吹き出し状に表示できる「Notifications dots」などの新機能が用意されている。
ただ高機能化されただけでなく、システムの最適化/軽量化が進められていることもポイント。アプリの起動速度は最大2倍にまでスピードアップし、バッテリーの持続時間や安定性も改善されている。Googleが「Vitals」と呼ぶ、最適化を目指す一連の取り組みは、メインターゲットのスマートフォン/タブレットのみならず、2018年導入予定の低価格端末「Android Go」、そしてテレビ/STB向けの「Android TV」を意識していることは明らかだ。
■オーディオ面の新要素「AAudio」
オーディオ目線では、新サウンドアーキテクチャ「AAudio」の導入に注目したい。従来のAndroid OSでは、CPUが命令してから実際に発音するまでの音声データの経路(以下、オーディオパス)では遅延が発生しがちで、それがオーディオ周りのエクスペリエンス向上を妨げていた。Androidに楽器アプリやいわゆる「音ゲー」が少ないことは、Android OSのオーディオパスに原因があるのだが、今度のAAudioではその懸念が大幅に低下している。
Android OSはLinuxカーネルをベースに整備された上位レイヤーで構成され、ハードウェアに近い低位レイヤーは一般的なLinuxシステムと共通項が多い。オーディオの基礎レイヤーも同様で、ほとんどのAndroid端末はLinuxで事実上標準のALSA(Advanced Linux Sound Architecture)を採用している。「AudioFlinger」と呼ばれるメディアサーバー(発音処理の仲介役的ソフトウェア)の指示をハードウェア抽象化レイヤーが受け、ALSAに伝えることで実際の音を出すということが、従来のAndroid OSにおける基本的なオーディオパスだ。
しかし、そのオーディオパスでは少なからず遅延(レイテンシー)が発生する。オーディオでいうときのレイテンシとは、システムが音を出す命令を発してから実際に音が鳴るまでのタイムラグのこと。10ms(0.01秒)以下であれば感知は困難とされているが、Androidでは100msを超える端末も少なくない。アプリが効果音を出してユーザが反応し、その結果としての操作が行われるために往復分のレイテンシーが発生するわけで、ひどいときは半拍ほどのズレが生じてしまう。これでは、楽器アプリや音ゲーは使いものにならない。
これまでにはOpenSL/ESなどのAPIを使いレイテンシーの発生を回避する手法も用意されたが、Androidではメーカー/機種ごとにサウンドチップやドライバーが異なるうえ、セキュリティの都合により仮想マシン層(Android OSのアプリはJavaベースで仮想マシンにより処理される)とカーネル層が分離されているため、すべての端末で利用できるわけではない。アプリ開発者の目線でいえば、システムレベルで統一したアプローチが用意されているほうが望ましいのはいうまでもない。
- トピック
- Android