sábado, 10 de maio de 2008

CDs, compressão e compactação

A confusão com os MP3s e os CDs é enorme.
Recentemente, em uma discussão amigável em uma lista eu tive que parar pra perguntar:
"Vcs já pararam pra se perguntar pq um CD com 700Mb, não consegue ter mais do que 80m de música?"
Vamos ver se eu consigo explicar o complexo de uma forma simples.
O CD de áudio segue o padrão Red Book (tem lá na Wikipedia) que é o o seguinte "O Red Book especifica os parâmetros e propriedades físicas do CD, a parametrização óptica, sistema de modulação (modulação Eight-to-Fourteen), correção de erros (sistema CIRC), canais de subcódigos e gráficos. Entre as especificações, encontram-se: codificação do áudio digital: 2 canais de 16-bit PCM sampleados a 44100 Hz; a reposta de freqüência: de 20 Hz a 20 kHz; a taxa de bits: 44100 samples × 16-bit/sample × 2 canais = 1411,2 kbit/s (mais de 10 MB por minuto);
valores de sampleamento: de -32768 a +32767.

No disco, os dados são armazenados em setores de 2352 bytes cada, lidos a uma taxa de 75 setores/s. Sobre isso são adicionados dados referentes a EFM, CIRC e assim por diante, mas estes dados geralmente não são expostos pelo dispositivo responsável pela leitura do disco. Por comparação, a taxa de bits de "1x" é definida como 2048 bytes/setor × 75 setores/s = exatos 150 KiB/s = cerca de 8,8 MiB/min."
O DVD áudio, que não segue esse padrão, usa taxa de 48Kbits. Mas vejam só (continuo depois desse texto):
Red Book
White Book (a derivative of Red Book) is a constant-rate linear format. Therefore the total storage time is fixed. DVD on the other hand is a non-linear medium permitting seamless playback of jumps. It acheives this via a track buffer which maps DVD's constant 11.08 mbit/sec user rate to a variable rate stream.
Red Book frame breakdown of user bits:
Each frame of Red Book audio data consists of 588 channel bits. Only 192 bits are used to store the audio stream
Field User bytes Comments
subcode 1 8 bits of subcode channel data
audio data 24 6 samples * 2 channels * 2 bytes/sample
FEC 8 RS rate of 3/4
TOTAL 33 bytes

frame channel bits:
Convert 33 user bytes into 8/14 code:
1 symbol/byte * 33 bytes * 17 channel bits/symbol = 561 bits Add 24 bits for the sync word + 3 merge bits = 588 bits

Bit rate calculation:
98 frames/sector * 75 sectors/sec * 588 channel bits/frame = 4,321,800 bits/sec
Channel rate.............................4,321,800 bits/sec
after channel demod................1,940,400
subcode rate..............................58,800
error correction rate (FEC).....470,400
user rate after FEC removal...1,470,000

O que eu marquei em vermelho é o que vc tem dentro do CD.
Por questões de segurança, várias cópias da mesma faixa estão em diferentes pastas demtro do CD. Pra ser mais exato, 6 cópias. A música é copiada pra 6 pastas, com bitrates diferentes e ainda por cima em stereo E mono. Quando chegou o SACD, os caras modificaram isso e conseguiram colocar maiores taxas. Tais garantias só eram necessárias na pré história dos players. Eu tinha no Win98 uma dll que abria o CD do jeito que ele era, ou seja, os arquivos CDA que todo mundo enxerga, mas que são só referências e duas pastas: Stereo e Mono. Dentro de cada uma, seis pastas com as respectivas cópias de cada música em diferentes taxas de amostragem. Isso é um desperdício de espaço. No final tudo em WAV, que segue o padrão do audio CD ou vice versa.

