改めてReClockの設計思想と仕組みについて考えてみる

closeこの記事は 6 年 2 ヶ月 18 日前に投稿されたものです。最近の記事内容との齟齬がある場合,リンク切れが頻発している場合がありますが,ご了承下さい。

今回は頂いた質問等にお答えしつつ,ReClockのコンセプトをもう少しわかりやすくお伝えできればと思います。前回前々回の記事の内容も適宜ご参照ください。

▼そもそもどういうソフトなのか。
ReClockは,AVIファイルやmpegファイルの再生時のぎこちなさを確実に取り除くことを目的として,Windowsがデフォルトで採用するDirectSound Audioレンダラーの代わりに動作するDirectShowフィルターです。

ReClockはスムーズに動画を再生させるための機能として二つの機能を持っています。
一つ目は,ビデオカードのハードウェア上にあるクロックに同期させる(垂直同期=vsync)機能によって得られる正確なタイミングで,確実に画面の切り替えを行う機能です。二つ目は,ビデオカードのリフレッシュレートに合致しないフレームレートである動画ファイルであっても,ソフトウェア的な処理でフレームレートをリフレッシュレートに合わせる機能です。
そして,これに合わせて,リアルタイムにオーディオの再生レートを合わせるフィルター機能をもち,この3つで動画再生のスムーズさを追求しているわけですね。なお,このフィルター機能はカーネルストリーミングまたはWASAPI排他モードでも動作させることができます。

以上みてきたように,ソフトウェア名はReClock ですが,オーディオ的な機能だけに焦点を絞ると,実際はカーネルストリーミングまたはWASAPI排他モードが使えるリサンプラーアプリです。

繰り返しになりますが,そもそもの使い方は,ハードウェアのクロックに合わせて動画再生スピードを調整し,それにあわせて音声をリサンプリングしてスピードを調整し,リップシンクを行うソフトです。
さらに,現在リリースされているバージョンでは,オーディオのクロックを基準として動画の再生スピードを変更するという機能があり,オーディオ界隈では,どちらかといえばこちらの機能が注目された,といったところでしょうか。

▼頂いたご質問
それでは,微妙にわかりにくいReClockの音声リサンプリング機能について頂いたご質問について,みていきましょう。

[Q] ReClockが特殊なのは,いわゆるアップコンバート的なリサンプリングではなく,本来サンプリング周波数が44.1kHzのデータが44.1112kHz等に乱れてしまっている状態を正しく44.1kHzに戻してくれるのでしょうか?

違います。本来の使い方ですと,映像切り替えのタイミングに合わせて44.1kHzのデータを44.1112kHz等にリサンプリングしてくれます。この微妙なリサンプリングが肝のようです。
また,音声のみの再生の場合には,リサンプリングする余地は一切ありません。元々44.1kHzのデータがソフトウェアによって違う周波数に乱れるということはありません。WAVファイルの場合,ファイルの先頭に44.1kHzであると記録されていて,プレーヤーはそれを読み取って44.1kHzで再生しろとハードに伝えます。
つまり,ReClockが表示するBit Exact.というのは,まさに元のデータの通りに何も加工をしていないという意味です。

なお,PC 用ソフトなどでのリサンプリングというのはデジタルフィルターの課題の一つである高域の折り返し雑音と呼ばれる現象を回避するためのものであって,クロックとは本来的に無関係のものです。つまり,プレーヤー側でアップサンプリングしようが何をしようが,ジッター対策にならないのが原則論です。むしろ,PCMの場合,サンプリング周波数が上がるとジッターに対して弱くなってしまいます。
S/PDIFにせよAES/EBUにせよ,クロックを生成するのはあくまでサウンドデバイスであって,サウンドデバイスはデータのヘッダに記録されているサンプルレートに従い出力周波数を決めます。ですから,44.1kのデータをソフトウェア的に48kに変換してもジッター値が減少することはありません。
なぜなら,音声再生におけるジッターの問題とは,クロック信号を参照しながらデジタル信号を復調する際に問題となるクロック信号の揺らぎのことであるところ,デジタル信号を改変することはジッター発生以前の段階で行われるからです。

[Q] ReClockは他のWASAPIの排他モードに対応しているプレーヤーと違う音に聞こえるのですが,何故ですか?

簡単にいえば,ReClockは音声再生の時にWASAPI排他モードで再生してくれるだけです。DirectSoundと WASAPI排他モードではそれだけ音が違うということでもありますし,その驚きはXP時代からASIOを使っていた人が通った道でもあります。
WASAPI排他モードでもレンダースレッドタスクとデータ供給モードは選択的なので,同じWASAPI対応のプレーヤーソフトでも,その辺りの設定で変わることは考えられます。PCオーディオのエンスーな人達はOSの設定で音を調整していきますから,別段音が異なっても不思議ではありません(それが検知限以上か以下かは別問題です)。

というわけで,前回,前々回の内容も合わせて読めば,貴方もReClockマニア?お友達にも教えてあげられるはず!残すは音の違いですかねー。PlayPcmWinとの比較をしてみたいと思います。

改めてReClockの設計思想と仕組みについて考えてみる」への7件のフィードバック

  1. ピンバック: えるえむ

  2. ピンバック: DTMオーディオサンプリング

  3. ピンバック: DJ okamOTO

  4. Katsumi

    はじめて投稿します。
    いつもたのしく読ませていただいています。
    kmp+Reclockは音は最高だと思いますが、
    オーディオ専用で使うとき、どうもおかしな動作をします。
    具体的には曲の切れ目で
    ビートルズのサージェントペッパーの1曲目と2曲目のつなぎで
    一瞬音が消失します。
    音が連続してつながっているとこういう現象が現れるようです。

    XP32bitとWIN764bitでも、さらにPCを3台変えても同じで
    すばらしい音なのに残念でメインプレイヤーになれないでおります。
    どうもWASAPIとかPCの性能は関係ないようです。
    解決策を知っている人がおられたら教えていただければ
    と思います。

    返信
  5. えるえむ 投稿作成者

    Katsumiさん,コメントありがとうございます。
    KMPはどうもギャップレス再生(曲と曲の間を0秒で再生する=曲間がない)に対応していないそうです。あまり優先順位が高くないということで現状では望み薄ですが,KMP配布元にきちんと要望を出されると検討してくれるかもしれませんね。
    解決策ではなく申し訳ないのですが,他のDirectShowフィルタ対応プレーヤーを探してKMPに近いorより好ましいものを探すしかないと思います。
    組み合わせの妙みたいなものですから,KMPがKatsumiさんにとって最良とは限りません。色々お試しになると良いのではないでしょうか。

    返信
  6. ピンバック: ネコ1世

  7. ピンバック: 63bit

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title="" ktai=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">