FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

メインメニュー

Electric Emotional Entertainment Reserch Institute
 本「メインメニュー」は、話題ごとに古い順を原則につながりを考慮して並べています。

*更新情報(新規登録は右記「最新記事」をご覧ください)
 18/09/17:「サンプリング定理の勉強」記事のノイズ説明を改訂しました。
 18/09/10:「デジタルフィルタの復元性能」について全面改訂しました。
 18/07/25:「サンプリング定理の勉強」記事をけっこう改訂しました。
 18/07/24:S/PDIFループバックの表現を「録音」から「キャプチャ」に変更しました。
 18/06/30:カウンタが350,000を突破しました(21:12ごろ)。ありがとうございます。
 これより前


・007:諸事
・008:AVC基本コンセプトと使用機材履歴


【PC-Audio】
・053:ファイルオーディオの基礎知識
・129:デジタルオーディオの基礎知識
・066:デジタルデータはコピーで劣化するか
・089:リッピングソフトによる「ビット品質差」は存在するか (同じ0/1に音質差はあるか)
  ・140:リッピング環境による「ビット品質差」は存在するか (&仮想ドライブ効果考察)

■リクツを理解する
・113:サンプリング定理を改めデジタルオーディオの原理を勉強する
  ・131:DACチップ処理をシミュレーションしてサンプリング定理を可視化する
    ・136:デジタルフィルタが復元するサンプルの精度はいかほどか
  ・117:PCのアップサンプリングとDACのオーバーサンプリング
    ・124:PCソフトとDACチップハードのデジタル処理はどちらが高性能か
  ・132:アップサンプリング時の「Phase Response」設定で何が変わるか可視化する
    ・133:「Phase Response」と「Impulse Response」はハイレゾだとどうなるか
  ・159:サンプリング定理における復元プロセス「sinc関数畳み込み」を可視化する
    ・160:インパルス応答のエコーは原波形の成分であることを確認する
・121:PCMの「TruePeak」とは何か (&「ビット落ち」考察)
・120:DSDの「MaxPeak」とは何か

■ハイレゾ
・065:ハイレゾファイルの中身はハイレゾ(良マスタリング)か
  ・134:ハイレゾ商品の出自とその意義
    ・151:ハイレゾ商品の実際
    ・152:DSDとPCMで波形が著しく違う商品の不思議
      ・153:DSDとPCMで波形が著しく違う商品の制作プロセス
・110:ハイレゾフォーマットの効能を聴き比べるには
  ・111:ハイレゾファイルに高域が入っているか確認する
    ・155:(ハイレゾか否かには関係なく)ピークが潰れていないか確認する
  ・112:システムはハイレゾ高域を再生できているか確認する
・069:foobar2000とSoX Resampler
  ・119:foobar2000のDSD変換とResampler-V
・116:基音と倍音からハイレゾの意義を考える
・125:ビット深度は“16”で足りているか
・128:ハイサンプリング領域にノイズ問題はないか

■リッピングする
・015:WAVフォーマットを理解しておく
・052:音楽CDのエラーとは何か
・013:PureReadの効能
  ・045:PureRead2は進化しているか
  ・139:PureRead3+は進化しているか (&セキュアリッパー効果考察)
・014:リッピング条件が異なるとリップされたデータは変化しているか
  ・082:ダメージディスクでは何が起きているか (リッピングまとめ)
  ・083:光学ドライブのダメージディスクリッピング得手不得手
・051:EACやiTunesが「エラー訂正」しているのか
  ・068:EACと新旧ドライブ
・084:音楽CDのエンファシスとは何か
・091:オフセットとプリギャップはリッピングにどう影響するか

■送る
・009:WASAPIおそるべし
・018:デジタルケーブルで音は変わるか
  ・071:HDMI光アイソレーション
・022:デジタル転送時にデータは変化しているか
  ・080:検証用デジタルデータ操作法
・040:デジタルなのに音が変わるワケ
  ・070:DAC方式とDSD再生
・039:ppmがジッタなのか
  ・050:アシンクロナスモードはフロー制御しているか
・114:インターフェイスとDAC事情から「ジッタ」について理解しておく
  ・115:ジッタ対策に何ができるか考える
・081:プレーヤソフト設定とデータ仕様が違うとビット深度はどうなるか

■鳴らす(USB→S/PDIF)
・010:PCセレクト(1):ONKYO製HDC-1L
・011:DDCセレクト(1):ONKYO製SE-U55SX
  ・024:SE-U55SX電源を安定化電源で
・041:DDCセレクト(2):RATOC製REX-Link2EX (USB-I/Fをワイヤレス化)
  ・042:REX-Link2EX電源をeneloopとかレギュレータで

■鳴らす(HDMI)
・023:SACDのDSD再生から始めるHDMI-Audio (&HDMI規格まとめ)
・044:PCのHDMIでハイレゾ&マルチ再生を試す (915GME&H55で味見)
・061:PCセレクト(2):J&W製E350-GT (S/PDIFからHDMIへ宗旨替え)
・062:PCセレクト(3):GIGABYTE製GA-E350N-USB3 (HDMI-Audio構築&UpSampling)
  ・063:HDMIリンクスピードと音質 (&HDMIモード詳細)
  ・072:Audio-I/FとしてのHDMIデバイス変更

■鳴らす(USB)
・090:DACセレクト(1):SONY製UDA-1
  ・118:UDA-1を「なんちゃってNOS-DAC」として活用する
・122:Audio-I/FとしてのUSB検討
・123:PCセレクト(4):GIGABYTE製GA-X79-UD3 (パワーオーディオに宗旨替え)
・126:DACセレクト(2):TEAC製UD-503(&ヘッドホンバランスケーブルあれこれ)
  ・127:UD-503のデジタル処理を確認する
・156:PCセレクト(5):ASUS製Z170-A(世代のジャンプアップを試す)

■いじる
・029:OSチューン
  ・020:OSのbit数やバージョンと音質
  ・056:Fidelizer導入記
