ATRAC(Adaptive TRansform Acoustic Coding)日本語では高能率符号化方式と呼ばれます。
圧縮の考え方
ATRACは音楽データを1/5に圧縮しますが、ただ単に圧縮したのでは1/5にはなりません。
そこで注目するのは「私たちの周りに存在していても聞こえない音がある」と言うことです。
その1「耳の感度に合わない音」
人の耳は中域付近の音ならばある程度小さくても聞き取れますが、低域や高域へと進むと
ある程度大きな音でないと聞き取れなくなります。
その2「本当は聞こえるのに聞こえない音」
人の耳はある音が聞こえているとき、そのそばのそれよりも小さい音が聞こえなくなって
しまうことがあります。この現象を「マスキング効果」と呼んでいます。
たとえば、静かな部屋で時計の秒針の進む音は聞こえますが、繁華街の中心に時計を
用意しても街のざわめきにかき消され秒針の音は聞こえません。しかし、このとき秒針は
ちゃんと音を立てているのです。
この2つの特性を利用し、聴覚心理学に基づいて音楽データを取捨選択を行っているので
聴覚上の音質が基本的に損なわれることはありません。
注意:ATRACのバージョンが古いものほど音楽データを取捨選択の演算能力が低いため
音質が損なわれるケースがあります。特に音が薄く感じたりします。ただいかなる
バージョンでも圧縮を行うため、音質はCDよりも劣ります。
この辺は十分に理解してください。
ATRACは上記のように聞こえない音をカットして圧縮を達成していますが、音には低い音、
高い音、立ち上がりの鋭い音、立ち上がりの緩やかな音、などいろいろな特性を持った
音が存在しますので、すべての音を同一条件で圧縮するには無理があります。
ATRACではそのことも考慮した上で圧縮を行っています。つまりATRACではその瞬間の音の
特性に対し、もっとも適した圧縮パターンを用いて圧縮を行っているのです。
圧縮は高い音、中ぐらいな音、低い音の3つに分け、さらに各音の中で音の時間的
変化に合わせてサンプルの分解能を変化させ、そこから有効信号成分を抽出し、限られた
データ容量(片側音声で:212バイト)に納めています。
ATRAC-DSP
ATRAC-DSPは「演算器部」と「ソフトウェア部」に分かれています。
「演算器部」は、掛け算器(マルチプライヤー)や足し算器(アキュムレータ)などで
構成され、音楽データを演算処理します。「ソフトウェア部」はその「演算器部」を
動かすためのプログラムや音の収拾選択の基準となるデータベースが格納されています。
「演算器部」の進化は基本的に処理能力の変化が中心です。16bit、20bit、24bitと
一度に扱える情報量の増加と演算速度の高速化で進化しています。しかしこの能力が
良くなったからといって音が良くなるわけではありません。
それを握るのは「ソフトウェア部」です。実はこの「ソフトウェア部」には決まった
仕様がありません。MDの規格にはディスクに書き込むデータのフォーマットはあるものの、
そのフォーマットにするまでの課程である、「演算器部」を動かすためのプログラムや、
音の収拾選択の基準となるデータベースはATRAC-DSPを開発するメーカーに委ねられます。
そのため、同一バージョンのATRACでも「ソフトウェア部」のプログラムやデータベースが
異なることにより、圧縮後の音の出来上がりに違いが出てきます。
このマイナーバージョンを現在知ることはメーカーに問い合わせるしか方法はありませんが、
たぶん秘密か「分かりません」と言う回答になるでしょう。
ATRAC-DSPは1つのLSIとして通常存在しますが、ポータブルなどでは他のシステム
(D/Aコンバータやキャッシュメモリーなど)とワンチップ化されています。
適応高域制御
Version 4.5から導入された技術です(DSPのソフトウェア部で達成されています)
それ以前のバージョンでは、中域までの音に対してはそれなりの圧縮を行うことができ、
音もそこそこ良くできていましたが、高音に対してはかなり苦手でした。
この苦手な高音域は15k〜22kHzで、ここのデータが上手に圧縮されるかされないで
音のニュアンスが大きく変わってきます。この領域の音の信号レベルはかなり小さく、
聞こえない音の部類に入るため今まではほとんどカットされてきました。しかしこの
領域の音は聞こえなくても音楽全体に臨場感を与えることが分かり、無視できなくなりました。
ところがこの領域の音は信号レベルが小さいため今までの圧縮方法では量子化ノイズに
埋もれてしまい、結果的にカットされてしまいます。また、量子化ノイズに埋もれないよう
信号を伸ばす(大きく)だけでは限られたデータ容量に収まらなく、歪みも増えてしまいます。
そこで登場するのがこの適応高域制御です。今までは212バイトという決められた器の中に
低音、中音、高音と決まった比率で音楽データを格納していましたが、ある瞬間の音に関して
低音、中音とも割り与えられたデータ領域よりも小さくてすむ場合があります。このとき
発生する無駄領域を高音用に割り与えてしまおうというのがこの制御の考え方です。
ある瞬間の音を分析して低音、中音領域で発生する無駄領域を算出し、歪みを発生させない
ように高音の信号を伸ばして無駄領域容量分まで圧縮データを生成します。