Prévia do material em texto
13/08/2015 Soundfile formato Microsoft WAVE http://soundfile.sapp.org/doc/WaveFormat/ 1/4 Soundfile formato WAVE PCM O formato de arquivo WAVE é um subconjunto da especificação RIFF de Microsoft para o armazenamento de arquivos multimídia. Um arquivo RIFF começa com um cabeçalho do arquivo seguido por uma seqüência de blocos de dados. Um arquivo WAVE é muitas vezes apenas um arquivo RIFF com um único pedaço "ONDA", que consiste em dois subblocos um pedaço "fmt" especificando o formato de dados e um pedaço de "dados" que contém os dados reais da amostra. Chame esse formulário a "forma canônica". Quem sabe como ele realmente todos os trabalhos. Uma descrição quase completa que parece totalmente inútil, a menos que você quer passar uma semana olhando sobre ele pode ser encontrada no MSDN (principalmente descreve a formatos de dados proprietários registrados nãoPCM, ou). I usar o formato WAVE padrão criada pelo Sox programa: Offset Tamanho Nome Descrição O formato WAVE canônica começa com o cabeçalho RIFF: 0 4 ChunkID contém as letras "RIFF" na forma ASCII (0x52494646 forma big‐endian). 13/08/2015 Soundfile formato Microsoft WAVE http://soundfile.sapp.org/doc/WaveFormat/ 2/4 4 4 chunksize 36 + SubChunk2Size, ou mais precisamente: 4 + (8 + SubChunk1Size) + ( 8 + SubChunk2Size) Este é o tamanho do resto do pedaço seguinte este número. Este é o tamanho do arquivo inteiro em bytes menos 8 bytes para os dois campos não incluídos nessa contagem: . ChunkID e chunksize 8 4 Format Contém as letras "Wave" (0x57415645 big‐endian formulário). O formato "WAVE" consiste de dois subchunks: "fmt" e "dados": O "fmt" subchunk descreve o formato dos dados de som: 12 4 Subchunk1ID contém as letras "fmt" (0x666d7420 forma big‐endian). 16 4 Subchunk1Size 16 para PCM. Este é o tamanho do resto do Subchunk que segue este número. 20 2 AudioFormat PCM = 1 (ou seja, linear quantização) Valores diferente de 1 indicam alguma forma de compressão. 22 2 NumChannels Mono = 1, Stereo = 2, etc. 24 4 SampleRate 8000, 44100, etc. 28 4 ByteRate == SampleRate * * NumChannels BitsPerSample / 8 32 2 BlockAlign == NumChannels * BitsPerSample / 8 O número de bytes para uma amostra, incluindo todos os canais. Gostaria de saber o que acontece quando este número não é um número inteiro? 34 2 BitsPerSample 8 bits = 8, 16 bits = 16, etc. 2 ExtraParamSize se PCM, então não existe X ExtraParams espaço para parâmetros extras Os "dados" contém subchunk o tamanho dos dados eo som real: 36 4 Subchunk2ID Contém as letras "de dados" . (0x64617461 forma big‐endian) 40 4 Subchunk2Size == NumSamples * * NumChannels BitsPerSample / 8 Este é o número de bytes de dados. Você também pode pensar nisso como o tamanho da leitura do subchunk seguindo este número. 44 * Dados Os dados de som reais. Como um exemplo, aqui estão a abertura de 72 bytes de um arquivo WAVE com bytes mostrados como números hexadecimais: 52 49 46 46 24 08 00 00 57 41 56 45 66 74 20 10 6d 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 24 17 1e F3 3c 3c 13 14 16 18 f9 f9 34 e7 23 a6 3c f2 f2 24 11 ce 1a 0d Aqui é a interpretação desses bytes como um soundfile WAVE: 13/08/2015 Soundfile formato Microsoft WAVE http://soundfile.sapp.org/doc/WaveFormat/ 3/4 Notas: A ordenação de bytes padrão assumido para arquivos de dados WAVE é littleendian. Arquivos gravados usando o esquema de bigendian byte ordenação têm a RIFX identificador em vez de RIFF. Os dados da amostra deve terminar em um limite mesmo byte. O que quer que isso signifique. Amostras de 8 bits são armazenados como bytes sem sinal, variando de 0 a 255. As amostras de 16 bits são armazenados como inteiros com sinal 2 'Scomplemento, que variam de 32768 a 32767. Pode haver subchunks adicionais em um fluxo de dados da onda. Se assim for, cada um terá um char [4] SubChunkID, e SubChunkSize longo não assinado, e quantidade SubChunkSize de dados. RIFF significa Resource Interchange File Format . Discussão geral de arquivos RIFF: Aplicações multimídia requerem o armazenamento e gerenciamento de uma ampla variedade de dados, incluindo bitmaps, os dados de áudio, dados de vídeo e informações de controle de dispositivo periférico. RIFF proporciona uma maneira de armazenar todos estes tipos variados de dados. O tipo de dados de um arquivo RIFF contém é indicado pela extensão do arquivo. Exemplos de dados que podem ser armazenados em ficheiros RIFF são: Áudio / dados intercalados visuais (.avi) Dados de forma de onda (.wav) Dados de bitmap (.RDI) Informações MIDI (.RMI) Paleta de cores (.PAL) 13/08/2015 Soundfile formato Microsoft WAVE http://soundfile.sapp.org/doc/WaveFormat/ 4/4 Filme Multimedia (.RMN) Cursor animado (.ANI) Um pacote de outros arquivos RIFF (.bnd) NOTA: Neste ponto, os arquivos AVI são o único tipo de arquivos RIFF que foram totalmente implementadas usando a especificação RIFF atual. Embora os arquivos WAV têm sido implementados, esses arquivos são muito simples, e seus desenvolvedores geralmente usam uma especificação mais velho na construção deles. Para mais informações consulte http://www.ora.com/centers/gff/formats/micriff/index.htm Referências: 1. http://www.ora.com/centers/gff/formats/micriff/index.htm (bom). 2. http://premium.microsoft.com/msdn/library/tools/dnmult/d1/newwave.htm 3. http://www.lightlink.com/tjweber/StripWav/WAVE.html craig@ccrma.stanford.edu Texto original Sugira uma tradução melhor