Waveファイル用高精度ディエンファシスソフト

DE.EXE (Windows コンソールアプリケーション)


 この DE.EXE は、プリエンファシスが掛かった Waveファイルをディエンファシスするツールです。

BS、CS放送からディジタル録音したデータにはプリエンファシスが掛かっています。
(また、昔の一部のCDにもプリエンファシスが掛かったものがあります)
チャンネルステータスのエンファシスビットを制御することができるサウンドカード経由で別のD/Aに出力する時や、CDに焼くときには、エンファシスビットをOnにしておけばD/A側でディエンファシスしてくれるので正常な音になりますが、PC上で一般的なエンファシスビットを設定できないサウンドカードでそのまま再生する場合にはハイ上がりのシャラシャラした音になってしまうので、Waveファイルそのものをディエンファシス処理してしまった方が便利な場合が多々あります。

ディエンファシスを行うソフトはいくつかありますが、エンファシス - ディエンファシスを行うのは本来アナログフィルタなので、ディジタルフィルタにするとどうしても変換誤差が出てしまいます。
そのまま普通に設計(IIRフィルタ)すると高域で少し特性がずれます。
1/2Fsに近いほどずれ、特に位相が大きくずれてしまいます。
特性例 Type2 のグラフ参照

Analogというのが本来の特性です。まあF特は1dBもずれていないのですが…

まあ、この程度の位相特性のずれが影響するのかどうかが問題なのですが、原理的には位相がずれていると波形としては元どおり復元されないことになります。
そこで、何とかもう少し近づけられないかと試行錯誤してみたのが同 Type0、Type1 です。

具体的には、とにかく1/2Fsから遠ざければよいということで、8倍オーバーサンプリングしてからディエンファシスをかけ、元に戻したものにほぼ相当します。(Type1)
と、それをF特の誤差を少なくなるように若干調整してみたものです。(Type0)
従来のものと音質を比べてみると面白いと思いますのでお試しになってみて下さい。

[補足]
ご存知のとおり普通ディエンファシスはD/A側で行われます。
昔はD/A後にもろにアナログフィルタをOn/Offするものもありましたが、今はまずD/A前のオーバーサンプリング(補間)用ディジタルフィルタに内蔵されたIIRのディエンファシスフィルタが使われているはずです。
調べてみるとこのフィルタは、先の変換誤差を小さくするために、Fs x4 や x8 等のオーバーサンプル後 に入っているものがほとんどのようです。
でも一部にはブロック図等から見るかぎり、その前(Fsの状態)に入っているものもあるようでした。(この場合、同じ誤差が出るはずです)
ということで、ほとんどの場合、プリエンファシスが掛けられたファイルは、チャンネルステータスビットのEmpビットをOnにしたディジタルデータをD/Aに送って(CDの場合はEmpビットをOnにして焼いて)ディエンファシスをD/Aにまかせるのが最も良い結果が得られるはずです。
でも、D/A側のディエンファシスが頼りない?場合もあるようで、元ファイルをディエンファシス処理してしまった方が良い場合もあるようです。
#大体、PC上でモニタするときが不便ですね(^^;

[使用法]
コマンドプロンプト または MS-DOSプロンプト(スタート - プログラム - アクセサリ - コマンドプロンプト)で、
DE WaveFileName [DeEmphType] [DitherType]
とタイプします。

出力ファイルは、入力ファイル名に、"_" と DeEmphType、DitherType の文字が追加されたものになります。
[例]
DE abc.wav (デフォルト)の時の出力ファイルは、abc_02.wav
DE abc.wav 0 1 の時の出力ファイルは、abc_01.wav
DE abc.wav 1 2 の時の出力ファイルは、abc_12.wav
DE abc.wav 2 F の時の出力ファイルは、abc_2F.wav

※ 同名のファイルが既に存在する場合には、警告無しに上書きしてしまいますのでご注意下さい。

コマンドプロンプト の使い方については、Windowsのヘルプ、その他を参照してください。


なお、コマンドプロンプトの入力が面倒だという方は、拙作 WaveCompare
コマンド実行機能(ファンクション - コマンド)で、コマンド:の欄に
DE %F
DE %F 0 1
等々と設定して、連続モードで使用すると自動的に処理されるので便利です。
(必要なら、成功時1:、成功時2:、や、失敗時: にもコマンドを設定できます)

※このソフトは元々 WaveDAT のディエンファシス機能のために作成したものです。


V1.10 ← 2007/07/24 Updated

(V1.00 からの変更点)

  1. 32bit 浮動小数点フォーマットで出力できるようにした。
  2. DitherType 0 の設定ができなかったバグを修正。
  3. DeEmphType 2 の時、丸め処理が正しくなかったバグを修正。
  4. アーカイブファイルを *.ZIP に変更。

※ このソフトはフリーウェアです

  Version 1.10   (2007/07/24)  
DE110.ZIP をダウンロード (123,765 bytes)   <-- 2014/08/01 URL/メールアドレス変更のためヘルプファイル書き換え

●ヘルプファイル DE.CHM が表示されない場合の対処方法はこちらを参照してください。


Home