・046:H/Wチューン
  ・073:クロックや電圧と音質
  ・074:DIMMと音質
  ・077:CPUコア数と音質
・064:プレーヤソフト制御法
・157:PC-Audioの遊び方&チューニングコンセプト


【Audio】
・028:アナログケーブルで音は変わるか
・033:805 VS 805S とユニット増し締め
・048:AVアンプの活かし方
・049:音が変わるって科学かオカルトか
・054:電力と節電とピークシフト (システムの実消費電力)
・067:マーラーとDBS
・088:グランドとアースを理解する
  ・144:グランド・アースとケーブル構造の関係を再考する
    ・145:グランドとアースをチューンする
・078:iTunes10と11で音質は異なるか:AAC編
  ・079:iTunes10と11で音質は異なるか:WAV編


【Visual】
・059:AACS都市伝説を追う:BDAV編
・143:BDZ-EW1200導入記
・158:BDディスクの相性・容量


【PC】
■ソフトウェア
・026:Windows7アップグレード所作
・075:Windows8導入記
・138:Windows10(無償)ライセンス挙動

■ハードウェア
・038:DisplayPortとHDCPとWQXGAと
・047:MatrixRAIDの挙動を理解する
  ・142:Windows10の「記憶域」は使えるか
・055:パーティションオフセットの諸問題
・058:GfxカードとQuickSyncVideo共存方法
・076:GA-Z68X-UD3H-B3をUEFI化する
・147:Z170を修める
  ・149:NVMeも修める

■モバイル
・086:パケット料金を抽象化して考える
・087:モバイルルータとMVNO回線を選ぶ
・108:miix2でWindowsをモバイルする:ハード編
・109:miix2でWindowsをモバイルする:ソフト編
・130:スマホでG4通信とFOMA通話をデュアルSIM運用する
・137:ThinkPad X220改造とWindows10化


では
スポンサーサイト

「インパルス応答」エコーの正体

18/09/01初稿

 初めに。インパルス応答の「エコー」はエコーと言ってもカラオケのエコーのようなものではありません。また、テープの磁気転写のようなことでもありません。猛烈に念のためですが。
 また、本Blogでの「インパルス」「インパルス応答」の意味付けは、あくまでもPCMオーディオ理解用としてのものです。

 本稿、先の≪foobar2000≫のアップサンプラーをOSDFにみたててDACが波形復元するプロセスを可視化し、「サンプル個々のインパルス応答の合算が原波形になる」記事の続編として記します。

・「エコー」は波形の血肉である
 前稿の目的は「サンプリング定理による原波形復元を具体的に理解すること」でした。
 しかし、その内容は見方を変えると、OSDFのインパルス応答エコー成分は「復元すべき原波形の血肉」であると言い換えることができるのではないでしょうか。
 そしてこれは、エコーは決して無駄で不自然な成分ではないということも示しています。

 ポストエコーだけでなくプリエコーもです。復元サンプルに混ざっている(というか形成している)プリエコー成分は未来サンプルのエコーではありますが正当な血肉であって、未来からの音が響いているワケではないということです。

 復元プロセスで見た通りエコーは波形復元中ずっと発生しているのですから、OSDFの復元精度を確かめた際にヘンテコな差分が出なかったことからも、それは言えると思います。

 しかし、それって巷で大勢をなす評価とは真逆ですよね。ホントでしょうか?
 PCMオーディオを考える上でかなり重要なことだと思いますので、本稿で熟考してみます。

・まずはDAとADは切り離して考える
 原波形復元について考えているので自明だとは思いますが、本稿で扱うのは「DA変換」のみです。「AD変換」時の事情は対象外であることを、念のため確認させてください。
 具体的に言うと、例えば、44.1kHzのデータであれば特記なき場合は「22.05kHz未満に帯域制限されている」として扱いますが、その手法などは考えません。
 実際、データを再生する側としては、もしデジタル化プロセスのどこかの帯域制限処理でエコーが付いたとしても、それはDA変換して戻すべき正当な波形として扱わざるを得ませんし。

・「不自然」なのはどっち?
 上記記事の通り、サンプリング定理の復元プロセスの実装として、OSDFがインパルス応答でエコーを生成するのは必然です。
 しかし、よく「DACのデジタルフィルタを通すとアタック音の前後に不自然なエコーが付く」などと言われます。何故なのでしょう?

 「エコー悪玉論」は基本的にインパルス応答のエコー(特にプリエコー)を引き合いにしていると思います。が、インパルスは自然音ではなく、OSDFの応答はフィルタ特性を示すものです。
 大きな1サンプルだけの“音波”など有り得ないにも拘わらず、その応答波形をDA変換結果(音波)への直接的影響として語っていることが“そもそも不自然”なのではないでしょうか。
 「エコー悪玉論」においては、インパルス応答としてではなく、原波形復元成分としての問題を指摘する必要があると思います。

 ちなみに、OSDFを通さないでエコーがないインパルス応答波形をもって「過渡特性バツグンで自然な音」的に評されることもあるようですが、リコンストラクションしないってことですから、そうやって再生された波形は零次ホールドのままのカクカク波形です。例えばCDフォーマットの14.7kHzだとカクカクを超えてガタガタになります。
 個人的にはその方が“不自然”だと思うのですけれど。

#アナログフィルタでカクカクを除去したら結局インパルスはその応答します。

 振動体の過渡特性とゴッチャに感じられる場合もあり、さらに混乱を招いている気もします。

・「不自然で無駄な成分」に見えるのは何故か
 以前、「インパルス応答のエコーを見ていても実際の音波に対する影響は解らないのではないか」と考え、インパルスではなく「いきなり立ち上がって消える1周期のみのサイン波」の前後に発生するエコーを観察したことがあります(不自然な波形であることは承知で)。

 結果、実質的には問題ないだろうと判断しました(判断理由は記事内参照)。
 が、実質的問題はなくとも、サイン波の前後にエコーが発生し、「不自然で無駄な成分」に見えたことは事実です。何故でしょう?

 それは、「原波形復元におけるエコーは原波形の正当な成分」であることから考えると、「そこに復元すべき有効なサンプルがないから」ではないでしょうか。
 1周期のサイン波の前後がいきなり無音なのはサンプリング定理違反(自然界には存在しえない波形)です。違反状態のため出現してしまう原波形復元成分が無用に見えてしまう、ということだと思います。

