「Upconv」を使ってMP3などの圧縮音源を高音質化する方法

オーディオ

フリーソフトを使って「アップコンバート」や「アップサンプリング」し、擬似的にハイレゾ音源などを作り出す方法は色々あります。

例えば「foobar2000」などの音楽再生ソフトにプラグインを導入して、リアルタイムで「96000kHzへのサンプリング」や「PCMをDSDに変換」することも、その一例です。

しかし、リアルタイム変換はCPU処理に負荷が掛かること。プラグイン処理の為、外部プレイヤー(スマホやDAP)での再生が出来ないことなどで利用していませんでした。

また、圧縮音源をハイレゾ(ニセレゾ)化することに、懐疑的でした。

そこで、比較的処理が優秀な「Upconv」を使って、MP3などの圧縮音源をアップコンバートし出来る限り高音質化する方法を解説します。

この記事は私の個人的な意見がかなり含まれてます。

作業手順

  • Windows10のパソコン(ある程度以上のスペック)
  • アップコンバートソフト「Upconv 0.8.2k」
  • ファイル変換&音楽再生「AIMP」など
  • 音声波形解析ソフト「WaveSpectra」(任意)

ざっくり、「AIMP」などを使って「MP3ファイル」などを一度「Wave」に変換し「Upconv 0.8.2k」を使ってアップコンバートし「Wave」ではファイルサイズが大きいので、もう一度「AIMP」などを使って「可逆圧縮方式のFLAC」音源に圧縮します。

ちなみにタイトル通り、MP3やMP4などの「圧縮音源向け」の解説です。

ダウンロードリンク

「Upconv」を起動

「Upconv」は製作者さんのページからダウンロード出来ます。

今回は「Upconv 0.8.2k」使用しました。

インストールについては割愛。

マニュアルはインストール先の「Upconv」フォルダか、製作者さんがブログで使い方を説明してます。

音源ファイルの用意

「Upconv」は設定することで「MP3」の入出力と「FLAC」での出力が可能になります。

デフォルトでは「Wave」での入出力しか出来ません。

ただ私は、再生とファイルコンバートに「AIMP」を使用しているので「Upconv」側での設定はしていません。

理由は幾つかありますが

  • 「AIMP」なら圧縮率を変更出来る
  • 再生も「AIMP」で行うのだから、ファイルコンバートも「AIMP」で良い
  • 「AIMP」で完結出来るのに「Upconv」側での設定をするメリットを感じない

ので、私は「AIMP」で行っています。

今回は「YouTube」上の音源を使用します。

YouTubeから動画や音源を保存する方法は解説しませんし、利用する場合も個人での利用など自己責任で。

ダウンロードしたファイルを「AIMP」のオーディオコンバーターを使って「Waveファイル」に変換します。

「AIMP」のコンバーターは優秀で、大抵のファイルは読み込んでくれます。

「MP4」のような動画ファイルも、そのままドラッグするだけで変換してくれるので便利です。

「Upconv」の設定

「Upconv」の設定をします。

あくまで圧縮音源向けの私が思う設定なので、参考程度でお願いします。

「デフォルトパラメーター」の04に指定。04のパラメーターを変更するので「セッティング」へ。

Option 1

それぞれの役割について説明します。(製作者さんの説明から引用し、私なりの設定した意見を付随)

「Convert Option」「Adjiust Bit Extension」「Post ABS」「Post NR」「HFC Auto」「Mid/side Process」にチェックを入れます。

Adjiust Bit Extension

  • ビット数を、16から24へ拡張する場合等に、量子化誤差を少なくするようにデータを調整する項目。
  • 量子化ビット数が足りないため、階段状になった波形を滑らかにします。立ち上がりや立下がりのデータの量子化誤差を軽減する処理もします。

基本、圧縮音源などは16Bitなので24Bitへ拡張し、拡張した際に波形を綺麗にした方が音が綺麗です。

Post ABS

  • リサンプリングや高域補間処理が終わった後に、再び「ABE処理」(ビット拡張用の調整)をします。
  • 音声の波形が滑らかになるように処理します。

基本的にチェックが入っているのでそのままです。

Post NR

  • 高域補間を実施した後にも、NR処理をします。NRの時に使用する周波数はHFCで指定したものと同じになります。

