素材波形に適用する圧縮コーデックを決める

コーデックを決める目安

それぞれのマテリアルに対し、再生時に求めている演出内容や方法によって適切なコーデックは変わります。
まず、一例としてランダムピッチなどのピッチバリエーションを題材に、HCA コーデックと HCA-MX コーデックを検討してみましょう。

HCAを使った場合のメリット

HCA コーデックを使用したマテリアルを参照するウェーブフォームリージョンにおいて、ピッチパラメーターへランダム設定が可能です。
このため、データ作成は1つで済むことになり、他のパラメーター変更などについても対象は1つとなります。

同時発音数による処理負荷が問題となっていない状況では、HCA コーデックが最適です。
HCA コーデックにすることで次のような柔軟な設定が行えます。

  • マテリアル単位でサンプリングレートの調整が可能
  • ウェーブフォームリージョン単位で バスエフェクトなどリアルタイムのエフェクト設定が可能

HCAを使った場合のデメリット

同時再生負荷が HCA-MX に比べて高くなります。

HCA-MXを使った場合のメリット

ピッチバリエーションを目的とした場合、HCA-MX コーデックのメリットはありません。 もしそのデータが同時の大量再生を目的としたものだった場合、実行時の発声負荷は HCA コーデックよりも小さくなりますが、制約に基づくデメリットの方が大きいと思われます。

HCA-MXを使った場合のデメリット

HCA-MX コーデックを使用したマテリアルを参照するウェーブフォームリージョンのピッチバリエーションの作成は、パラメーター設定では行えません。
HCA-MX コーデックは再生時のピッチ変更が行えないコーデックですので、ピッチバリエーションを作成するためにはバリエーション分のマテリアルを用意する必要があります。
このため、バリエーション分のマテリアル準備や、登録など、数に比例して作業やデータ量が増えることになります。
また、変更不可や使用制限のある項目があるため、用途に適しているかを吟味しなければなりません。

コーデックの詳細

ADX が動作する全てのプラットフォーム上でADX、HCA、HCA-MXの独自各種圧縮コーデックが素材波形に対し適用可能です。 使用する圧縮コーデックは、音質、圧縮後のサイズ、処理負荷、使用可能な機能などを考慮して決めます。

負荷の違いの具体例

PC (Windows 10 Pro (64bit)、Intel Core i7-9700K (3.6GHz))にてモノラル 48kHz を再生した場合の CPU 負荷は以下になります。

コーデック(例)デコード本数 CPU負荷
ADX 1本 0.39%
ADX 16本 0.86%
ADX 64本 2.06%
HCA 1本 0.46%
HCA 16本 1.46%
HCA 64本 4.52%
HCA-MX 1本 0.59%
HCA-MX 16本 1.13%
HCA-MX 64本 2.69%

ADX

ADXコーデックは1/4圧縮と圧縮率が低いですが、デコードの負荷が軽いのが特徴です。そのため低スペックのマシンでも動作が可能です。品質は ADPCM 相当となります。
可聴域ぎりぎりの高いキラキラした音などは劣化が目立ちやすいです。

craftv2_tips_program_decide_codec00.png

HCA

HCA コーデックは圧縮率が 1/6 ~ 1/12 と高圧縮で音質も高品質ですが、デコード負荷は ADX コーデックと比較して高めになります。
HCA コーデックは CRI ADX での標準コーデックです。
ループやシーク再生、楽曲、効果音や環境音などさまざまなサウンドに使用できます。
基本的に元の音の帯域が全体に広い場合、高域から音が変化し始めます。
元の音の帯域が狭い場合は劣化が目立ちません
圧縮時の品質が指定でき、圧縮率が高い設定ほど全体の処理量も減る傾向があります。

craftv2_tips_program_decide_codec01.png

HCA-MX

HCA-MXコーデックは圧縮コーデックとしてはHCAと同じですが、再生処理を工夫し、まずミキシングを行ってからデコードすることで、デコード負荷を最小限に抑えることを実現しています。
このため低スペックのマシンでも高音質な圧縮波形を複数同時に再生することが可能です。
デコード前にミキシングをする都合上、素材波形のサンプリング周波数の統一、各音ごとのピッチ変化や、センドエフェクト、厳密なループやシームレス連結再生などの機能を使用することはできません。
制限が多いですが、いわゆる「ポン出し」素材の再生には向いています。
また、リアルタイムのエフェクトを伴わない効果音、ボイス、音楽などにも向いています。
なお、大量に再生しない場合(数音の場合)は、HCAの方が負荷が軽い場合もあります。

craftv2_tips_program_decide_codec02.png

ボイスプールについて

ボイスプールはコーデック単位で用意されます。
HCA,ADXについてはStandardボイスプールで扱えるため、初期設定はとても簡単に済みます。
機種固有コーデックやHCA-MX、Raw波形再生などは別途ボイスプールを用意する必要があります。
ボイスプールのコンフィグなどで、ボイス数や再生レートなどの設定が行えます。
ピッチが変化するサウンドの場合、再生時のピッチによるリサンプリングが許容できる再生レートが指定されている必要があります。
HCA-MXでは再生レートが固定になります。
設定範囲を超えるようなサウンドの再生時にエラーやワーニングが出る場合があります。