・無音部分に“エコーが染み出る”ことを可視化する
 ここで、上記理解をより納得するため可視化してみます。
 手法は先の記事と同じです。3周期の14.7kHz/-3dBサイン波(*)の前後に新たに2サンプルずつ無音をくっつることで、そこに出現するエコー成分は「各サンプルのインパルス応答によってつくられた原波形の血肉が取り残されたもの」であることを、連続した復元成分波形として示します。

*:今回は位相はズラしていません。周期最初のサンプルをゼロにして無音サンプル(ゼロ)と連続させた方が解りやすいかと思いまして。

 ベースとなる波形を以下に示します。

 上図・・・再現すべき原波形(*)
 中図・・・上図を44.1kHzでサンプリングした結果(に相当するデータ)
 下図・・・各サンプルの8倍インパルス応答をすべて加算した結果

*:8倍アップサンプリングで作ったものですので粗いですが、サンプル値を編集するのがメンドクサイのでご容赦ください。また、本来サンプリング定理違反ですので原波形と呼ぶのはどうかと思いますが、これもご容赦を。

インパルス応答ベース:3周期


 合成結果が原波形復元になっており、サンプル値がない前後4サンプル部分は「“合成され切れず取り残された応答成分”がエコーとして見えている」と言っていいと思います。

 次に、そのプロセスとして各インパルス応答波形を示します。今回のデータでは3サンプル/周期中1サンプルはゼロクロスしますので、値があるサンプル=インパルス応答するサンプルは3周期中No.4,5,7,8,10,11の6個になります。
 Linear系ですのでプリエコー・ポストエコーが前後対象に発生しています。

インパルス応答:3周期


 以上より、先の考察でエコーが発生しているのは
「いきなりゼロ値のサンプルに接続するというサンプリング定理違反なのが原因」
であり、
「定理に則ったサンプルが連続する限り、エコーは原波形の正当な血肉になる」
と考えていいでしょう。

 サンプリング定理に則る=波形を「自然界に存在しうる(発音体や媒体が振動できる)ナイキスト周波数で帯域制限された音波」として考えることは重要だな、と改めて思いました。

・本当に問題ないのか
 サンプリング定理の数学的復元では問題になりません。定理ではサンプルは過去にも未来にも無限にありますから、エコーは原波形復元の“血肉になり続ける”からです。
 PCMオーディオにおいても、波形が定理に則った波として連続している限りは“なり続けている”状態ですから、実質的には問題にならないでしょう。
 具体的に言うと、「曲が始まってしまえば問題ない」ということです。

 が、「曲(データ)の最初や最後」についてはなかなか難しく理解できていません。
 今は、「そもそも最初と最後があること自体がサンプリング定理の応用としての理想との乖離なので、なんかヘンでも仕方ない」と思うことにしています(苦笑)。
 なんかヘンになるとしても特殊条件を満たした場合だけですし、量子化されているのでエコーの影響範囲はそれほど広くない(前稿参照)でしょうから、全体的音質にはほぼ無関係だと思いますし。

 さらに、完全な無音(ゼロサンプル)からの立ち上がりや収束について考えていたところ、「“完全な無音”はある種のDC成分ではないか? とすると、サンプリング定理で扱っているのは“波”なので、実はあっちゃダメなのでは?」という気がしてきたことを後日のためにメモしておきます。

 前稿でも引いた東京電機大の「ディジタル信号処理の基礎」から、また抜粋引用してみます。

バイアス(直流成分)=ゼロ は、信号処理の暗黙の前提であることが多い
出典:http://www.asp.c.dendai.ac.jp/ASP/DSPseminar14.pdf P.4

 「AD変換時には、直流成分=DC成分は無いことが前提」とのことです。

・ベンダの功罪
 OSDF特性を複数設定できるようになっているDACチップがあります。そして、その設定をユーザに公開しているDACユニットもあります。
 Resampler-Vの表現で記すと、Linear系特性は位相ズレが発生せずエコー成分が前後対象(プリエコーあり)ですので、サンプリング定理の原波形復元に一番近い特性と言えるでしょう。
 Minimal系は位相ズレが発生しますがプリエコーがありませんので、未来のサンプルは参照できない(過去サンプルに影響できない)現実世界のアナログフィルタ特性に近いのでしょう。

 が、それらが選べるのは本来音質をチューニングするためのハズです。
 例えば、Minimal系はOSDF以前のアナログLPFの音に馴染んでいると好ましいかも知れませんが、決して「プリエコーがない方が客観的に高音質」ということではないでしょう。
 逆に、そもそも論ですが、PCMオーディオはあくまでもサンプリング定理の応用ですので、数学的復元に準ずる方が絶対に正しいとも言い切れません。ですので、「やっぱりプリエコーはキライ」といった嗜好(客観的ではない)も否定できるものではない、とは思います。

 ですが、新開発機能・技術をアピールするためか、「プリエコーは不自然」というイメージで語られることがあるように見受けられます。残念です。


 最後に、繰り返しになりますが、本稿ではAD変換時(デジタル化時)のフィルタ事情は考えていません。
 もしかしたら「AD変換時の帯域制限でLinear系フィルタをかけるとプリエコーが発生して不自然」といった事情はあるかも知れませんが、たとえそうだとしても、DA変換時にはそのプリエコーも再現すべき波形になっちゃいますので。


・個人的メモ
 MQAって、もしかしてADとDAの処理特性マッチングを図ってるってこと?
 ハイレゾでデジタルフィルタのデメリットを減らすことを考えた時、「AD特性に合わせてDAできればいいのに」と考えたが、それ系?