これは必須です。後述しますが、圧縮音源をアップコンバートした際に高域部分が「キンキン」したり「ノイズ」っぽくなる原因は「HFA Level」ではなく、アップサンプリング後にNR処理をしていなかったからです。

アップサンプリング後の音声波形状態から、NR処理で綺麗にしないと「ノイズ」っぽくなります。

「16000kHz」辺りから高域部分が、急降下している音源では顕著で、私は最初「HFA Level」が原因だと考えていましたが「Post NR」を有効化したところ、解決しました。

HFC Auto

  • HFCの周波数を自動で求めることを試みます。MP3等で「16kHz以上」がカットされている音声等と他のファイルを同時に変換する場合等に便利です。
  • 音声ファイルによっては「HFC」の周波数が低く判定されてしまう可能性もあります。
  • 「HFC Auto」と「HFC」を同時に指定した場合(Enable HFC にチェックを入れた場合)は「HFC Auto」はオフになり「HFC」の値を優先します。

MP3などの圧縮音源は「16kHz」辺りから色々と削られています。

HFCの周波数を自動で求めてくれるので、圧縮音源を扱う今回はチェックを入れています。

Mid/side Process

  • 音声の「Left/Right」をMid(Center)Side (Center以外)に分けて処理します。
  • 非可逆の音声ファイルで「Side側」の削られてしまった音を「Mid」から生成します。
  • 音の広がりや圧縮による「しゅわしゅわ」という感じの音が消え音質が良くなります。
  • MP3やWMAの場合、非可逆の音声ファイルのビットレートが「128kbps以上」がおすすめです。
  • 「96kbps」などの圧縮率が高い場合は、元々の音が削られてしまっているのであまり良い音にはなりません。

この項目が追加されたことで「Upconv」でのアップサンプリングが、かなり実用的なモノになりました。

使用して貰えれば分かりますが、この項目が圧縮音源でのアップサンプリングで一番重要です。

実際、MP3など特有の「しゅわしゅわ」した感じがなくなります。

個人的推測なのですが、これは「逆ノイズキャンセリング」に近いことをしているのでは?と思っています。

「Side側」の削られてしまった音を「Mid」から生成する≒「ノイズキャンセリング」の、逆の波形をぶつけて環境音を消すことと、逆のことをしている気がします。

「しゅわしゅわ」した部分に、「Mid」から生成した部分をぶつけて「しゅわしゅわ感」を打ち消しているのだと、勝手に推測してます。

Noise Reduction

  • サーという感じのノイズ音を削減します。
  • 「FFT」による周波数解析を実施し、周波数毎に鳴ろうとしている音か、ノイズかを判定し一定期間以上出ている音を残して残りは軽減する処理にて、ノイズを削減します。
  • 「NR Level」で強さを指定できます。

デフォルトで「1600」になっているので、レベルだけ変更しました。

2~3辺りが無難です。

Mid/Side Process

Side への音を付加する場合に、Mid から音を生成するときの動作モードを指定します。

  •  【Normal】Sideが圧縮により削られている場合に「4K以上」のMidからMidを、1サンプルずらした音をあわせて重ねてSideを生成します。
  • 【Wide】Sideが圧縮により削られている場合に「4K以上」のMidからMidを、1サンプルずらした音をあわせて重ねてSideを生成し、その他に「-7ms +19ms -14ms +56ms」ずらした音を重ねて音を生成します(値は音の伝わる速さを元に作った適当な値です)。
  • 【Cutoff】Sideが圧縮により削られている場合に「4Kを下限」としてSideを削ります。圧縮によりおかしくなってしまった、Side成分をカットすることで「HFA3」などの高域補間に、悪影響を及ぼさないようにする効果があります。

「ノーマル」はあまり効果を感じそうに無かったので除外。

「ワイド」は…適当な値らしいので、まぁ…はい。

結果「カットオフ」を選択しました。高域補間に悪影響を及ぼさないようにする効果があるそうなので、これも無難にカットオフを選択すると良いと、思います。

Option2

「HFC Auto Adjust」「Volume Level Adjust」のみ変更しています。

HFC Auto Adjust

「HFC Auto」で検出したカットオフ周波数を調整します。

  • 【None】HFC Autoで検出したカットオフ周波数をそのまま使用します。
  • 【HFC Auto】(-1kHz)
  • 【HFC Auto】(-2kHz)
  • 【HFC Auto】(-9kHz)「HFC Auto」で検出した周波数から選択した周波数分調整します。調整値が「10kHz以下」になる場合はHFCを10kHzとして利用します。

