📄 adpcm_算法.txt
字号:
this format is created and read by yamaha chip included in the gold sound standard (gss) that is implemented in a number of manufacturers boards. the algorithm and conversion routines are published in the source code provided in yadpcm.c with this technote.
sonarc? compression
added 10/21/92
author: sound compression
sound compression has developed a new compression algorithm which, unlike adpcm, is capable of lossless compression of digitized audio files to a degree far greater (50-60%) than that achievable with the other compressors, pkzip and lharc. "lossy" compression is possible with even higher ratios. information about the algorithm is available form the address below.
fact chunk
this chunk is required for all wave formats other than wave_format_pcm. it stores file dependent information about the contents of the wave data. it currently specifies the time length of the data in samples.
wave format header
typedef struct sonarcwaveformat_tag {
waveformatex wfx;
word wcomptype;
} sonarcwaveformat
# define wave_format_sonarc (0x0021)
wformattag this must be set to wave_format_sonarc.
nchannels number of channels in the wave, 1 for mono, 2 for stereo.
nsamplespersec frequency of the sample rate of the wave file. this should be 11025, 22050, or 44100 hz. other sample rates are not allowed.
navgbytespersec average data rate.
playback software can estimate the buffer size using the value.
nblockalign the valid values have not been defined.
playback software needs to process a multiple of bytes of data at a time, so that the value of can be used for buffer alignment.
wbitspersample this is the number of bits per sample of sonarc.
cbsize the size in bytes of the extra information in the extended wave 'fmt' header. this should be 2.
wcomptype this value is not yet defined..
"sonarc" is a trademark of speech compression.
to get information on this format please contact:
speech compression
1682 langley ave.
irvine, ca 92714
telephone: 714-660-7727 fax: 714-660-7155
creative labs adpcm
added 10/01/92
author: creative labs
createive has defined a new adpcm compression scheme, and this new scheme will be implemented on their h/w and will be able to support compression and decompression real-time. they do not provide a description of this algorithm. information about the algorithm is available form the address below.
fact chunk
this chunk is required for all wave formats other than wave_format_pcm. it stores file dependent information about the contents of the wave data. it currently specifies the time length of the data in samples.
wave format header
typedef struct creative_adpcmwaveformat_tag {
waveformatex wfx;
word wrevision;
} creativeadpcmwaveformat
# define wave_format_creative_adpcm (0x0200)
wformattag this must be set to wave_format_creative_adpcm.
nchannels number of channels in the wave, 1 for mono, 2 for stereo.
nsamplespersec frequency of the sample rate of the wave file. this should be 8000, 11025, 22050, or 44100 hz. other sample rates are not allowed.
navgbytespersec average data rate..
playback software can estimate the buffer size using the value.
nblockalign this is dependent upon the number of bits per sample.
wbitspersample nchannels nblockalign
4 1 1
4 2 1
playback software needs to process a multiple of bytes of data at a time, so that the value of can be used for buffer alignment.
wbitspersample this is the number of bits per sample of cadpcm.
cbsize the size in bytes of the extra information in the extended wave 'fmt' header. this should be 2.
wrevision revision of algorithm. this should be one for the current definition.
to get information on this format please contact:
creative developer support
1901, mccarthy blvd, milpitas, ca 95035.
tel : 408-428 6644 fax : 408-428 6655
dsp group wave type
added: 01/04/93
author: paul beard, dsp group
fact chunk
this chunk is required for all wave formats other than wave_format_pcm. it stores file dependent information about the contents of the wave data. it currently specifies the length of the data in samples.
wave format header
# define wave_format_dspgroup_truespeech (0x0022)
wformattag this must be set to wave_format_dspgroup_truespeech.
nchannels number of channels in the wave, 1 for mono.
nsamplespersec frequency of the sample rate of the wave file. this should be 8000
navgbytespersec average data rate.. (1067)
playback software can estimate the buffer size using the value.
nblockalign this is the block alignment of the data in bytes. (32).
playback software needs to process a multiple of bytes of data at a time, so that the value of can be used for buffer alignment.
wbitspersample this is the number of bits per sample of truespeech. not used; set to zero.
cbextrasize the size in bytes of the extra information in the extended wave 'fmt' header. this should be 32.
wrevision revision no (1,...)
nsamplesperblock number of samples per block. 240
= / * )
the definition of the data contained in the truespeech format is considered proprietary information of dsp group inc. they can be contacted at:
dsp group inc.,
4050 moorpark ave.,
san jose ca. 95117
(408) 985 0722
truespeech is a format used in a compression technique developed by dsp group inc. truespeech format provides high quality telephony bandwidth voice vocoding with a rate of 1067 bytes per second. this format uses blocks of 32 bytes long.
echo speech wave type
added: 01/21/93
author: echo speech corporation
fact chunk
this chunk is required for all wave formats other than wave_format_pcm. it stores file dependent information about the contents of the wave data. it currently specifies the length of the data in samples.
wave format header
# define wave_format_echosc1 (0x0023)
wformattag this must be set to wave_format_echosc1.
nchannels number of channels in the wave, always 1 for mono.
nsamplespersec frequency of the sample rate of the wave file. this should be 11025
navgbytespersec average data rate.. (450)
playback software can estimate the buffer size using the value.
nblockalign this is the block alignment of the data in bytes. (6).
playback software needs to process a multiple of bytes of data at a time, so that the value of can be used for buffer alignment.
wbitspersample this is the number of bits per sample. not used; set to zero.
cbsize the size in bytes of the extra information in the extended wave 'fmt' header. this should be 0.
the definition of the data contained in the echo sc-1 format is considered proprietary information of echo speech corporation. they can be contacted at:
echo speech corporation
6460 via real
carpinteria, ca. 93013
805 684-4593
echo sc-1 is a format used in a compression technique developed by echo speech corporation. echo sc-1 format provides excellent speech quality with an average data rate of exactly 450 bytes/second. this format uses blocks 6 bytes long.
echo is a registered trademark of echo speech corporation.
audiofile wave type af36
added: april 29, 1993
author: audiofile
fact chunk
this chunk is required for all wave formats other than wave_format_pcm. it stores file dependent information about the contents of the wave data. it currently specifies the length of the data in samples.
wave format header
# define wave_format_audiofile_af36 (0x0024)
wformattag this must be set to wave_format_audiofile_af36
nchannels number of channels in the wave.(1 for mono)
nsamplespersec frequency the of the sample rate of wave file.
navgbytespersec average data rate.
playback software can estimate the buffer size using the <navgbytespersec> value.
nblockalign block alignment of the data.
playback software needs to process a multiple of <nblockalign> bytes of data at a time, so that the value of <nblockalign> can be used for buffer alignment.
wbitspersample this is the number of bits per sample of data.
cbsize the size in bytes of the extra information in the extended wave 'fmt' header.
audio file af36 format provides very high compression for speech -based waveform audio. (relative to 11 khz, 16-bit pcm, a compression ratio of 36-to-1 is achieved with af36.
for more information on af36 and other audiofile host-based and dsp based compression software contact: :
audiofile, inc.
four militia drive
lexington, ma, 02173
(617) 861-2996
comment
trademark info.
audio processing technology wave type
added: 06/22/93
author: calypso software limited
fact chunk
this chunk is required for all wave formats other than wave_format_pcm. it stores file dependent information about the contents of the wave data. it currently specifies the length of the data in samples.
wave format header
# define wave_format_aptx (0x0025)
wformattag this must be set to wave_format_aptx.
nchannels number of channels in the wave, always 1 for mono, 2 for stereo.
nsamplespersec frequency of the sample rate of the wave file. (8000, 11025, 22050, 44100, 48000)
navgbytespersec average data rate..= nchannels * nsamplespersec/2. (16bit audio)
playback software can estimate the buffer size using the value.
nblockalign should be set to 2 (bytes) for mono data or 4 (bytes) for stereo.
for mono data 4 sixteen bit samples will be compressed into 1 sixteen bit word
for stereo data 4 sizteen bit left channel samples will be compressed into the first 16bit word and 4 sixteen bit right channel samples will be cmpressed into the next 16 bit word.
playback software needs to process a multiple of bytes of data at a time, so that the value of can be used for buffer alignment.
wbitspersample this is the number of bits per sample. not used; set to four.
cbsize the size in bytes of the extra information in the extended wave 'fmt' header. this should be 0.(zero)
the definition of the data contained in the aptx format is considered proprietary information of audio processing technology limited. they can be contacted at:
audio processing technology limited
edgewater road
belfast, northern ireland, bt3 9qj
tel 44 232 371110
fax 44 232 371137
this format is proprietary audio format using 4:1 compression i.c. 16 bits of audio are compressed to 4 bits. it is only encoded/decoded by dedicated hardware from mm_apt
audiofile wave type af10
added: june 22, 1993
author: audiofile
fact chunk
this chunk is required for all wave formats other than wave_format_pcm. it stores file dependent information about the contents of the wave data. it currently specifies the length of the data in samples.
wave format header
# define wave_format_audiofile_af10 (0x0026)
wformattag this must be set to wave_format_audiofile_af10
nchannels number of channels in the wave.(1 for mono)
nsamplespersec frequency the of the sample rate of wave file.
navgbytespersec average data rate.
playback software can estimate the buffer size using the <navgbytespersec> value.
nblockalign block alignment of the data.
playback software needs to process a multiple of <nblockalign> bytes of data at a time, so that the value of <nblockalign> can be used for buffer alignment.
wbitspersample this is the number of bits per sample of data.
cbsize the size in bytes of the extra information in the extended wave 'fmt' header.
for more information on af36 and other audiofile host-based and dsp based compression software contact: :
audiofile, inc.
four militia drive
lexington, ma, 02173
(617) 861-2996
dolby labs ac-2 wave type
added: 06/24/93
author: dolby laboratories, inc.
fact chunk
this chunk is required for all wave formats other than wave_format_pcm. it stores file dependent information about the contents of the wave data. it currently specifies the length of the data in samples.
wave format header
define wave_format_dolby_ac2 (0x0030)
wformattag this must be set to wave_format_dolby_ac2
nchannels number of channels, 1 for mono, 2 for stereo
nsamplespersec three sample rates allowed: 48000, 44100, 32000 samples per second
navgbytespersec average data rate. ((nsamplespersec*nblockalign)/512
nblockalign the block alignment (in bytes) of the dat in . given in table
nsamplespersec nblockalign
48000 nchannels*168
44100 nchannels*184
32000 nchannels*190
wbitspersample approximately 3 bits per sample
cbextrasize 2 extra bytes of information in format header
nauxbitscode auxiliary bits code indicating number of aux. bits per block. the amount of audio data bits is reduced by this number in the decoder, such that the overall block size remains constant.
nauxbitscode number of aux bits in block
0 0
1 8
2 16
3 32
specific structure of the chunk is proprietary, and may be obtained from dolby laboratories. also contact dolby for methods of including chunks.
dolby laboratories
100 potrero avenue
san francisco, ca 94103-4813
tel 415-558-0200
/* dolby's ac-2 wave format structure definition */
typedef struct dolbyac2waveformat_tag {
waveformatex wfx;
word nauxbitscode;
} dolbyac2waveformat;
sierra adpcm
added 07/26/93
author: sierra semiconductor corp.
sierra semiconductor has developed a compression scheme similar to the standard ccitt adpcm. this scheme has been implemented in aria? -based sound boards and is capable of supporting compression and decompression in real-time. a description of the algorithm is not available at this time.
fact chunk
this chunk is required for all wave formats other than wave_format_pcm. it stores file dependent information about the contents of the wave data. it currently specifies the time length of the data in samples.
wave format header
typedef struct sierra_adpcmwaveformat_tag {
extwaveformat ewf;
word wrevision;
} sierraadpcmwaveformat;
# define wave_format_sierra_adpcm (0x0013)
wformattag this must be set to wave_format_sierra_adpcm.
nchannels number of channels in the wave, 1 for mono, 2 for stereo.
nsamplespersec frequency of the sample rate of the wave file. this should be 22050 hz. other sample rates are not currently allowed.
navgbytespersec average data rate.
playback software can estimate the buffer size using the value.
nblockalign this is dependent upon the number of bits per sample.
wbitspersample nchannels nblockalign
4 1 1
4 2 1
playback software needs to process a multiple of bytes of data at a time, so that the value of can be used for buffer alignment.
wbitspersample this is the number of bits per sample of sierra adpcm. currently, only
4 bits per sample is defined. other values are reserved.
cbextrasize the size in bytes of the extra information in the extended wave 'fmt' header. this should be 2.
wrevision revision of algorithm. this should be 0x0100 for the current definition.
videologic wave types
added: 07/13/93
author: videologic
fact chunck
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -