Home > WMA とは

WMA とは

  • Posted by: NEW1919
  • 2009年5月 7日 17:13
Windows Media Audio(ウィンドウズ・メディア・オーディオ、略称WMA)はマイクロソフトがWindows Mediaの中核をなすものとして開発した音声コーデックの一つ。拡張子はwma。通常ASFコンテナフォーマットを使用する。

WMAは他の主要な圧縮方式と同様、人間の感じ取りにくい部分のデータを間引くことによって高い圧縮率を得る非可逆圧縮方式を採用している。同社によれば、WMAを用いると音楽CD並みの音質を保ったまま約1/22(64kbps)まで圧縮することが可能で、音質を犠牲にすればさらに高い圧縮率を得ることもできる。

一般的なオリジナルのWindows Media Audio(WMA Std)コーデックの他に、圧縮アルゴリズムを一新し多チャンネル高解像度に対応したWindows Media Audio Professional(WMA Pro)コーデック、可逆圧縮のWindows Media Audio Lossless(WMA Lossless)コーデック、音声コンテンツ向けのWindows Media Audio Voice(WMA Voice)コーデックがある。これらはそれぞれ仕様が異なるためWMA Stdのみ対応の機器では再生できない。

WMAは、現在さまざまなデバイスでサポートされているがMicrosoftの独自形式であり、MP3などの標準形式と比べると汎用性で劣る。

FFmpegプロジェクトによるリバースエンジニアリングにより、WMA10Proを除きLinuxなどのPOSIX準拠のOSで再生が可能となっている。

マッキントッシュ環境ではマイクロソフトが推奨するサードパーティのFlip4Mac QuickTimeコンポーネントによりWMA Voiceを除き再生が可能である。

SONYのウォークマンは初期のモデルではWMAを再生できなかった(当初はATRACのみだった)が、現在のモデルでは再生可能である。 その他、東芝のgigabeatやPanasonicのD-snap(内蔵メモリー型のみ、SDメモリーカード型はSD-AudioでCPRMによるセキュア化で再生可能。)など多くのデジタルオーディオプレーヤーが対応している。

Windows Media Audioの略。mp3に比べ低圧縮率での音質が大きく改善されている。特に64kbpsはmp3に比べて圧倒的に情報量が大きい。

一概にどれがいいとは言えない。一昔前はロックやポップはmp3、クラシックやボーカルなどはAACなど適したものにしたほうが良いというレビューも多かったが、最近は汎用性をとってmp3を選んだり、初めてのプレイヤーがiTunesでデフォルトがAACだったなど、音質以外の選択理由が多い。WMAは対応プレイヤーが少ないのも事実だ。

携帯電話については2006年に発売されたNTTドコモ「F902iS」を筆頭に、NTTドコモの端末がWindows Media Audioの再生に対応し、904iシリーズ以降の90xi端末はシリーズ全機種が再生に対応している。 auの携帯電話では、「LISMO( au Music Port )」で一度HE-AACにファイルコンバート、もしくは「 LISMO Port 」で一度ATRACにファイル変換した後、端末に転送することで再生できる。 ソフトバンクモバイルの端末においては、「S!ミュージックコネクト」によってWMAに対応している。
音ズレの原因
(ここから先は内部の話なので知的好奇心を満たす意味しかありません。一般のユーザが読む必要はありません。)

これではつまらないので、多少解説すると、問題はffmpegのwmaデコーダにあると思われる。もっと正確に言うとffmpegのコンテナスプリッタ→デコーダのインターフェースにあると思われる。

DirectShow等の現代的なマルチメディアシステムは、データの受け渡しに関して、「スプリッタからデコーダに渡す方式(push)」と「デコーダがスプリッタに要求する方式(pull)」の両方をサポートする。

え、どちらもデータが渡れば同じじゃないのかって?それが違うのだ。wmvでの音ズレは、ffmpegが構造的にpush方式に固定されていることが原因と考えられる。

昔の動画・音声圧縮形式というのは、コンテナのスプリッタが、ファイルからある単位(フレームなどと呼ばれる)でデータを切り出すと、それは一定時間分のデータであることが保証されていた。このため、コンテナスプリッタはある一定時間ごとに、デコーダに1フレームずつデータを送り出せば再生が間に合っていた。このスプリッタがデータ受け渡しの主導権を握っているのがpush方式だ。

その後、圧縮技術は複雑さを増し、1フレームに必ず一定時間分のデータを収めるのは無駄が大きいと考えられるようになった。フレームのサイズを固定でなく可変にすればいいのだが、そうすると途中再生・シークなどの処理が難しくなる。結果として、コンテナからは固定サイズ(固定長のフレーム単位)に見えるが、内部的にはフレーム間にまたがるデータを使う、というハイブリッドな方式になる。すると、あるフレームが一定時間分のデータを含んでいるという保証はなくなり、1フレームを受け取ってもデコーダが十分なデータを出力できない事態が生じる。こうなってくると必然、スプリッタが「これでいいでしょ」とデータを渡すのではなく、デコーダが「これだけデータをくれ」と主導権を握るpull方式になる。


Home > WMA とは

Search
Feeds

Return to page top