「Option 1」で「HFC」を自動で求めるように設定しているので【None】に設定しています。

Volume Level Adjust

  • 変換後のファイルの音量を調整します。
  • 「100,95,90,85,80,75,70,65,60,55,50,Auto」が指定できます。
  • 「HFC」に低い値を指定したときのHFA3による高域補間時にノイズが気になる場合は、この値を100%より低くすると改善する可能性があります。
  • 変換後に音量が大きくて音が割れてしまうファイルはAutoにすると音量を自動で下げます。

製作者さんは「MP3など」向けに「Auto」をおすすめしてますが「Auto」はやめた方が良いです。

最初から音量が大きくない、そこそこ良質な圧縮音源を使えば済む話なので。

私はバランスを取って「100」から1つ下の「95」に設定しています。

ABE Option

「ABE Option」は「デフォルトパラメーター04」をそのままにしてあります。

かなり拘る人向けの設定で、今回目的の圧縮音源にはあまり縁がない設定だと思います。

HFA2/3 オプション(高域補間オプション)

「HFA Level」と「HFA3 Analysis Limit Adjust」を変更しています。

HFA Level

  • 生成した音声の音の強さを指定できます。初期状態ではNoneで変更しません。
  • 「HFC」が低い場合など、変換後の音がきんきんする場合にHFA Levelを5(Low)にすると高域を弱めることができ、聞きやすくなります。
  • AutoにするとHFCのカットオフ周波数ごとにHFA Levelを自動で調整します。HFCが15kHzより低い場合はAutoにするのがおすすめです。
  • Autoにすると付加する高域は低めの音量になります。物足りない場合はAuto以外でLevelを少しずつ下げてためしてみてください。

私は「HFA Level 3」にしています。上記した通り、高域部分が「キンキン」したり「ノイズ」っぽくなる原因は「HFA Level」ではなく、アップサンプリング後にNR処理をしていないことが原因ですが「HFCが低い場合など」は「HFA Level」が原因になる場合があります。

要は「HFCが低い場合の音源だとこっちも原因になるよ」ってことなので「強すぎず」「弱すぎない」「HFA Level 3」に設定しています。

HFA3 Analysis Limit Adjust

  • このオプションはHFA Versionが0.8.xの時に使用できます。
  • 「HFA3」の解析時に参照するデータの上限は通常HFCまでとしていますが、これをHFA3 ALAで指定した分までとします。
  • マイナス4からプラス4まで指定できます。マイナスにすると精度が向上し、プラスにすると鈍くすることができます。
  • 例えばHFCを15000にして、HFA3 ALAを-4にすると、HFA3の解析は11000までを参照します。

「HFC Auto」に設定しているので、解析時に自動で求めたHFCから-1するようにしています。

例えば、解析時に自動で求めたHFCが13000であれば12000、15000なら14000と変動します。

この項目は…ごめんなさい、深く考えていません。

「マイナスにすると精度が向上し」と書いてあるので「自動解析でも精度上がるのでは…?」程度の考えです。

ここは、変更しなくても構いません。

Option

最後に出力時の設定をします。

「Resource Option」の項目を変更。

Thread(Max)

スレッド(Max)はその名の通り「1つの音声Chにつき、変換中に使用するスレッド数を指定する」項目です。

PCのスペックに合わせて変更して下さい。

私のPCはCPUに、8C16Tの「Ryzen7 3700X」を使用していますが「CPU Priority」を「高」にしているので「12スレッド」に絞っています。

「CPU Priority」「 高」で16スレッドMax割り当てると、負荷が高すぎて何も出来なくなります。

CPU Priority

変換中の「CPU占有率を指定」する項目です。「Low (IDLE)」「Normal」または「High」から指定出来ます。

「変換中に同じPCで他の作業をする場合はLow(IDLE)にしてください」と製作者さんは仰ってますが、その通りです。

「Upconv」は下手なベンチマークソフト顔負けで負荷が掛かります。

オーバーサンプリングを2倍以上にして、スレッドを最大まで割当し「CPU Priority」を高に設定、同時出力数を4にしたらPCが落ちます。

が、「High」でないと変換が遅いので「High」にしています。

