- preliminary
16ビット→20ビット データレガートリンク(類推補間) この機能の発想は、DENONのαLPHA プロセッシングの機能概要を見て思い付き、入出力の関係を考えて構成しました。原理はずばり、図のように、'20bitは16bitに比べて16倍細かく表現できる'ということです。16bitでは表現されていない'であろう'LSB以下の変化について類推をしているわけです。PCM1702データ・シートの図にもありましたが、「せっかく20bitD/Aを回すのに、16bitではもったいない!」という実に短絡的な発想も秘めている、不思議な機能です。 図の点線はCDソースの16bit分解能の信号で、左から右にかけて「+1」、最小ビット分、つまり1/65536分増加しています。20bit表現では16bitよりも16倍細かく表現することができますから、より滑らかな信号描写が可能になります。 さて、実際のCDから出力される16bit表現の信号では、基本的にはA/D変換する段階で、上の点線の様に、最小分解能の段階で四捨五入されます。図のように、原音が16bitの最小分解能に比べ、とても緩やかな変化をする場合、"00000000111111"といったように、原音とのずれが目立つかたちで生じます。 元のソースがすでに"00001111"という形ですから、原音の形を取り戻すことはできませんが、この"00・・・00111・・・11"という形を検出して、これを20bit、16倍の細かさで埋めていくことは可能です。「おそらく原音はこうであろう」と類推して、データを補間していくのです。 。 処理モデル 図は、h8から見た実際の処理の方法、考え方を示しています。 オーディオ・データは、L/Rch別に、256個分(256サンプリング周期分)、H8内のRAM(FIFO・あるいはサーキュラ・バッファ)に順次貯えられ・出力されます。このメモリ上で、図のような処理をしています。 補間する傾きのデータ配列、FPGAのコンフィグレーションにも用いているFlashROMにテーブルとして格納されています。このROMから読み出す補間データと元のデータとの合成は、FPGA上で行います。H8は元のデータ(256周期分前の)とROMのアドレス、各コントロールの指示を検出結果をもとにFPGAにむけ出力します。 さっきのページへ Non-Delayed data Lock System 横文字でかっこつけて書いていますが、話は簡単です。DAIR後のオーディオ・データはシリアルで、ベースクロックに同期して送られてきますが、これをパラレルに直すとき、例えばある一瞬の時間に、1回きりで読み込む(0か1かを判定する)とすると、ちょうどその時に発生するノイズの影響を100%受け、データを誤認することが予想されます。これを防ぐため、1つ(1ビット)のデータを読み取るとき、そのベースクロックよりも細かい間隔で何回も読み取りを行い、’H’であった数が’L’より大きいなら、「’H’として認識」ということを行う・・、この機能がNDLSです。この名前は私が思い付きで勝手に決めました(笑)これもステート・マシンの記述・説明を手書きで示します。 2つのFPGAのユニットはそれぞれシリアル・オーディオデータを出力するとき、ベース・クロック、L/Rクロックをステート・マシンにより自分で生成します。またデータ補完で用いるH−8では処理のため、256ワード分のデータを一度メモリに貯えて出力しています。これももう1つの特徴です。 さっきのページへ ディジタル・アッテネート ディジタル・アッテネーションの説明については、この企画の全身でもある、「ディジタル・アッテネート・ユニット」レポートを参照下さい。ディジタル・アッテネートについては、D/Aをフル・レンジで駆動できない・下位ビット落ち、などのご指摘もあることと思いますが、11月の学園祭で展示した、「真空管パワーへのD/A直結でのボリューム」のような使い方もあるのでは?と思います。 さっきのページへ ダイナミック・レンジ・エキスパンド(6type) 誤解を恐れずに、一言で説明をしてしまうと、ヘッドフォンで聞くポータブルCDプレイヤー等についている「電車ポジション」の’反対’のことをしよう、という機能です。「電車ポジション」は、’ダイナミック・レンジ・コンプレッション’で、言葉の通り、ダイナミックレンジを圧縮して、’聞こえのいい、通りのいい’音をつくるエフェクトです。これはオーディオ的にはなんのメリットも無いのですが、この反対、つまり信号の動きを’さらに’大袈裟にする、「エキスパンド」ならばこれは効果的では?というのが思い付きです。実際には先のアッテネートの応用で、組立て・実験は成功しているのですが、実際に「効果的な変化曲線」を見つけることは、まだできていなくて、今回のプレゼンでは使用しません。オーディオ的には反則技なのでしょうが、意外な効果、また他の(本来の?)応用である、チューナー等入力の「迫力アップ等」として、使えるであろう、と期待しています。(放送受信波では、’音の通りがいい’という意味で、コンプレッションをかけていることがあります) さっきのページへ ディジタル・オート・レベルコントローラ(option) これもまた、「アッテネータ」の応用です。例えば、CDソースでも、明らかに’録音レベルの違い’を感じることがあると思います。レベルの違う楽曲どうしをDAT/MDなどに’ディジタル録音’するときなどは、なんとも悲しい思いをすることがありましょう?(笑)聞くたびに感じますし、またP.Aソースの編集などでは、信号レベルをそろえることは必須で、きちんと揃えていないと、出す音が大きいだけに、大変なことになりかねません。かといって、’ディジタル録音’は捨てられない・・という時に大変重宝する機能です。先のレンジ・エキスパンドと同様に、レンジのピークを見張って、それを揃えるように段階的に減衰/増幅を行います。ピークの検出/判断には、H−8、もしくはPICマイクロ・コントローラを使う予定です。 さっきのページへ DAIT(Digital Audio Interface Transmitter) 「FPGAでDAITのLSIを作った」ということです。これをデータ出力の部分に組み込めば(プログラム的にマクロとして)、DAITの節約、コスト・実装規模の節約になります。SONYのデータ・シートのブロック図と入出力フォーマットを参考に様々な試行錯誤の結果、多くの時間を費やして完成しました。いわばこれが、FPGAでのハードウェア製作を身につける「トレーニング」になった、と思います。 DAIRから出力される、あるいはD/Aコンバータに入力しようとするディジタル・オーディオ・データはbck・data・l/rの3本で転送されます。(図はPD0052(DAIR)の出力フォーマット。bckが32fsとかdataがLSBファーストとかの違いがあるが、IISも含めて一般的にこんな感じ) この信号が、DAITの入力になります。 ・・・最後に、D/Aコンバータの説明 学発で’オーディオイベント’に出展してみよう、と思いたったのは、ディジタル回路の技術をオーディオ分野に応用してみたい!と思ったからです。これまでの、そして今も続いているカット&トライは、主に信号処理に費やされています。そのため、とも言えないのかもしれませんが、本来メインであるD/Aの部分は、シンプルな回路を選び、また正直いって十分なフィードバック、調整・検討は足りないものであろうと考えます。アナログ部分は、強烈なノイズ・ジェネレータであるディジタル回路のかたまりの影響から避けることを第一に組立てました。ノイズ対策、また組み込み技術は当然ながらとても奥が深く、組みかたを更えるたびに音の印象が変わってくるのには実際驚きました。経験不足を痛感するとともに、新たな興味の対象として、改めてD/A部をいじってみたい、と思っています。 さっきのページへ |