Primeiro:
Entenda a diferença entre um formato de codificação e um contêiner . http://en.wikipedia.org/wiki/Digital_container_format
Um formato de contêiner é um formato de dados que "encapsula" outros dados codificados. Freqüentemente contém "meta-informações" sobre os dados codificados ou possui uma maneira de armazenar vários fluxos separados de dados codificados, ou algo assim.
Uma codificação, produzida por um codec, é a "carne" real do fluxo de dados.
O exemplo mais comum que consigo pensar é o formato "Ogg / Vorbis". Ogg é o formato do contêiner e Vorbis é a codificação. Então você tem um arquivo no formato Ogg e dentro dele existem esses pequenos baldes que contêm dados codificados. Dentro de cada bloco, há um fluxo de dados codificado em Vorbis e nada mais. No balde pode ser carimbado o nome do artista e o título da música, por exemplo.
Então, de volta à tecnologia:
Se você já tem música em um formato com perdas, como mp3 ou ogg / vorbis, convertê-las em um formato sem perdas consumirá apenas (muito) espaço em disco e NÃO - absolutamente NÃO - melhorará a qualidade de o áudio seja qual for. Você não pode criar fidelidade uma vez que já esteja perdido. A menos que você esteja escrevendo uma interface gráfica no Visual Basic em algum programa de TV chamado CSI, mas isso é fantasia, não realidade.
Se você possui músicas em outros formatos sem perdas e deseja convertê-las em FLAC, pode fazê-lo.
Tenha cuidado ao usar o termo "WAV". Wav não precisa ficar sem perdas; na verdade, o WAV é apenas um contêiner para vários formatos possíveis. É como o AVI nesse sentido. Você PODE ter um WAV sem perdas se forem apenas dados PCM brutos, mas também pode incorporar dados MPEG-1 Camada III (com perdas) em um arquivo WAV.
É possível perder dados ao converter de um formato sem perdas para outro, se você reduzir a fidelidade dos dados. Por exemplo, se você converter um fluxo de dados PCM de 16 bits não assinado a 48000 Hz em um fluxo de dados PCM de 8 bits a 44100 Hz, estará perdendo a fidelidade de duas maneiras: as amostras estão sendo mescladas de 48000 para apenas 44100 por segundo (resultando em perda de dados), e os dados devem ser misturados para ajustar as informações em apenas 8 bits em vez de 16 por amostra, o que prejudicará drasticamente a qualidade.
Todo fluxo de áudio digital, mesmo aqueles codificados por um codificador compactador (com ou sem perdas), possui as seguintes "Propriedades de formato de amostra", que são elementos essenciais que descrevem as propriedades do fluxo:
Largura e profundidade de bits de amostra, ou seja, 8 bits, 16 bits, etc. A largura e a profundidade dos bits são sutilmente diferentes, e há também little-endian / big-endian (que não afeta a qualidade) e assinado ou não-assinado (o que também não afeta afeta a qualidade, mas afeta a maneira como o codificador / decodificador lida com os dados). O ponto principal a lembrar é que "mais bits é melhor". Então 32 bits é melhor que 16 bits, etc.
Frequência, também conhecida como taxa de amostragem. Mais é melhor porque você tem mais "amostras" de áudio sendo reproduzidas por segundo. Imagine passar o dedo rapidamente sobre um baralho de cartas e assistir as cartas passarem desfocadas - é assim que o áudio digital basicamente acontece. Cada amostra é um cartão e, se você tiver mais cartões voando por segundo, o áudio será mais contínuo. Você realmente notaria se estivesse apenas lançando 5 cartas por segundo, mas tudo ficaria borrado se você estivesse lançando milhares de cartas por segundo. Então, mais é melhor, porque é mais natural e mais próximo da realidade, que é analógica e infinitamente divisível (bem, até as unidades de Planck, mas isso é discutível e fora de tópico).
"Sem perdas" significa apenas que, se você usar o mesmo ou melhor formato de amostra na saída usado na entrada, não perderá nenhum dado.
Portanto, se você passar do formato de amostra de 16 para 32 bits, não perderá dados. Mas se você passa de 32 para 16 bits, perde dados.
Portanto, a resposta à sua pergunta sobre se o uso do FLAC faz sentido depende dos dados de origem: se você possui arquivos WAV de 64 bits que foram originalmente gravados no formato de amostra, com 192000 Hz (também conhecido como 192KHz), e os converte em " formato de amostra FLAC padrão de 16 bits e 44,1 KHz, você perderá uma tonelada de dados. Mas se o seu arquivo WAV for de 8 bits com apenas 22100 amostras por segundo e você o converter em um FLAC de 16 bits com 44100 amostras por segundo, você não perderá dados. E você pode até aumentar o tamanho do arquivo, dependendo se a compactação sem perdas ou o formato de amostra menor vence.
O formato de amostra afetará a quantidade de espaço que o arquivo ocupa, portanto, os bits "maiores" e as taxas de amostragem "mais rápidas" ocuparão mais espaço.
No que diz respeito às preocupações práticas e ao ouvido humano: você realmente não notará se converter originais realmente de alta fidelidade em FLAC de 44.1KHz a 44 bits. Mas você também não notará uma melhoria se converter um MP3 em FLAC. Portanto, você precisa avaliar em qual formato de amostra seus dados de origem estão antes de decidir o que fazer.
Agora que forneci todas essas informações, aqui estão minhas respostas diretas, à queima-roupa e com explicações zero para suas perguntas:
Eu tenho algumas perguntas sobre áudio sem perdas. Estou pensando em copiar toda a minha coleção de músicas para .flac sem perdas, mas quero entender algumas coisas primeiro.
Se a sua coleção de músicas está em CDs e você deseja copiá-la para o FLAC, isso é muito bom na minha opinião. O áudio com qualidade de CD será de 44,1 KHz e 16 bits por amostra. Isso corresponde exatamente às configurações padrão do FLAC (pelo menos, os padrões nos codificadores que eu uso). Portanto, você não perderá nenhum dado e ele será matematicamente idêntico aos dados de entrada quando decodificado.
Se eu tenho um arquivo .flac e quero transformá-lo em, digamos, .wav, como posso fazer isso para não ter perda de qualidade? Se eu descompactá-lo, sei que não vou perder qualidade. Converter .flac em .wav é o mesmo que descomprimir?
Você pode convertê-lo em um arquivo .wav com o mesmo formato de amostra ou mais amplo que os dados de entrada e não terá perda de qualidade.
Quando um media player reproduz o áudio em seu arquivo flac, ele basicamente decodifica os dados flac para um formato PCM antes de enviar esses dados PCM para a placa de som. Ele descompactará exatamente os mesmos dados inseridos; por isso, se os dados PCM de 44,1 KHz de 16 bits forem recebidos, é isso que sairá e será direcionado para os alto-falantes.
A única diferença entre essa atividade e a conversão do áudio em um arquivo WAV é que, quando você o converte em um arquivo WAV, é necessário criar um contêiner WAV com os bits de preenchimento apropriados etc. e também permite escolher o formato de amostra do arquivo WAV. Mas, supondo que o formato de amostra seja o mesmo, a única diferença entre os arquivos FLAC e WAV será o tamanho do arquivo: os arquivos WAV serão substancialmente maiores.
Isso também se aplica ao formato .ape? Tenho algumas gravações de domínio público que baixei em .ape, mas quero torná-lo .flac. O .ape para .flac seria possível sem usar o .wav como intermediário. Quero garantir que nem um pouco se perca.
Não, não é possível fazer isso sem usar algum formato PCM como intermediário. Mas sim, é possível fazê-lo sem usar um arquivo WAV. Observe a diferença. Fluxo de dados PCM. Arquivo WAV. Se a distinção não estiver clara para você, releia o início do meu post. Se você deseja garantir que "nem um pouco" seja perdido, é necessário examinar os arquivos do APE e entender em que formato de amostra eles estão. Verifique se o codificador FLAC está definido para codificar para as mesmas configurações.
Internamente, qualquer programa de conversão de áudio será decodificado do formato de origem para algum tipo de formato de amostra PCM sem perdas e, depois, pegará essas amostras de PCM e as recodificará no formato de destino.
Além disso, se houver algum guia que explique o mundo sem perdas, alguém estaria disposto a compartilhar um link? :)
Na minha opinião, a melhor maneira de aprender é fazer. Se você dedicar algum tempo para aprender a estrutura do Gstreamer, como usá-la e os significados dos vários ajustes do formato de amostra e como construir um pipeline, você terá uma compreensão realmente forte do áudio digital. Confira. http://gstreamer.freedesktop.org/ Você também pode pegar o SDK do Gstreamer em http://code.entropywave.com/gstreamer-sdk/ (Windows é suportado) e experimentar o gst-launch-0.10 sem precisar compilar nada da fonte.
Algumas coisas reveladoras:
gst-inspecionar-0.10 vorbisenc gst-inspecionar-0.10 vorbisdec gst-inspecionar-0.10 audioconvert gst-inspecionar-0.10 amostra
Em seguida, aprenda sobre limites, construção de tubulações, etc. e você estará seguindo em frente.
* Nota: Sei que não expliquei o que é PCM. A Wikipedia faz um trabalho melhor do que eu: http://en.wikipedia.org/wiki/Pulse-code_modulation