FLAC (acrônimo de Free Lossless Audio Codec, que significa Codec de Áudio Livre Sem Perdas em inglês) é um codec de compressão de áudio sem perda de informação. Ao contrário de codecs com perda tais como o MP3 e o Vorbis, ele não remove nenhuma informação do fluxo de áudio, mantendo a qualidade do som, podendo comprimir um arquivo de CD em até 50%, inferior aos até 80% do seu maior concorrente MP3, em razão da total fidelidade ao arquivo original.

História O desenvolvimento foi iniciado em 2000 por Josh Coalson. O formato bitstream foi congelado com o lançamento da versão 0.9 da implementação de referência em 31 de março de 2001. A versão 1.0 foi lançada em 20 de julho de 2001.

Em 29 de janeiro de 2003, a Xiph.Org Foundation e o projeto FLAC anunciaram a incorporação do FLAC sob a bandeira da Xiph.org. A Xiph.org é o lar de outros formatos de compressão gratuitos, como Vorbis, Theora, Speex e Opus.

A versão 1.3.0 foi lançada em 26 de maio de 2013, quando o desenvolvimento foi transferido para o repositório git da Xiph.org. Em 2019, o FLAC foi proposto como um padrão IETF. Em 2024, o FLAC foi formalmente especificado e publicado como RFC 9639.

Estrutura O projeto FLAC é composto de: o formato de stream um container de formato para o stream, também chamado de FLAC (ou FLAC Nativo) libFLAC, uma biblioteca de referência de codificadores e decodificadores, e uma interface de metadados libFLAC++, um object wrapper para a libFLAC flac, um wrapper em linha de comando para utilizar a libFLAC para codificar e decodificar streams em FLAC metaflac, um editor de metadados em linha de comando para arquivos .flac e para a aplicação de Replay Gain plugins de entrada para vários tocadores de áudio (Winamp, XMMS, foobar2000, musikCube, e muitos mais) Com a incorporação à Xiph.org, o container de formato Ogg, adaptável à streaming (também chamado de Ogg FLAC)

"Livre" significa que a especificação do formato de stream pode ser implementada por qualquer pessoa, sem necessidade de autorização expressa (a Xiph.org se reserva o direito de definir a especificação do FLAC e certificar a conformidade aos mesmos), e nem o formato FLAC, nem nenhum método implementado para codificá-lo/decodificá-lo são cobertos por patentes. Isso também significa que a implementação referencial é software livre e os códigos-fonte da libFLAC e da libFLAC++ são disponíveis sob a Licença BSD da Xiph.org, e os códigos-fonte do flac, metaflac, e também os plugins estão disponíveis sob a GPL.

Em suas metas, o projeto FLAC encoraja seus desenvolvedores a não implementar nenhum tipo de prevenção de cópia.Introdução ao FLAC

Comparações O FLAC foi criado para um empacotamento eficiente de dados de áudio, diferente de algoritmos gerais de compressão sem perda, como ZIP e gzip. Enquanto um ZIP pode compactar um arquivo de áudio com qualidade de cd em 10% ou 20%, com FLAC pode-se alcançar taxas de compressão de 30% a 50%.

Codecs com perda de dados podem alcançar taxas de 80% ou mais, descartando dados do stream original. O FLAC utiliza predição linear para converter amostras do áudio em uma série de pequenos números não correlatos (o residual), que são armazenados eficientemente com o uso do algoritmo Golomb-Rice. Ele também utiliza codificação run-length para blocos de amostras idênticas, como passagens silenciosas. As vantagens técnicas do FLAC comparado a outros codecs sem perda residem na sua habilidade de streaming e em um rápido tempo de decodificação, que independe do nível de compressão.

Como qualquer outro codec sem perdas, o formato FLAC é popular entre proprietários de CDs e outras mídias que desejam preservar suas coleções de áudio. Se a mídia original foi perdida ou danificada, uma cópia em FLAC garante que uma duplicata exata do original pode ser recuperada a qualquer instante. Uma restauração exata feita a partir de um arquivo com perda (ex., MP3) dos mesmos dados é impossível. Um arquivo CUE pode opcionalmente ser criado ao copiar-se um CD. Se o CD foi lido e copiado perfeitamente em arquivos FLAC, o arquivo CUE permite posteriormente a gravação de um CD de áudio idêntico ao original, incluindo ordem das faixas, pregaps, e CD-Text. Entretanto, dados adicionais presentes em alguns CDs, como letras e gráficos de CD+G estão além do escopo de um arquivo CUE e da maioria dos softwares de cópia de CDs, portanto, esses dados não serão armazenados.

A Hydrogenaudio Wiki possui uma comparaçãoComparação de codecs sem perda de codecs sem perda, incluindo FLAC.

Exemplos Para a melhor compressão, porém mais longo tempo de codificação, este comando pode ser utilizado: flac—lax -mep -b 8192 -l 32 -r 0,16 input.wav -o output.flac O arquivo resultante pode não ser reprodutível em players de hardware ou ser passível de streaming, mas ele irá funcionar em todos os decodificadores de software. Para um arquivo totalmente em conformidade, este comando deverá ser utilizado: flac -mep -b 8192 -l 32 -r 0,8 input.wav -o output.flac

Detalhes técnicos O FLAC suporta apenas amostras de ponto fixo, não de ponto flutuante. Isso ocorre para eliminar quaisquer erros de arredondamento para que se garanta uma reprodução perfeita em nível de bit. Ele pode trabalhar com qualquer resolução de bits PCM de 4 a 32 bits por amostra, qualquer taxa de amostragem de 1 Hz a 1,048,570 Hz em incrementos de 1 Hz, e qualquer número de canais de 1 a 8. Os canais podem ser agrupados em casos como stereo e surround de 5.1 canais para aproveitar as vantagens de correlações entre os canais para aumentar a compressão. Ele utiliza checksums CRC para identificar frames corrompidos quando usados em um protocolo de streaming, e também tem um hash MD5 completo do áudio PCM puro armazenado em seu cabeçalho de metadados STREAMINFO.