File IO

 変換で使用するバッファの個数を指定する項目です。「バッファ1つ」辺り20MB使用するようです。

私は10に設定しています。

Upconv(Max)

これは、同時に幾つアップコンバートするかの設定です。

2を指定すると同時に2つ処理し、4であれば4つ処理します。

「CPU Priority」を「Normal」で4つ処理するよりも「High」2つ処理の方が速いです。

アップコンバートする

設定が長くなりました。ようやく本題です。

上記の設定で、アップコンバートしていきます。

サンプリングレートは「48000kHz」量子化Bit数は「24」。HFC(高域補完)は「Over Tone Ex」でノーマライズは無し、オーバーサンプリングは「2倍」に設定。

圧縮音源に「96000kHz」でアップコンバートしてもあまり体感できる違いはなく、無駄にファイルサイズが大きくなるだけなので、「48000kHz」に指定。

ノーマライズ処理については、音を正規化しても音は良くならないので処理はせず。そもそも「Volume Level Adjust」で音量の調整は出来るのでしません。

【ノーマライズ処理(音量正規化)についての参考記事】

アップサンプリング中は、かなりPCに負荷が掛かるので変換が完了するまでは、お茶でも飲んで待ちましょう。

アップコンバート後の音源

「Upconv」でアップコンバートした音源の音声波形を、数曲確認してみます。

音声波形の確認には「WaveSpectra」を使用しました。

【アップコンバート前】

一度、圧縮された音源なので「16,000kHz」からの高域部分が急降下しているのが分かります。

【アップコンバート後】

「16,000kHz」以降の高域部分もしっかり出ています。あと、音声波形が綺麗に右下がりになってます。

【アップコンバート前】

【アップコンバート後】

傾向はあまり変わらず、カットされていた「16000kHz以降」の高域部分が補間されて、綺麗な音声波形になります。

「Wave」ファイルのままだと、ファイルサイズがかなり大きく、1曲辺り100MBはザラなのでまた「AIMP」の変換機能を使って「FLAC」に変換します。

「FLAC」だと6分程度の曲で80MBまで、サイズを落とせます。

「FLAC」ならロスレスなので、音質も劣化しないので精神衛生的にも◎。

アップコンバート後の音質

肝心の音質について。

以下の環境で試し聴きしました。

ヘッドホン「AKG K712 Pro」(HPSC-X63へリケーブル済み)
ヘッドホンアンプ&DAC「FX-AUDIO DAC-X6J」(OPA627AUにオペアンプ換装済み)
DACチップシーラス・ロジック「CS4398」
アンプICTi社製「TPA6120A」
再生ソフト「AIMP」(WASAPI出力)

アップコンバート(アップサンプリング)で、圧縮音源の音質は良くなったのか。

私は「Upconv」でのアップコンバートはCDレベル程度の音源まで向上させることだと思っています。

激的に変化したとは言い難いですが「圧縮音源特有のしゅわしゅわ感」が減り「16000kHz」以降は急降下していた高域部分も補間されているので「しないよりは良い」と思います。

この手の「オーディオ系」だと「高域が繊細になったように思える」「比較的音場が広くなった」「アタック感が増した」とかの言い回しがされますが、具体的なことは何一つ言ってませんし、私も言えません。

アップコンバート(アップサンプリング)はあくまで、予想補間に過ぎません。

「あー…アップコンバート前より波形が滑らかになって高音の刺さりがなくなったかな…?」程度です。

アップサンプリングでのハイレゾ化などは「浪漫」「気分的な」モノを追い求めることです。

激的な変化を求めることには向きません。

なので「圧縮音源をCDレベル程度の音源まで向上させる」ぐらいの音質向上ならば「Upconv」でも可能だと思います。

あとがき

「Upconv」でのアップサンプリングは、かれこれもう2年くらい試行錯誤してます。

ver.7くらいから始めて、バージョンが変わる度に「wave」ファイルを用意してアップサンプリングしてました。

もともと「MP3をハイレゾにする方法はないのかな…?」って思ったのがきっかけですが、ver.8以降になってようやく一区切りついた気がします。

上記したように、MP3などの圧縮音源を「Upconv」でアップコンバートしてCDレベル程度の音源まで向上させる改善が限界という結論が私の中で出ました。

音質改善したいなら、ソフトウェアで音源を強化するのではなくハードウェア側(アンプやヘッドホン)を強化した方が早いです。