Home Download SampleMusic Products Technology Contact
  Technology
  ←戻る
1.TwinVQ エンコーダの基本構成
TwinVQエンコーダプログラムは図1のように、5つのモジュールで構成します。モジュール間では、様々な形式でデータがやり取りされます。データの流れのうち、緑色の線で書かれたものは、入出力デバイスの種類によってインタフェースが変わります。サンプルプログラムでは、入力側も出力側もファイル入出力を使ってい ます。
TwinVQエンコーダの基本構成
図1:TwinVQ エンコーダプログラムの構成
 
2.エンコーダ関数の呼出し手順
エンコーダを動作させる手順の概要は以下のとおりです。
{
    <初期化>
    while( <フレームごとのオーディオデータ読み込み> ){
        <エンコード処理>
        <ビットストリーム書き込み>
    }
    <終了処理>
}
 
3.エンコーダ DLL 利用のサンプルプログラム
DOS プロンプトから実行します。
	TestEnc [オプション] <入力オーディオファイル名> <出力ビットストリームファイル名>
で実行できます。オプションの内容とデフォルト値は以下の通 りです。サポートされているパラメータの組み合わせは以下の通りです。
セットアップパラメータ 指定オプション名 デフォルト 備考
サンプリング周波数モード -f <#> 44
全チャネルトータルの
ビットレート
-b <#> 96
チャネルモード -c <#> 1 (ステレオ) モノラル: 0
N_CAN -n <#> 16 1, 2, 4, 8, 16, 32 のいずれか
値が大きいほど高音質
値が小さいほど高速
ファイルタイプ -t <string> wav ファイルタイプを指定、wavならWAV ファイル、rawならヘッダなしファイル
タイトル -T <string> ""
コメント -C <string> ""
アーティスト -A <string> ""
著作権情報 -R <string> ""
ヘッダ情報の格納ディレクトリ -h <string> "header_info" 拡張ヘッダ情報のパラメータファイルを置くディレクトリ
サポートしている入力オーディオファイルの形式は、*.wav 形式又はヘッダなし16bit PCMです。ヘッダなし16bit PCMファイルについて、1サンプルは2Byteデータで格納されています。ステレオの場合は、L, R, L, R の順でサンプルが並んでいます。
 
4.主な関数のマニュアル
エンコーダDLL関数は、次の3つのカテゴリーに分けられます。
  1. 初期化/終了処理用関数
  2. エンコード処理用関数
  3. 問い合わせ関数
エンコードを実行するには、最初に1回初期化を行ってから、フレームごとにエンコード処理を行います。終了処理はエンコードを終了、または符号化条件を変えるために再度初期化を行う時に行います。問い合わせ関数は、TwinVQエンコーダの内部状態を問い合わせるための関数です。
使用できるエンコーダDLL関数は以下の表のとおりです。

表1:使用できるエンコーダDLL関数
カテゴリ 関数名 必須 概要
初期化/終了処理用関数 TvqEncInitialize() TwinVQ エンコーダモジュールを初期化する
TvqEncTerminate() TwinVQ エンコーダモジュールの終了処理をする
TvqEncGetVectorInfo() VQ ビット情報を初期化する。ビットストリーム書き出しモジュールのサブプログラム
TvqEncResetFrameCounter() フレームカウンタをリセットする
エンコード処理用関数 TvqEncodeFrame() フレームごとにエンコード処理をする
TvqEncUpdateVectorInfo() VQ ビット情報を更新する。ビットストリーム書き出しモジュールのサブプログラム
TvqEncSetFrameCounter() フレームカウンタを任意の値にセットする
問い合わせ関数 TvqEncCheckVersion() バージョン ID 番号
TvqGetVersionID() バージョン ID 文字列
TvqEncGetSetupInfo() セットアップ情報
TvqEncGetConfInfo() TwinVQ モジュールの設定パラメータ
TvqEncGetFrameSize() フレームサイズ
TvqEncGetNumChannels() チャネル数
TvqEncGetBitRate() ビットレート
TvqEncGetSamplingRate() サンプリング周波数
TvqEncGetNumFixedBitsPerFrame() 1フレームあたりのビット数
TvqEncGetNumPreCand() VQ 予備選択数
TvqEncGetNumFrames() フレームカウンタの値
TvqEncGetModuleVersion( ) エンコーダモジュールのバージョン

表2:使用できるビットストリーム書き込みモジュールの関数
カテゴリ 関数名 必須 概要
初期化用 TvqPutBsHeaderInfo() ビットストリームヘッダを書き込み
TvqinitBsWriter() ビットストリーム書き込みモジュールの初期化
機能関数 TvqWriteBsFrame() ビットストリームのフレーム単位の書き込み

このホームページに記載されている製品名などは各社の登録商標または商標です。
Copyright(C) NTT Communication Science Laboratories.