メインメニューを開く

差分

.vocファイル

4,026 バイト追加, 2018年2月20日 (火) 06:01
ページの作成:「.vocファイルとは、Creative Technologyの開発した音声データ向けのファイルフォーマットである。 1980年代末から1990年代初頭のSound...」
.vocファイルとは、Creative Technologyの開発した音声データ向けのファイルフォーマットである。
1980年代末から1990年代初頭のSound Blasterにダミ声を喋らせるために考えられたものである。

当初は符号なしの8ビットPCMとADPCMデータに限定されていたが、後に16ビットのA-law圧縮とμ-law圧縮が扱えるように拡張された。

当然ながら最近のMP3(.mp3ファイル)などと比べると絶望的に音質は悪いし圧縮率もよくない。
昔の洋ゲーがよく採用していた。

== データ構造 ==
基本的にすべて整数値でリトルエンディアンとなっている。
=== メインヘッダー ===
* バイト0〜18 - 識別子文字列「Creative Voice File」
* バイト19 - 0x1A(EOF)。 間違ってvocファイルを印刷してもここで止まる親切設計
* バイト20-21 - このヘッダー部分の合計サイズ(通常0x001A)
* バイト22〜23 - バージョン番号(major << 8)| minor
*: メジャーは通常0x01
*: マイナーは通常0x0Aまたは0x14
* バイト24-25 - チェックサム( = 〜version + 0x1234)

=== データブロック ===
すべてのデータブロックは、プロックタイプとブロックサイズで始まる。

* バイト0 - ブロックタイプ
* バイト1〜3 - ブロックサイズ(これ以降続く可変長のデータ部分のサイズ)

==== ブロックタイプ ====
; ブロックタイプ 0x00:ターミネータ
ファイルの終わりを示す。必須ではない。

; ブロックタイプ 0x01:サウンドデータ(新規)
* バイト0 分周数
* バイト1 コーデックID
* バイト2..n オーディオデータ

サンプルレートは次のように定義される。
1000000 /(256 - frequency_divisor)

; ブロックタイプ0x02:サウンドデータ(継続)
* バイト2..n オーディオデータ

このブロックは前の「サウンドデータ(新規)」と同じコーデックパラメータを使用する。
2バイト節約。

; ブロックタイプ0x03:無音
* バイト0-1 - 無音の長さ-1(単位はサンプル)
* バイト2の周波数除数

サンプルレートは次のように定義される。
1000000 /(256 - frequency_divisor)

; ブロックタイプ0x04:マーカー
* バイト0-1 マーク値

これはアニメーションとサウンドを同期するために使用するためのもの。

; ブロックタイプ0x05:テキスト
* バイト0..nゼロ終了文字列

ここに独自のスクリプトを埋め込んであるシステムもよくある。

; ブロックタイプ0x06:繰り返し開始
* バイト0-1リピートカウント - 1
このブロック以降の次のリピート終了ブロックまでのサウンドデータは、カウント+ 1回繰り返されます。 count == 0xFFFFのとき、これは無限の繰り返しを意味します。

; ブロックタイプ0x07:繰り返し終了
リピートセクションを終了する空のブロック。

; ブロックタイプ0x08:追加情報
* バイト0〜1の周波数除数
* バイト2のコーデックID
* バイト3チャネル番号 - 1

サンプルレートは次のように定義される。
256000000 /(nb_channels *(65536 - frequency_divisor))

このブロックはサウンドブロックより前に出現する必要がある。
主にコーデックパラメータが記述されていることが多い。

; ブロックタイプ0x09:サウンドデータ(新しいフォーマット)
* バイト0-3 - サンプルレート
* バイト4 - 1サンプルあたりのバイト数
* バイト5 - チャネル番号
* バイト6-7 - codec_id
* バイト8-11 - 予約
* バイト12..n - オーディオデータ

このブロックタイプはおそらくバージョン1.20(0x0114)以上のファイルでのみ有効。

[[category: 拡張子]]
匿名利用者