O formato FLAC é implementado como o codificador/decodificador interno da libFLAC, com o principal programa distribuível, flac, sendo o programa de referência da utilização da API libFLAC. A API do codec também está disponível em C++ como libFLAC++.

A implementção refencial do FLAC é compilável em várias plataformas, incluindo a maioria dos sistemas operacionais Unix e Unix-like (incluindo Linux, *BSD, Solaris, e Mac OS X), Windows, BeOS, e OS/2. Há build systems para autoconf/automake, MSVC, Watcom C, e Project Builder.

Organização da API A API libFLAC está organizada em streams, seekable streams e arquivos, na ordem crescente de abstração a partir do bitstream base do FLAC. Muitos aplicativos FLAC geralmente se restringirão a codificar/decodificar usando a libFLAC no nível de interface de arquivo.

Codificador Um codificador FLAC é criado com os seguintes passos Criar uma instância do codificador usando FLAC__file_encoder_new() Definir vários parâmetros deste codificador, como SamplingRate (taxa de amostragem), BitsPerSample (bits por amostra), NumberofChannels (número de canais), ordem LPC, estéreo Mid-side, distância de busca do parâmetro Rice, min. e máx. residual, BlockSize (tamanho de bloco), output FileName (nome de arquivo)(se não há arquivo de saída, usar codificador de stream). A função chama por cada um destes Inicializar o codificador FLAC usando FLAC__file_encoder_init() Codificar as amostras puras usando FLAC__file_encoder_process() ou FLAC__file_encoder_process_interleaver() para cada amostra lida a partir da entrada (tanto ADC como Arquivo). Ao encerrar o processo de codificação, chamar FLAC__file_encoder_finish(), após isto você poderá tanto destruir o codificador como refazer os passos para outro arquivo, seguindo-os novamente.

Software com suporte Codificação Windows BonkEnc Audacity CDEx Easy Media Creator Easy CD-DA Extractor Exact Audio Copy Nero Burning ROM com plugin externo de filtro, opcional DBpowerAMP com o codec oficial MediaMonkey Winamp suporte nativo a FLAC já incluso R.E.A.P.E.R suporte nativo a FLAC já incluso JetAudio foobar2000 com plugin Sound Normalizer MP3 Stream Editor com codificador externo oficial Burrrn AIMP3 suporte nativo a FLAC já incluso

Mac OS X Toast Titanium, a partir da versão 7

Linux GNOME GnomeBaker Serpentine KDE K3b

Decodificação Multi Plataforma VLC media player MPlayer Songbird Squeezebox Mac OS X Cog Windows Windows Media Player e Media Player Classic com plugins de terceiros Winamp Peggo iOS JetAudio Spotify DBpowerAMP com codec oficial foobar2000 Quintessential Player com plugin flac KSP Sound Player plugin incluído com a instalação normal MediaMonkey MP3 Stream Editor plugin incluído com a instalação normal Cockos REAPER Multitrack Recorder and Editor Renoise suporta importar e exportar a partir da versão 1.8 The KMPlayer ALTools-based ALSong Showbox app Peggo XMPlay

Linux Audacious Banshee (music player) Baudline Cmus MPD ogg123 (se compilado para flac - ogg123 é parte do pacote 'vorbis-tools') Xine GNOME Rhythmbox XMMS com o plugin xmms-flac KDE Amarok

Cópia (ripping) Windows BonkEnc usando a API FLAC.dll CDex utilizando a opção codificador externo (agora lista a "flac.dll" como uma opção de codificador se o flac estiver instalado) DBpowerAMP com codec oficial Exact Audio Copy utilizando o codificador externo foobar2000 usando o plugin Converter e o codificador externo MediaMonkey MP3 Stream Editor utilizando o codificador externo oficial (modo single/modo álbum/suporte total a imagem de capa) Winamp PlexTools Fairstars CD Ripper XMPlay

Mac OS X Max — OS X 10.4 apenas

Linux ABCDE Asunder Banshee (software) Cdda2wav Cdparanoia Mencoder GNOME Grip RipOff Sound Juicer KDE KAudioCreator Konqueror

Suporte de hardware SanDisk Sansa® Clip iPod - Video, Nano, Photo, Colour, Mini (2ª geração), usando firmware de terceiros (Rockbox) Grande maioria dos players de áudio digital Rockbox-compatíveis, incluindo iRiver e Gigabeat (Toshiba) Hermstedt Hifidelio Cowon - J3, S9, D2 e D2+, iAUDIO 9, iAUDIO 7,COWON V5, iAUDIO E2, A2 (nativo, a partir do firmware v1.59), 6, M3, M5, X5, U3, também via firmware Rockbox* Servidores de mídia Olive (Symphony, Música, Opus) Rio Karma Squeezebox (v1 recodifica para PCM em server side'', v2 e posteriores decodificam nativamente) Sonos Meizu M6 Miniplayer Pixel Magic Systems' HD Mediabox (com firmware 1.3.4 ou superior) Waveplayer embutido - Módulo com suporte a FLAC nível 0 a 2, MIDI e interface serial Teclast T29 Trekstor Vibez

Ver também MP3 Ogg Vorbis Monkey's audio Wavpack

Ligações externas Página do projeto FLAC

Categoria:Formatos digitais de som Categoria:Software de 2001 Categoria:Softwares multiplataformas Categoria:Codecs de áudio sem perda Categoria:Formatos abertos