ハードウェア・デコードでは、4x(4fs)の176kHz、192kHz等のいわばフルデコードが可能だ。対してソフトウェア・デコードでは、2x(2fs)までで上限が88kHzまたは96kHzになる。これはボブ・スチュワートから、MQAは基本的にエンド・トゥ・エンドのシステムであり、4x以上のデコードにはDACの特性を知ることが必要だからという説明がなされている。

ちなみにプリッソン氏によると、MQA内部の情報にはDACのフィルタープロファイルをチューニングするためのデータも含まれているということだ。

出典:https://www.phileweb.com/review/article/201704/17/2496_3.html

これは正しい認識である。なぜならばMQAエンコードされる際に音源が“de-blur”、つまり時間的なあいまいさが取り除かれるからだ。これはつまりMQAの特徴のひとつである時間的正確性のことである。これは一種のデジタルフィルターと言ってもよい。
出典:https://www.phileweb.com/interview/article/201707/12/471.html


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

「サンプリング定理」その復元プロセスを可視化する

18/08/05初稿

 最近、故あってサンプリング定理の理解を再確認しています。
 その過程で「原信号復元プロセス」につきやっと解った気がするのですが、カンタンには自信は持てません(爆)。
 そこで、PCのソフトウェアで理解の裏取りをやってみました。

 個人的には意味があると思ってやってみたことですが、合ってる保証はありませんのであくまでも参考まで。


 「LPF」はLow Pass Filterの略です。
 「OSDF」はOver Sampling Digital Filterの略です。


■サンプリング定理はいかに「原信号を完全に復元」しているのか

 サンプリング定理を勉強していた時、非常にタメになった資料があります。
 東京電機大の「ディジタル信号処理の基礎」です(大変感謝しています。ありがとうございます)。
 今回も当該資料を読み込んだのですが、表題に関連する記述を抜粋引用してみます。

・波形の復元 (補間) は、パルス列波形と sinc関数との たたみ込み(= 理想ローパスフィルタ に通す )
・理想パルスが出力できない
・理想ローパスが存在しない
・最近の変換器 (オーバーサンプリング、∑Δ)では特性が改善された。(理想パルス+理想ローパスフィルタを ディジタルフィルタで近似実現したため)

出典:http://www.asp.c.dendai.ac.jp/ASP/DSPseminar14.pdf P.10~11

#「理想パルス」と「理想ローパス」については、理想DAC(sinc関数畳み込みによる復元を理想的に実践するDAC)が存在しえないことの説明として用いられています。
 ですので、本稿でも「理想ローパス」は理想DACの機能の意味で用います。

 上記を代表とする情報から、まずは以下のように理解しました。

・数学的な原信号復元は「サンプル値とsinc関数を畳み込む」処理である
・理想パルス(インパルス)や理想ローパスは存在しないので、上記数学的処理をそのままDACチップに実装することはできない
・理想処理にはならないが、現在のDACチップはOSDFなる信号処理としてそれをシリコン実装している

 …しかし、これだけでは“まだまだ”だと思いますので、もうちょっと突っ込んで考えます。


■復元プロセスを可視化する

・シミュレーションできるのではないか
 例えば、「sinc関数を畳み込む」とは具体的にどういうことでしょう? そして、それをDACチップが近似的に実現しているとは?
 がんばって具体的に記してみます。

・「パルス列波形と sinc関数との たたみ込み」とは、「サンプル値に対応するsinc関数の波形」を「各サンプル分全部合成」すること

・「サンプル値に対応するsinc関数の波形」とは、「サンプル値のインパルス応答波形」のこと

・「OSDF=インパルス応答するもの」である
 DACチップのOSDF特性としてインパルス応答波形が用いられている(*)ことなどから。
*:https://www.phileweb.com/review/closeup/akemd-ak4399/

・つまり、OSDFはsinc関数畳み込みを行っている(もちろん数式通りではない。もちろんそれがOSDFのすべてではない)

#本Blogでの「インパルス」「インパルス応答」の意味付けは、あくまでもPCMオーディオ理解用としてのものです。

 ここでひとつ思い付いたことがあります。
 当Blogでは、PCのプレーヤソフトなどで行われる「アップサンプリング」はDACチップのOSDFと同処理であると考えています。以下の通り、アップサンプラーはOSDFと同じようにインパルス応答しますしね。
 上記の噛み砕き内容が正しく、かつOSDF=アップサンプリング説も正しいとすると、PCソフトによるアップサンプリングによって「数学的な復元プロセス=sinc関数の畳み込み」をシミュレートできるのではないでしょうか?
 可能なら、大変具体的にプロセスをイメージすることができるでしょう。
 そして、それが成立するなら上記の理解内容の確認にもなるでしょう。

・手法
 ということで、以下の手順でやってみました。

1.≪WaveGene 1.50≫で44.1kHzサンプリングの14.7kHz/-3dBサイン波を生成
 1周期に3サンプルです。リコンストラクションのシミュレート記事と同じく見た目に印象的なサンプル位置にするため30°ズラしていますが、データをいじりやすくするため&CD規格に準ずるためこちらは16bitで。

2.≪Sound Engine Free 5.02≫で6サンプル分(2周期)のみにカット
 あまりサンプル多いとメンドクサイので2周期分に。

3.バイナリエディタで1~6番目までの1サンプルのみに書き換えたファイルを6個作成
 他の5サンプルを0000hに書き換えたものです。

4.≪foobar2000 v1.3.8≫のResampler-V 3.2で8倍アップサンプリング
 Convert機能で6個の「各サンプルのインパルス応答波形ファイル」を出力。
 8倍なのはDACチップのOSDF性能に合わせたものです(先の記事と同じ)。

5.8倍した波形ファイル6個を≪Wavosour 1.0.8.0≫のPaste&mixで全部合成
 ≪Wavosour≫は編集結果以外の改変もしてしまいますが、今回はざっくり波形が見られればよいので良しとしました。