Quanto aos padrões de compressão.
O formato ZIP (que é compactação), cria uma tabela (interna ao formato) onde ele exclui repetições. Se for um texto, ele pega o primeiro A que vc escreveu e quando aparecer outro ele simplesmente coloca uma marca de "outro". Essa marca, ou referência é menor do que o próprio caracter. Isso funciona parcialmente no áudio (dá pra ZIPar qualquer arquivo de áudio). A "revolução" do MP3 é que era um arquivo compactado que funcionava (eu tinha algo assim pro cliper e tinha o nome de Diet). Vc compacta mas consegue ouvir, o que é impossível com o ZIP ou RAR.
O MP3 faz algo semelhante ao que o ZIP faz, mas como ele tem que deixar o "A" no lugar, ele tira o que os técnicos consideram algumas "gordurinhas". Nessas "gordurinhas" estão todos os detalhes e na maioria dos casos os imperceptíveis harmônicos que fazem a grande diferente. Essa história do harmônico dá um tratado à parte. Como o MP3 é um arquivo muito menor do que o WAV, foi aceito em larga escala, mas... diferente do ZIP, quando vc transforma um MP3 em WAV, ele não recupera o que se perdeu. Pq há perda de qualidade no MP3 e aí é que entra o FLAC. Loss less não é sem perda é com MENOS perda. Um arquivo de FLAC pra WAV apresenta maior semelhança com o arquivo original do que o MP3 ou o OGG.

A maioria dos conversores diz ser o melhor mas é uma tremenda mentira, pq só há um conversor e ele é licensiando pela FraunHofer (se não me engano) os padrões semelhantes não são O padrão. Por definição, lei e contrato, MP3 segue o padrão deles. Quer melhorar? Invente um novo padrão e chame de qualquer coisa: MP4 (por exemplo).

Por falar em MP4, peguemos o próprio. O WAV do video (no mundo PC pelo menos) é o AVI. Só que em cima do AVI colocaram o DIVx que é um AVI compactado (seria o FLAC pra video). Bem, se vc pega um filme do DVD (que não passa de um arquivo MPEG2) e compacta pra outro formato na mesma resolução, o que acontece? Ficam aqueles quadradinhos (pixels) pentelhando a gente. Como é visual e todo mundo mais ou menos enxerga no mesmo padrão, é fácil notar (mas tem gente que nota e não repara) no áudio é a mesma coisa, mas muito mais gente não repara. Pergunte a quem ouve clássico se o cara gosta de ouvir MP3 no equipamento dele ou se ele ouve MP3 no equipamento HighEnd dele? Nem pensar. Seria como assistir um video 640x480 na tela do cinema. Quem está com TV de LCD ou Plasma, ou mesmo os novos monitores, já reparou que certos arquivos de filmes ficam uma "M" na tela cheia.

O que a indústria quer é que ouçamos de forma errada, porque de forma tb errada, a indústria acha que é isso que queremos ouvir. Com os novos formatos, existem novas possibilidades, mas vejam só: isso tudo era em um tempo em que tínhamos pouco espaço disponível pra armazenar qualquer coisa. Hoje, temos facilmente 1/2 Terabyte. Pra que comprimir?

Outro exemplo: todo mundo adora o formato JPG pra retrato. Pergunte a qualquer fotógrafo com um mínimo de conhecimento o que ele acha. Ele só quer saber de RAW, que seria o WAV dele. Eles conseguem provar isso com facilidade colocando uma foto JPG e um RAW da mesma foto. Todos veêm o resultado, mas ninguém OUVE, ou consegue ouvir duas músicas simultânemente.

Existe uma regra que é simples: COMPRESSÃO = ALGUMA PERDA. Seja no que for. Só há compressão sem perda quando vc usa um compactador (aí nem seria compressão e sim COMPACTAÇÃO) que "desmonta" o arquivo, como ZIP e RAR. Não sei pq isso me lembrou Joranda nas Estrelas e o teletransporte. É como se vc quisesse conversar enquanto suas moléculas estão desmontadas.

Espero que possa ser útil a alguém.