・結果
 上図・・・1644の6サンプルしかないデータ
 中図・・・そのインパルス応答波形を全部合成したもの(中間プロセスは別図あり)
 下図・・・再現すべき14.7kHz/-3dBサイン波(比較用)

インパルス加算実験:結果比較

 中図を見ると、確かにこの手順で上図から14.7kHzのサイン波=原信号の復元が進んでいるようです。6サンプル=2周期分しかないのでまだグネグネしていますが、逆に6サンプルしかないのにここまで復元できるのですね。
 サンプル数が増えればどんどん14.7kHzのサイン波に近づいていくであろうことが想像できます。そして、現実では扱えるサンプル数が有限な以上完全には(理想的には)復元しきれないであろうことも。

 おぉ、ということはつまり「sinc関数畳み込みによる原信号復元を近似するDACチップ処理」のシミュレーションになっているようです。

 また、「6サンプルしかない14.7kHzサイン波」ファイルを8倍アップサンプリングした波形は中図とニアリーになりましたので、「各サンプルのインパルス応答波形を全部加算する=アップサンプリング(OSDF)の基本」と考えていいでしょう。
 さらに、今回はインパルス応答波形を8倍アップサンプラーで生成しましたが、この倍数が高ければ高いほど応答波形は(サンプリング周波数で決まっている形は変えずに)滑らかさを増しますから、復元波形もより滑らかになる道理です。2倍より4倍、4倍より8倍の方が原波形に近づくことの別の見方とも言えますね。
 そして、「DACチップのOSDFはサンプリング定理の数学的復元処理をシリコンに実装したもの」とも言えるでしょう。もちろんコストなどに見合った実現可能な範囲で、です。
 ということで、

・最近の変換器 (オーバーサンプリング、∑Δ)では特性が改善された。(理想パルス+理想ローパスフィルタを ディジタルフィルタで近似実現したため
出典:http://www.asp.c.dendai.ac.jp/ASP/DSPseminar14.pdf

という、上述した大学資料の記述を「見える化」してみた結果、その考え方に矛盾はみられませんでした。
 また、このように復元するのですから、ナイキスト以下の周波数成分の集合体にしかならないのも納得です。

 そして、“畳み込む関数”が違えばインパルス応答結果も変わるワケで、それはOSDFやアップサンプリングの特性違いになることでしょう。


 なお、「なぜsinc関数をサンプルごとに畳み込むと原波形が復元されるのか」については、もはや数学の領域であって趣味のオーディオで扱う必要はないでしょう。
 ちょっとだけイメージで言うと、「インパルス応答は発音体の過渡特性なので、断続的に発生させて足し合わすと元波形になる」的な?


■中間プロセス資料

 プロセスの説明として、以下に6個のサンプルを1個ずつに分解してインパルスにした状態を添付します。
 左側の上から下へ進んで右側に移る順番です。

インパルス加算実験:6インパルス


 続いて、上図のインパルス応答波形(8倍アップサンプリング結果)を示します。対応する順番に並んでいます。
 これら6波形を全部合成(加算)したものが上の中図になります。

インパルス加算実験:6インパルス応答


 Resampler-Vの設定を記録しておきます。高性能DACを想定したものです。

インパルス加算実験:Resampler-V設定


■おまけ:CDフォーマットにおける“現実解”

 なんか思いついちゃいました。

 「サンプルは有限なので現実には復元しきれない」と記しましたが、そもそもサンプルは量子化されています。そしてインパルス応答値は中心から離れるとどんどん小さくなっていきます。ですので、中心からある程度以上離れれば、インパルス応答値の“理想との差分”は量子化誤差に埋もれちゃうのではないでしょうか。
 だとすると、“量子化されたサンプルを扱うのであれば”無限にインパルス応答を加算していく必要はなく、ビット深度に応じた“現実的限界”ってあるのかも知れません。もしかしてデジタルFIRフィルタの次数はこれで決めてるのでしょうか?

 ということで、音量0dBの最大インパルスファイルを作成し、それを上記8倍アップサンプリングし、1644=CDフォーマットにおける「インパルス応答限界」はどれくらいか見てみました。

インパルス量子化誤差


 下図が上図を同じ時間軸スケールで拡大したものですが、中央のインパルスから前後ともそれぞれ36サンプル分(プラスとマイナスのピーク-ピークがサンプル周期)あり、それ以降は量子化誤差以下(-96dBに満たないのでゼロ)となりました。
 つまり、前後とも37サンプル以上遠いサンプルのインパルス応答値は0になっちゃいますから、畳み込む必要はないということになります(ちなみに、これはFIRとかIIRとは関係ないハナシだと思ってます)。
 24bit精度で出力した場合も見てみましたが、36サンプルの後5サンプル有意でしたがその後は0になりました(-144dBまで分解した表示できないので振幅が収束した直後のサンプル値をバイナリエディタで確認)。
 これを見ると、CDフォーマットだったら前後合わせて100サンプルも畳み込めば十分?

 いやいや、当然実際にはもっといろいろな事情があるでしょう。例えば、Resampler-VのAttenuation性能を高くするとインパルス応答は長くなります。当然、24bitソースならもっと長く必要でしょう。
 が、CHORD社は「普通(のDACチップ)は200タップ程度」と言っているようです。
 DACチップで参照するサンプル数はそのくらいのスケール感なのかも知れません。


 以上、畳み込む関数のパラメータにもいろいろあるハズですから一例にすぎませんし、この考え方が合ってる保証もありません。
 けれど、CDフォーマットの場合は意外と身近に「理想の現実への落としどころ」があるのかも知れないな、と思いました。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

BDディスクの覚え書き

18/07/23初稿


■ディスク相性問題

 本項14/12/07初出。
 18/07/23、AACS:BDAV編から移動しました。

 BDZ-AT700と同時に購入した5枚組Verbatim(三菱化学)製BD-RE DL、AT700と相性問題? があるようです。
 購入当時、27GBくらいのタイトルを書き込み、とある事情でムーブバックしてさらに書き戻したら2層目がエラーで読めなくなりました(途中停止してハングしたようになる)。

 人生最初の25GB超タイトルのディスク処理であえなく玉砕(苦笑)。もちろんおろしたてメディアでした。

 何度か同じような確認を行って問題出なかったので“たまたま”なのか、またはファームが対応できてなかったのかなと思い2枚目以降はおっかなびっくりながら使ってました。
 といってもHDD容量削減のための一時的待避が主目的ですので、昨日、そろそろ1層メディアに保存しなおす作業しようかと思い立ち、ムーブバックしようとしたらエラーで停止してしまいました。何事もなかったように終了(HDDには何もなくディスクから削除はされていない)していて、最初は何が起きたか判りませんでした。最初の1枚は封印してましたので、それ以外の3枚で、です。ちなみに特筆するような回数の繰り返し使用はしていません。

 2枚目は複数タイトル記録していたのですが、全選択ムーブバックは新しい順に行われるようで、エラーした時点で終了しちゃうようです。問題タイトルを選択しなければムーブバックできました。
 3枚目と4枚目は25GB超のワンタイトルです。3枚目はPCで再生しようとしても半ハングのような状態になりましたが、4枚目は映像が乱れて再生されました。発生するのはバイト読みで22GBあたりですので、明らかに2層目への切り替わりポイント周辺です。

 どうしてくれようかと悩みましたが、試しに別のAT700でムーブバックしてみたところ、3枚目はやっぱりダメでしたが4枚目は成功しました。ならばと3枚目もやり直してみたら、2回目で成功。あきらめなくてよかった(笑)。
 3枚目は、PCでもBDR-S05Jだと映像止まるほどでしたがSW-5583だと乱れはするものの再生可能でしたので、ドライブ性能差や同じドライブでも“暖まり具合”などによって読み取り能力は変動するようです。

 試しに複数タイトルを記録している5枚目もムーブバックしてみましたが、やっぱり層切り替えを含むであろう位置にあるタイトルで失敗しました。リトライ5回目くらいで読めましたが… CDのリッピングかよ!(苦笑)

 多層メディアやっぱアブナイなぁ… レコーダとメディアどっちの問題なのか、どっちも問題なくて相性的なハナシなのかは解りませんが。
 BD-RE DLはPanasonic製しか流通していないと勘違いしていてVerbatimブランドを買っちゃったんですけど、ID読んでみたらVerbatim製でした。
 層切り替えのあたりに敢えてダミータイトルを記録して使う…なんてメンドクサイですよね(笑)。

 さて、ということもありXLには手を出していなかったのですが、この経験で、ふと「1層33GBの大容量メディア」と見なせるのでは? と思い付きました。33GB超の“連続再生しないと価値がないコンテンツ”を録画することはあまりないでしょうから(WOWOWの映画などでも30GBくらいかと)、たまにある25GB超・33GB以下のコンテンツ録画用に使うっていうのはアリかも知れません。



 まあ、素直にDR諦めてAVCモード使えばいいんでしょうけれど。


■ディスク容量

 本項15/01/11初稿。AACS記事から移動しました。
 さらに18/07/23、BDZ-EW1200記事から移動しました。

 思うところあって初めてBD-R購入しました。BD-RとBD-REって容量同じなんでしょうか?
 Panasonic日本製BD-R(上)とSONY多賀城製BD-RE(下)、まずはまっさらの新品ブランクディスク。
 Power2Go V6にて。

BD-Rブランク:P2G
BD-REブランク:P2G

 続いてAT700 2号機でフォーマット直後。

BD-R:P2G
BD-RE:P2G

 Windows8.1update1のエクスプローラで見ると…

BD-R:AT701
BD-RE:AT701

 BD-Rにフォーマットで作られたフォルダは見えますので、UDF2.6は書けないけれど読めはするんですね。
 V9でフォーマットしたBD-REもエクスプローラでは同じ容量でした。BD-Rもたぶん機種依存性はないのではないかと。

 BD-Rはマルチトラックになるんですね。知らなかった… レコーダにおける管理上の理由(ライトワンスの容量管理?)らしいですが、エクスプローラから見える容量が異なってるのはそのためでしょうか。機種やメーカによって管理方法が異なるなら容量も統一されてないかも知れませんね。

 ディスク総容量はおそらく同じっぽい気がしますが、マルチトラックになる分だけBD-Rの方がやや小さくなるのかも知れません。

 16/05/07追記:ちなみにBD-RE DL(Verbatim製)のフォーマット状態(コンテンツなし)です。

BD-RE DL:P2G

 容量は1層の23097.8MBに対し46195.8MBと表示されました。2倍ちょっと、ですね。


メインメニューへ

テーマ : デジタル家電・AV機器
ジャンル : 趣味・実用

コアなジェネレーションはギャップしているか

17/10/14初稿

 トランスポートPCをX79からZ170に組み替えました。ASUS製Z170-Aです。

 CPUは6コア12スレッドのCore-i7 3930K(3.2GHz,TDP135W)から2コア4スレッドのPentiumG4560(3.5GHz,TDP54W)に。
 マルチスレッド性能としては大幅グレードダウンですが、世代としては第2世代(のエンハンスですけれど)SandyBridge-Eから第7世代Kabylake(M/Bはひと世代前ですけれど)へのジャンプアップとなります。

 ジェネレーションギャップ、(だいたい)5世代分の影響や如何に?


■動機

 Z170構築の際NVMeについてさんざん調べた流れで、「オーディオPCのストレージをCPU直結のNVMeにしたらどうなるか」興味津々になっちゃいまして。

 だって、USB-I/FはすでにCPU直結していますから、そうすれば音源データをCPUを経由するだけで送り出せるような気がするではないですか。

 PCIe-I/FのSATAコントローラカード経由のSSDでも直結できますが、“よりシンプル”でないと魅力半減ですのでNVMeです。
 でも、現X79はNVMeから起動できないんですよね。システムも音源も1台に入れてしまいたいので、X79では実現できないということになります。
 そこに、Z170マザーが1枚余ってるワケで。壊しちゃったのでとりあえず修理見積もりしてみたら、あっさり直っちゃったんです。
 CPUは新たに調達しなければなりません。といってもZ170でX79の代替できるかどうかは不明ですから、お試し価格でないと踏み切れません。
 そこに、ちょうどオイシイ新CPU「PentiumG4560」が発売されてたワケで。



 Pentiumは、X79を組んだ時は2コア2スレッドでしたので候補になりませんでした(流石に4スレッド以上は欲しかったので)が、新型は2コア4スレッドになりました。
 Gfx性能や動画アクセラレーションなどの付加機能は要りませんので問題になりません。
 スレッド数はX79に比して1/3になるワケですが、3930Kでの負荷状況をみる限り処理能力的には全く問題ないハズです。
 G4560はKabylake世代であるのに対しZ170-AはSkylake世代ですが、メインPC用の6700KでUEFIアップデート済みなので使えます。

 いずれにせよM/Bだけあっても仕方ないので、これを調達しました。

 しかし、X79導入理由である「スレッドが多い方がよい」が世代を超えても成立するなら、音質的には退化してしまう可能性があります。
 もしそうだったら代替はあきらめてサブマシンにします。
 トランスポートとしてちょっとでも可能性を感じた場合は、6700Kを使ったりして追い込んでみるつもりで。


■構成

・ハードウェア
 以下のような違いになります。

・メモリ・・・DDR3 → DDR4
・メモリチャンネル・・・4 → 2
・メモリ枚数・・・4 → 2 (いずれも4GBモジュール)
・クロック・・・3.2GHz → 3.5GHz
・コア数・・・6 → 2
・スレッド数・・・12 → 4
・プロセス・・・32nm → 14nm+

 DDR4メモリはメインPCのZ170化の際に4枚用意したCorsair製を2枚流用。もともとオーディオ用途も考慮して選んだものですので。
 その他、CPUファンのみリテール品に変更した以外は、拡張カード類もそのまま移築しました。
 メインテーマだったストレージもとりあえず元のSSDのまま。512GB以上のNVMeはおいそれと買える値段じゃありませんので、まずはZ170環境にしたことによる影響を見定めます。

 スロット使用状況は以下のようになりました。
 Z170-AにはPCIスロットがあるので「NO-PCI」が無駄になりません。PCIeからの変換PCIですがNO-PCIには関係ありませんし(笑)。

・slot0:PCIe x1 NO-PCI Express
・slot1:PCIe x16 PP2U-E  CPUに一番近いところに配置(CPU直結)
・slot2:PCIe x1 空き
・slot3:PCI   NO-PCI
・slot4:PCIe x8 空き(CPU直結)
・slot5:PCIe x1 空き
・slot6:PCIe x4 HD7750  表示用&HDMI-Audio用I/Fとして

 3930Kと異なりG4560には内蔵Gfxがありますが未使用に設定します。オンボードデバイスも極力disalbeです。山ほどあるチップセットUSBはBluetoothドングルと調整用K/Bのために2ポートのみ活かしてdisable。

・OS
 システム入りストレージを再インストールすることなくそのまま移築したワケですが、問題なく動いています。Bluetoothドングルも何もせず認識。なのでオーディオ系のセッティングもそのままです。
 CreatorsUpdateはMSがオーディオ関連で“やらかしている(*)”ようなので、クリーンインストールせずに様子を見た次第。

*:UD-503でテストしてみたところでは、クリーンな状態からなら問題は起こらなそうですけれど。


■電力

 CPUのTDPはまるで違います。DDR4は低電圧化しています。DIMMは4枚から2枚になっています。
 が、それ以外はほぼ変更なしで以下の通りです。ワットチェッカにて。

・再生時  ・・・35W
・アイドル時・・・31W
・起動時最大・・・50Wくらい

 再生動作は「«foobar2000»による1644音源の32倍アップサンプリング→DSD256変換」です。

 解体直前に測ったX79の再生時は60Wでした。
 X79構築当時はHD5450が実装された状態で64W(条件はやや異なります)でしたので、HD5450で4W消費と推定。
 とすると、アイドルは当時61WだったのでHD5450レスならざっと57W程度でしょうか。
 起動時最大の低下に至っては“劇的”と言えるでしょう。

 スレッド数は1/3になりましたが、これはこれでよさげな気が(笑)。


■負荷

 では、気になる負荷状況はどうでしょう。タスクマネージャで比較してみます。システム入りSSDをそのまま移築しての比較です。動作モードは電力と同じです。
 まずはZ170。

Z170-A負荷2


 X79では同条件で以下の通りでした。

X79負荷2


 X79では4%/2.3GHzくらいでしたが、新システムは12%/1.5GHzくらいになりました。

 「使用率」が3倍になっていますが、スレッド数が1/3になってるワケですからそのまんまってカンジです。一方「速度(動作クロック)」は低下していますから、処理効率は上がっていると言えそうです。

 やっぱり5世代も違うと違うところは違いますねぇ。


■音質

 変わったように思います。クリアでシャープになったカンジでしょうか。といって高域がキツイなどというワケではありません。

 ところで、やっぱりメモリ設定いじると変わる気がします。
 電圧はデフォルトの1.2VのままだとX79より音量下がったように聞こえます。最低の1.0032(?)にするとX79と似た音色に。デフォルトの方が好みです(X79に勝るとも劣らない)。
 1.0Vにしたらリセットしちゃいました。1.1Vにしたら低域がふくれた感じに。1.2Vで2400MHzにしても同じです。
 どうも、かつてのE-350環境での経験とは異なり、電圧下げると好ましくない方向にいきます(苦笑)。
 スピードは100MHzの24倍で2400にしてみました。XMPで2666なのでそれを超えないところで。が、これも好ましく聴こえません。

 キリがありませんし、E-350の時ほど関心はないので追い込んだりはしていませんが、結局、“Z170-A環境では”XMP定格が一番よさげです。


 以上、X79+3930KからZ170+G4560への変更で音質劣化したとは思えませんでした。Windows10で使うのでなるべく新しい方が望ましいですしNVMeが使えるなどのメリットがありますから、Z170環境で常用しようと思います。

 X79にした理由である「スレッド数が多い方がよい」と相反する話になりましたが、それが差異パラメータになりえるのは同じ環境、または“同世代どうし”でのことであり、世代の違い(しかも5世代)はそれどころではない違いを産むのかも知れません。シリコンのプロセスは新しい方が有利なのかも知れません。
 メモリについても、プラットフォームが変われば全然違うということです。当たり前ですね。

 ちなみに、音質の感想もその理由付けも、もちろん一般論になりえる客観的な話ではありません。個人的におもしろがってるだけですので、その点よろしくお願いします。


■直結

・ストレージはCPU直結した方がよいのか
 「ストレージをシンプルにCPU直結したいのでNVMeを使いたい」が動機ではありましたが、SSDをそのまま移築して動かし始めてしばらくしたら考え変わってしまいました(笑)。
 下流からさかのぼって考えると、トランスポートPCにとって一番優先すべきは「USBコントローラの安定動作」だと思っていますので、「CPUのPCIeレーンはそのI/F専用にした方がいいのではないか」と。
 NVMeのI/FとしてはオンボのM.2スロット(PCH経由)の方が、変換カード経由より余計な接点少なくてよいような気もしますし。

 仮調達したNVMeをSSD(SATA3)に代えてM.2に実装してみたところ「おぉ、これはいい!」ってカンジでもなかったので積極的には動いていません。やるにしても低発熱タイプじゃないと“ナンカイヤ”なので、SM961あたりが安くなったらまた考えようかと思っています。

・CPU直結に注意
 ところで、拡張カードを「CPU直結したい(PCHを経由したくない)」場合はM/B仕様に注意した方がよさそうです。
 MicroATXなどでは、CPU直結のPCIeスロットは1本しかない場合があるためです。

#以下、解りやすさを優先し、一般的なIntelアーキテクチャのM/B製品を想定して簡略化して記します。

 CPUから出ているPCIeレーン数は16です。
 その16レーンは「1スロットのx16」または「2スロットのx8」に設定できます。
 ですので、CPU直結のPCIeスロットは「最大2」となります。
 一般的用途はGfxカードの複数枚使用ですから、敢えてx1やx4に実装することはまずありません。
 また、「2スロットのx8」に固定してしまうM/Bもまずないでしょう。

 そのため、「x8スロットを使うとx16スロットはx8になる」という仕様のM/Bは、その2スロットがCPU直結です。逆に言うとそれ以外のスロットはCPU直結ではありません。
 そして、そうではない仕様の場合、CPU直結スロットはおそらく1本しかありません。

#3スロット以上直結したい場合は、LGA2011などのハイパフォーマンス系を用いる必要があります。

 同世代のASUS製品で例を挙げます。

 ATX「Z270-A」のスロット仕様は製品webページによると以下の通りです。

  2 x PCIe 3.0/2.0 x16 (x16 or dual x8)
  1 x PCIe 3.0/2.0 x16 (max at x4 mode)
  4 x PCIe 3.0/2.0 x1

 同じくMicroATX「PRIME H270M-PLUS」は以下の通り。

  1 x PCIe 3.0/2.0 x16 (x16 mode)
  1 x PCIe 3.0/2.0 x16 (max at x4 mode)
  2 x PCIe 3.0/2.0 x1

 x16スロットの仕様が微妙に異なっているのが解ると思います。
 Z270-Aと異なり、H270M-PLUSではx8になったりするとは記されていません。ですのでx16固定のCPU直結スロットと推定されます(わざわざPCHレーンをここに使うとは考え難いので)。
 そして、CPUからは16レーンしか出ていませんから、H270Mでは1本目でそれを使い切っていることになります。

 よって、H270M-PLUSにおけるCPU直結スロットは1本目だけであり、2本目の「PCIe x16形状のスロットのx4」はPCHからのものとなります。残る2本のx1はもちろんPCHからのPCIeレーンです。

 複数のカードでCPU直結を狙う場合は要注意、ということで。

 なお、Intelの一次資料で確認していませんが以下記事など見ると、そもそもH270M-PLUSが採用しているH270はCPUレーンを「1スロットのx16」でしか使えないようです。
http://news.mynavi.jp/articles/2017/01/04/kabylake/

 余談ですが、最近のM/Bマニュアルにはブロック図が無くなってしまったようで、こういうことが解りにくくなりましたねぇ。

 ちなみにPCHとはいわゆるチップセットのことです(Z170記事参照)。もはや“セット”ではありませんけれど。


■備忘録

 HD7550のままなのに、X79ではVIERAに出なかったUEFI画面が出るようになりました。そういうモンなんですかね? DSP-Z7経由でも大丈夫です。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

最新記事
ERIへようこそ

Author:らかせ
「最新記事」または
「メインメニュー」からどうぞ

・ファイルへの直接リンク以外はリンクフリー(連絡不要)です

・一応、拍手にコメント(非公開)付けられるようにしてあります

・DB的に利用しており、過去記事もガシガシ書き換えています。特に「最新記事」は初稿から一週間くらいは直してることが多く、大幅に変わっちゃうことも。ご了承ください

・ということもありますし、記すまでもないですが無断転載(ファイル含む)はご遠慮ください

・引用の考え方については「007:諸事」をご参照ください

・アフィリエイトは「Amazon.co.jpアソシエイト」のみです

・ハイパーリンクは当Blog記事のみです(054:節電記事のみ例外)

カテゴリ
検索フォーム
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。