One of the reserved bits in the FLAC frame header has been assigned for future use; make sure to refer to the porting guide if you parse FLAC streams manually.
+
One of the reserved bits in the FLAC frame header has been assigned for future use; make sure to refer to the porting guide if you parse FLAC streams manually.
@@ -324,7 +316,7 @@
- Interface changes (see also the porting guide for specific instructions on porting to FLAC 1.2.0):
+ Interface changes (see also the porting guide for specific instructions on porting to FLAC 1.2.0):
libFLAC:
@@ -550,7 +542,7 @@
- Interface changes (see also the porting guide for specific instructions on porting to FLAC 1.1.3):
+ Interface changes (see also the porting guide for specific instructions on porting to FLAC 1.1.3):
all libraries;
@@ -929,12 +921,6 @@
Copyright (c) 2011-2013 Xiph.Org Foundation
-
- Many lossless comparisons look at only compression ratio and speed. FLAC decoding is the fastest among lossless codecs and it has the fastest encoding mode. FLAC's compression is within 3% of even the most complex codecs. Note that the compression ratios of all lossless codecs fall in a quite narrow range; the difference between the very best and very worst is only around 7%, and only 4% for the practical codecs.
-
- So the evaluation of lossless codecs typically depends mainly on other features, which is what our first table shows; features like how well it is supported in devices and software, licensing, etc. Additionally, as archiving is one of the main applications for a lossless codec, of chief importance is the ability to use and recover data in the future. FLAC stands out as the most widely supported codec, and the only codec that at once is non-proprietary, is unencumbered by patents, has an open-source reference implementation, has a well documented format and API, and has several other independent implementations.
-
- The rest of the tables show in detail the compression ratios and speed of the codecs in different modes. FLAC's high decoding speed is due to very low complexity and is instrumental to its support by dozens of consumer electronic devices.
-
- (Note: this comparison leaves out some archaic or impractical codecs; see below for some other comparisons.)
-
- Reviewed encoders (besides flac of course):
-
-
- Apple Lossless - A proprietary codec by Apple.
-
-
- Bonk - An open-source source codec. No player or library support yet.
-
-
- La - A closed source symmetric adaptive codec. Highest compression ratio but extremely slow.
-
-
- Monkey's Audio - A symmetric adaptive codec with good compression. Source is available under a non-OSI license.
-
-
- Ogg Squish - An open source source codec that is no longer maintained.
-
-
- optimFROG - A closed source, Windows/Linux codec, with Winamp and XMMS plugins. Slow but high compression ratios.
-
-
- Shorten - A.J. Robinson's well-known codec; source is available here.
-
-
- Tak - A new and efficient codec, but closed-source and Windows only.
-
-
- WavPack - A fine open-source codec, released under the BSD license.
-
-
- The machine used for encoding the test files is a PII-333 with 256 megs of RAM, running Windows NT 4.0 SP5. Unfortunately, though flac runs just about everywhere, Windows is the lowest-common-denominator platform for all the encoders. Apple Lossless was tested on a newer machine (P4-2.4GHz Windows 2000); only the overall encoding and decoding times are shown, and the times are scaled to the PII-333 by multiplying by the ratio of flac times on the PII to P4.
-
- By default when processing files, flac computes the MD5 sum while encoding and decoding. Since MD5 sums are not typically used in playback, and since most codecs either do not support MD5 sums or do not compute them by default, to make the comparison as accurate as possible MD5 checking was disabled for FLAC decoding. However since it is currently not possible to disable MD5 computation for FLAC encoding, the FLAC encoding times here are 4-15% longer than they would be without MD5 checking.
-
- The audio corpus currently consists entirely of CD music tracks. In the future it may include more kinds of input (like speech, other sample rates/resolutions, etc). There are 14 tracks whose genres range from rock to pop to death metal to classical to chant.
-
- Here is a summary table of results on the whole corpus, using just the most 'economic' modes (the ones that give the most compression for the least amount of encode/decode time) for each codec. The table is ordered by the average track compression ratio, which is the average of the ratios for each track; this keeps long tracks from having more influence than short ones. Clicking the column header links will take you to complete tables ordered by that column.
-
- Shown in white, flac in its default mode is right in the middle with respect to compression, relatively fast on the encoding range, and the fastest decoding. This is about what you would expect; FLAC is designed to put most of the processing on the encoding side, which is only done once, whereas the adaptive codecs take as long to decode as encode. FLAC is more suited in this way for playback on low-power devices, borne out by the many hardware devices which support it.
-
-
-
-
-
- Here are links to the full summary table (all codecs, all modes) and tables for each individual track. The individual track tables are sorted only by compression ratio since the relative encoding and decoding times are the same as for the whole corpus.
-
FLAC is an open source project and we are happy to enlist the help of anyone who wants to contribute, or to help with FLAC support in other programs and devices. The preferred method of communication is the developer mailing list (you must subscribe to post).
- FLAC is open to third-party developers who want to add support for FLAC into their programs. All the necessary functionality is contained the libFLAC libraries which are licensed under Xiph.org's BSD license.
+ FLAC is open to third-party developers who want to add support for FLAC into their programs. All the necessary functionality is contained in the libFLAC libraries which are licensed under Xiph.org's BSD license.
Some pointers to developer documentation and code:
- More resources are available on the FLAC project page on Sourceforge.net.
@@ -107,7 +98,7 @@
Anti-goals
- Lossy compression. There are already many suitable lossy formats (Ogg Vorbis, MP3, etc.).
+ Lossy compression. There are already many suitable lossy formats (Ogg Vorbis, MP3, etc.).
Copy prevention, DRM, etc. There is no intention to add any copy prevention methods. Of course, we can't stop someone from encrypting a FLAC stream in another container (e.g. the way Apple encrypts AAC in MP4 with FairPlay), that is the choice of the user.
@@ -127,12 +118,6 @@
Copyright (c) 2011-2013 Xiph.Org Foundation
-
@@ -53,15 +45,15 @@
FLAC is a general purpose audio format supported by many programs. Most of the documentation here is about the FLAC format itself and the tools we provide, but there is also information on using other programs that support FLAC.
Keep in mind that the online version of the documentation will always apply to the latest release. For older releases, check the documentation included with the release package.
@@ -91,12 +83,6 @@
Copyright (c) 2011-2013 Xiph.Org Foundation
-
- The FLAC source code has several small example programs that demonstrate how to use the libraries. The source is available on the download page, or can be checked out from CVS or browsed online. The examples complement the API documentation.
+ The FLAC source code has several small example programs that demonstrate how to use the libraries. The source is available on the download page, or can be checked out from git. The examples complement the API documentation.
Currently the examples show how to encode WAV files to FLAC and vice-versa using both libFLAC and libFLAC++. Over time we'll be adding more examples.
@@ -67,12 +59,6 @@
Copyright (c) 2011-2013 Xiph.Org Foundation
-
- Since FLAC is supported by so many different programs, it can be a daunting task for the new user to choose a suitable program. This page will walk you through the steps. First, choose your operating system:
-
-
- Using iTunes? Sorry, due to iTunes' design we can't add FLAC support; ask Apple to support FLAC!
-
- If you want to play FLAC files, here is how with some popular players:
-
- If you want to rip CDs to FLAC, here is a short list of the most popular programs. Experts generally prefer EAC for the most accurate ripping. dbPowerAMP also does a fine job and is easier to set up.
-
-
Windows Media Player (WMP) - Sorry, Microsoft has made it impossible to rip to FLAC in WMP; hopefully this will change eventually.
-
Winamp - Winamp can rip to FLAC out of the box since version 5.31 if you download the Full version (not Lite).
FLAC Frontend - A simple GUI that comes in our FLAC Installer for Windows. Also includes our command-line programs for converting FLAC files and editing metadata.
-
foobar2000 - A swiss army knife that supports FLAC out of the box.
-
- Using iTunes? Sorry, due to iTunes' design we can't add FLAC support; ask Apple to support FLAC!
-
- If you want to play FLAC files, here is how with some popular players:
-
- In the Unix world, FLAC support is quite widespread and it's usually only a matter of installing packages, so here are a few pointers. See the software links section for many more.
-
- To play FLAC files:
-
FLAC Mailing List - General discussion about FLAC, tools, releases, etc. (You must subscribe to post.)
- See Getting FLAC for instructions on downloading and installing the official FLAC tools, or Using FLAC for instructions and guides on playing FLAC files, ripping CDs to FLAC, etc.
+ See Getting FLAC for instructions on downloading and installing the official FLAC tools, or Using FLAC for instructions and guides on playing FLAC files, ripping CDs to FLAC, etc.
@@ -78,12 +70,6 @@
Copyright (c) 2011-2013 Xiph.Org Foundation
-
- Normally the FLAC plugin for XMMS is installed with a package, but some of the binary builds have a compiled plugin. All that is necessary is to copy libxmms-flac.so to the directory where XMMS looks for input plugins (usually /usr/lib/xmms/Input or $HOME/.xmms/Input). There is nothing else to configure. Make sure to restart XMMS before trying to play any .flac files.
+ Normally the FLAC plugin for XMMS is installed with a package, but some of the binary builds have a compiled plugin. All that is necessary is to copy libxmms-flac.so to the directory where XMMS looks for input plugins (usually /usr/lib/xmms/Input or $HOME/.xmms/Input). There is nothing else to configure. Make sure to restart XMMS before trying to play any .flac files.
@@ -80,12 +72,6 @@
Copyright (c) 2011-2013 Xiph.Org Foundation
-
- Many different programs support FLAC. If you are not sure what to download, see Using FLAC for instructions and guides on playing FLAC files, ripping CDs to FLAC, etc.
-
- This section is for the official FLAC tools. See the extras section below for other third-party tools.
-
- All source code and binaries are freely available and distributed under Open Source licenses. The codec libraries are distributed under Xiph.org's BSD license, and the plugins and command-line utilites (flac and metaflac) are distributed under the GPL. If you would like to redistribute parts or all of FLAC under different terms, contact Josh Coalson. (For more information, see the license page.)
-
- NOTE: these extras are not part of the FLAC project. Most (except those marked [$]) are freely available but distributed under their authors' own terms.
-
- NOTE: make sure to check out the links page for a large list of open-source software supporting FLAC.
-
- GUI encoding/decoding front-ends:
-
AutoFLAC for automated ripping and encoding to FLAC with EAC (ExactAudioCopy); also has a write mode for burning back to CD for an exact copy
-
dBpowerAMP, a swiss army knife that can convert and play many formats, including FLAC.
-
Flacattack: an all-in-one tool that works with ExactAudioCopy to encode a CD image to FLAC, embed the cuesheet, add ReplayGain, create lossy files, etc. all in a customizable directory structure.
- FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file.
+ FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file.
- This list is so large now it is difficult to maintain and keep up-to-date. For a partial list of open-source software that supports FLAC, see the software section of the links page. For a partial list of the most popular software used to encode, decode, play, tag, and rip FLAC files, see the download page.
+ This list is so large now it is difficult to maintain and keep up-to-date. For a partial list of open-source software that supports FLAC, see the software section of the links page. For a partial list of the most popular software used to encode, decode, play, tag, and rip FLAC files, see the download page.
@@ -220,7 +214,7 @@
"Native" FLAC is the compressed FLAC data stored in a very minimalist container, designed to be very efficient at storing single audio streams.
- Ogg FLAC is the compressed FLAC data stored in an Ogg container. Ogg is a much more powerful transport layer that enables mixing several kinds of different streams (audio, data, metadata, etc). The overhead is slightly higher than with native FLAC.
+ Ogg FLAC is the compressed FLAC data stored in an Ogg container. Ogg is a much more powerful transport layer that enables mixing several kinds of different streams (audio, data, metadata, etc). The overhead is slightly higher than with native FLAC.
In either case, the compressed FLAC data is the same and one can be converted to the other without re-encoding.
@@ -263,7 +257,7 @@
FLAC already encodes pretty fast. It is faster than real-time even on weak systems and is not much slower than even the fastest codecs. And it is faster than the CD ripping process with which it is usually paired, meaning even if it went faster, it would not speed up the ripping-encoding process anyway.
- Part of the reason is that FLAC is asymmetric (see also). That means that it is optimized for decoding speed at the expense of encoding speed, because it makes it easier to decode on low-powered hardware, and because you only encode once but you decode many times.
+ Part of the reason is that FLAC is asymmetric (see also). That means that it is optimized for decoding speed at the expense of encoding speed, because it makes it easier to decode on low-powered hardware, and because you only encode once but you decode many times.
How can I be sure FLAC is lossless? How much testing has been done on FLAC?
@@ -286,7 +280,13 @@
FLAC supports linear PCM samples with a resolution between 4 and 32 bits per sample. FLAC does not support floating point samples. In some cases it is possible to losslessly transform samples from an incompatible range to a FLAC-compatible range before encoding.
- FLAC supports linear sample rates from 1Hz - 655350Hz in 1Hz increments.
+ FLAC supports linear sample rates from 1Hz - 655350Hz in 1Hz increments.
+
+ Will FLAC ever support floating-point samples?
+
+ It's unlikely FLAC will ever support floating-point samples natively. The main application for floating-point is audio engineering, which demands easy editing and very high speed for both encoding and decoding above everything else.
+
+ FLAC is designed as a consumer audio format. It trades ease of editing for a featureful, robust transport layer more suited for playback, and encoding speed for more compression and faster decompression.
@@ -328,18 +328,18 @@
The problem is usually caused by overclocking/overheating the CPU or bad RAM. Try one of the many free programs available for testing hardware (e.g. Memtest86+). We have had reports of a few cases where a system is passing with flying colors and still getting unrepeatable FLAC errors, and the one thing many (all?) of these systems have in common is an ASUS motherboard (A7V133 or P3V4X) which we suspect is buggy in some way. (See also)
- WAVE is a complicated standard; many kinds of data besides audio data can be put in it. Most likely what has happened is that the application that created the original WAVE file also added some extra information for it's own use, which FLAC does not store or recreate by default (but can with the --keep-foreign-metadata option) (see also). The audio data in the two WAVE files will be identical. There are other tools to compare just the audio content of two WAVE files; ExactAudioCopy has such a feature.
+ WAVE is a complicated standard; many kinds of data besides audio data can be put in it. Most likely what has happened is that the application that created the original WAVE file also added some extra information for it's own use, which FLAC does not store or recreate by default (but can with the --keep-foreign-metadata option) (see also). The audio data in the two WAVE files will be identical. There are other tools to compare just the audio content of two WAVE files; ExactAudioCopy has such a feature.
- For the more technically inclined, by default FLAC only stores what is in the 'fmt ' and 'data' sub-chunks of a WAVE file. (see also)
+ For the more technically inclined, by default FLAC only stores what is in the 'fmt ' and 'data' sub-chunks of a WAVE file. (see also)
- The difference is probably that between an 18-byte 'fmt ' subchunk in the original WAVE vs. a 16-byte one in the decoded WAVE. With WAVE there is more than one way to write identical formatting information, but FLAC always writes the most common legal form. (see also)
+ The difference is probably that between an 18-byte 'fmt ' subchunk in the original WAVE vs. a 16-byte one in the decoded WAVE. With WAVE there is more than one way to write identical formatting information, but FLAC always writes the most common legal form. (see also)
- First, visit the bug tracking page and do a little searching of both open and closed bugs to see if yours is already there. If you have something truly new, submit a new bug. Make sure to monitor the bug or include your email address in the description. Include as much information as possible: the version of FLAC that you are running, the name and version of any frontend you are running, your operating system and version, your CPU type and speed, the amount of memory you have, where you downloaded FLAC from, the exact error message (if any) copied from the console, and anything else you may think will help.
+ First, visit the bug tracking page and do a little searching of both open and closed bugs to see if yours is already there. If you have something truly new submit a new bug there. Make sure to monitor the bug or include your email address in the description. Include as much information as possible: the version of FLAC that you are running, the name and version of any frontend you are running, your operating system and version, your CPU type and speed, the amount of memory you have, where you downloaded FLAC from, the exact error message (if any) copied from the console, and anything else you may think will help.
@@ -384,15 +384,7 @@
- FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file.
+ FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file.
- FLAC stands out as the fastest and most widely supported lossless audio codec, and the only one that at once is non-proprietary, is unencumbered by patents, has an open-source reference implementation, has a well documented format and API, and has several other independent implementations.
+ FLAC stands out as the fastest and most widely supported lossless audio codec, and the only one that at once is non-proprietary, is unencumbered by patents, has an open-source reference implementation, has a well documented format and API, and has several other independent implementations.
FLAC supports tagging, cover art, and fast seeking. FLAC is freely available and supported on most operating systems, including Windows, "unix" (Linux, *BSD, Solaris, OS X, IRIX), BeOS, OS/2, and Amiga.
- There are many programs and devices that support FLAC, but the core FLAC project here maintains the format and provides programs and libraries for working with FLAC files. See Getting FLAC for instructions on downloading and installing the official FLAC tools, or Using FLAC for instructions and guides on playing FLAC files, ripping CDs to FLAC, etc.
+ There are many programs and devices that support FLAC, but the core FLAC project here maintains the format and provides programs and libraries for working with FLAC files. See Getting FLAC for instructions on downloading and installing the official FLAC tools, or Using FLAC for instructions and guides on playing FLAC files, ripping CDs to FLAC, etc.
When we say that FLAC is "Free" it means more than just that it is available at no cost. It means that the specification of the format is fully open to the public to be used for any purpose (the FLAC project reserves the right to set the FLAC specification and certify compliance), and that neither the FLAC format nor any of the implemented encoding/decoding methods are covered by any known patent. It also means that all the source code is available under open-source licenses. It is the first truly open and free lossless audio format. (For more information, see the license page.)
@@ -69,7 +61,7 @@
Fast: FLAC is asymmetric in favor of decode speed. Decoding requires only integer arithmetic, and is much less compute-intensive than for most perceptual codecs. Real-time decode performance is easily achievable on even modest hardware.
Flexible metadata: FLAC's metadata system supports tags, cover art, seek tables, and cue sheets. Applications can write their own APPLICATION metadata once they register an ID. New metadata blocks can be defined and implemented in future versions of FLAC without breaking older streams or decoders.
@@ -93,7 +85,7 @@
What FLAC is not:
- Lossy. FLAC is intended for lossless compression only, as there are many good lossy formats already, such as Vorbis, MPC, and MP3 (see LAME for an excellent open-source implementation).
+ Lossy. FLAC is intended for lossless compression only, as there are many good lossy formats already, such as Vorbis, MPC, and MP3 (see LAME for an excellent open-source implementation).
DRM. There is no intention to add any copy prevention methods. Of course, we can't stop someone from encrypting a FLAC stream in another container (e.g. the way Apple encrypts AAC in MP4 with FairPlay), that is the choice of the user.
@@ -113,12 +105,6 @@
Copyright (c) 2011-2013 Xiph.Org Foundation
- FLAC allows third-party applications to register an ID for use with FLAC APPLICATION metadata blocks. Use the following form to request an ID, or to submit a change to an existing ID.
+ FLAC allows third-party applications to register an ID for use with FLAC APPLICATION metadata blocks. Contact the FLAC-dev mailinglist to register an ID or to change an existing ID. Your request should at least contain the application ID, application name and a contact e-mail address. An application URL and specification URL should be mentioned too, if applicable.
-
+ The ID request should be 8 hexadecimal digits and not conflict with any existing IDs (see the table below for all currently registered IDs). This 32-bit number will be stored big-endian in the block.
+
+ Information about your application (but not your e-mail address) will show up on this page in the ID directory. You can also provide a URL to your application and a URL reference to the specification of your application's APPLICATION block.
- FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file.
+ Please note: This is the source-code documentation, for more general information on FLAC, please visit the on-line FLAC homepage
- FLAC stands out as the fastest and most widely supported lossless audio codec, and the only one that at once is non-proprietary, is unencumbered by patents, has an open-source reference implementation, has a well documented format and API, and has several other independent implementations.
+ FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file.
- See About FLAC for more, or Using FLAC for how to play FLAC files, rip CDs to FLAC, etc.
-
- FLAC 1.3.0 released :Changelog here
- last updated 2013-May-04
+ FLAC stands out as the fastest and most widely supported lossless audio codec, and the only one that at once is non-proprietary, is unencumbered by patents, has an open-source reference implementation, has a well documented format and API, and has several other independent implementations.
+
+ See About FLAC for more, or Using FLAC for how to play FLAC files, rip CDs to FLAC, etc.
- Would you like iTunes to support FLAC? So would we!
-
- Due to the design of iTunes, only Apple can add support for FLAC [1]. And why wouldn't they? FLAC usage is accelerating, many bands like Pearl Jam, Phish, Dave Matthews Band, Metallica -- the same hip, influential people whose fans Apple courts -- are already distributing music in FLAC format, and users are clamoring for it in the iTunes forums:
-
-
[2]"I have seen a lot of people on live music message boards turn away from the iPod because there are other music players that support FLAC. I am on the verge... and I am an Apple die-hard!"
-
[3]"If your source material is FLAC (as many bands have gone this way to distribute online music) your choice is to use another music player ..."
- Make your voice heard! Fill out the iTunes feedback form (politely!) and let them know. Feel free to also direct them to this page. We at the FLAC project stand ready to help as well.
-
-
-
- [1] XiphQT, through tremendous effort by developers, goes as far as possible in allowing some playback capability via QuickTime. But proper iTunes support -- tag handling, no import delays, etc. -- is not possible without Apple.
-
@@ -56,15 +48,15 @@
The FLAC project also makes available software that implements the formats, which is distributed according to Open Source licenses as follows:
- The reference implementation libraries are licensed under the New BSD License. In simple terms, these libraries may be used by any application, Open or proprietary, linked or incorporated in whole, so long as acknowledgement is made to Xiph.org Foundation when using the source code in whole or in derived works. The Xiph License is free enough that the libraries have been used in commercial products to implement FLAC, including in the firmware of hardware devices where other Open Source licenses can be problematic. In the source code these libraries are called libFLAC and libFLAC++.
+ The reference implementation libraries are licensed under the New BSD License. In simple terms, these libraries may be used by any application, Open or proprietary, linked or incorporated in whole, so long as acknowledgement is made to Xiph.org Foundation when using the source code in whole or in derived works. The Xiph License is free enough that the libraries have been used in commercial products to implement FLAC, including in the firmware of hardware devices where other Open Source licenses can be problematic. In the source code these libraries are called libFLAC and libFLAC++.
The rest of the software that the FLAC project provides is licensed under the GNU General Public License (GPL). This software includes various utilities for converting files to and from FLAC format, plugins for audio players, et cetera. In general, the GPL allows redistribution as long as derived works are also made available in source code form according to compatible terms.
Neither the FLAC nor Ogg FLAC formats nor any of the implemented encoding/decoding methods are covered by any known patent.
- FLAC is one of a family of codecs of the Xiph.org Foundation, all created according to the same free ideals. For some other codecs' descriptions of the Xiph License see the Speex and Vorbis license pages.
+ FLAC is one of a family of codecs of the Xiph.org Foundation, all created according to the same free ideals. For some other codecs' descriptions of the Xiph License see the Vorbis license page.
- If you would like to redistribute parts or all of FLAC under different terms, contact Josh Coalson.
+ If you would like to redistribute parts or all of FLAC under different terms, contact the developers on the flac-dev mailinglist.
@@ -79,12 +71,6 @@
Copyright (c) 2011-2013 Xiph.Org Foundation
-
- The links page is the place for all things FLAC. The hardware section lists the home stereo, car stereo, and portable devices that support the FLAC format. The music section has links to artists, labels, and legal trading/sharing sites that offer works encoded in FLAC. The software section is a loosely categorized list of open-source software that supports the FLAC format. Some of the most popular (some non-free) software can be found on the download page in the extras section.
-
- Below are some devices that support the FLAC format. For the ones we have hands-on experience with, there is a linked review (see all reviews). Manufacturers, if you would like your product reviewed here, please contact us.
-
-
- Reviews:
- The main purpose of these reviews is to give an idea of how well particular devices support FLAC. Other subjective comments here are based on our general impressions and are not meant to be thorough or authoritative. We only review devices we have tested directly ourselves.
-
- Sonos: A very slick networked audio system. Each ZonePlayer connects to an amplifier or speakers, accessing music over the network. ZonePlayers are controlled by a wireless remote with color LCD and clickwheel; they can network together wired or wireless and play in sync or independently. FLAC support is excellent; nearly the full subset (i.e. mono and stereo files, sample rates from 16kHz-48kHz, 16-bits per sample) including all standard encoding modes are supported. Also supported: gapless playback, FLAC tags, and ReplayGain.
-
- Squeezebox: A fantastic networked audio player from Slim Devices with analog and digital outputs for connecting to an amplifier/receiver. Has an easy-to-read vacuum fluorescent display, wired or wireless networking, multi-room synchronization, and a bunch of other features. The server-side software, SlimServer, is open-source, runs on Windows, Mac OS X, Linux, etc. and has an active community. FLAC support is excellent; nearly the full subset (i.e. mono and stereo files, sample rates from 8kHz-48kHz, 16- and 24-bits per sample) including all standard encoding modes are supported. Also supported: gapless playback, FLAC tags, ReplayGain, automatic transcoding on the server of many audio formats to FLAC for transmission to the box, and external cuesheet support (internal cuesheet support is in the works).
-
- Transporter: Top-of-the-line networked audio player from Slim Devices. Offers all the features of the Squeezebox (see just above), but loaded with pro-grade connectors (including balanced analog outputs and optical/coax/BNC/XLR digital ins and outs), top-end components, and a larger display. FLAC support is also excellent; all standard FLAC encoding modes and tags are supported, as are gapless playback, ReplayGain, cuesheets ... everything the Squeezebox supports, plus support for sample rates up to 96kHz.
-
-
- Several labels and artists have adopted FLAC as a distribution format for their works, offering them for sale or free download online. And many online trading communities that share legal, band-sanctioned recordings of live shows distribute them in FLAC format. These are just some of them.
-
- Artists
-
- A large and growing list of software supports the FLAC format. This list is a sample of open-source software supporting FLAC. Some of the most popular non-free software can be found on the download page in the extras section.
-
- Audio encoders/decoders/converters/taggers:
-
-
BonkEnc: Windows CD ripper, audio encoder and converter
Flacattack: an all-in-one tool that works with EAC (ExactAudioCopy) to encode a CD image to FLAC, embed the cuesheet, add ReplayGain, create lossy files, etc. all in a customizable directory structure
-
grip: ripper for Linux can rip to FLAC via external command
- FLAC 1.2.1 released New in this release is support for all RIFF/AIFF metadata, including Broadcast Wave Format (BWF). There are many other small improvements and bug fixes; see the changelog entry for complete details.
-
- FLAC 1.2.0 released New in this release are small speed improvements, and some new options and bug fixes. Also the decoder has been updated to pave the way for some format improvements, so if your software supports FLAC be sure to check it out. See the changelog entry for complete details.
-
- FLAC 1.1.4 released Increased compression and dramatic speedups for both encoding and decoding are the big improvements in FLAC 1.1.4. There are also several new options and bugfixes. See the changelog entry for complete details.
-
- FLAC 1.1.3 released Almost 2 years in the making, FLAC 1.1.3 is a major release with improved compression, improved cover art and multichannel support, better recovery for corrupted files, many new features and options in the command-line tools, and several bug fixes. For developers, the decoder and encoder APIs have also been simplified and there is a new porting guide. See the changelog entry for complete details.
-
- Winamp 5.31 ships with FLAC support
-
- Winamp 5.31 now includes Nullsoft FLAC plugins for encoding and decoding. The decoder is based on our reference decoder plugin. However the current encoder plugin is based on a pre-release of flake and we recommend to not use it for archival yet.
-
- Volvo's Digital Jukebox plays FLAC
-
- Want some FLAC with your Volvo? Volvo's Digital Jukebox, developed with PhatNoise, is fully integrated with the car's audio system and available for the S60, V70, XC70, and S80. PhatNoise's PhatBox in 2002 was the first device to support FLAC natively and has gained a loyal following. The Digital Jukebox and PhatBox also support Ogg Vorbis.
-
- Live2496 now records directly to FLAC
-
- Live2496, a program that can record 24-bit audio up to 96kHz on a Pocket PC (using Core Sound's PDAudio interface) now supports recording directly to FLAC.
-
- PONTIS' MS330 supports FLAC and Vorbis
-
- The new MS330 Media Server from PONTIS supports FLAC and Ogg Vorbis. In addition to playing from the internal hard disk, CD drive, and 6-in-1 flash card slot, it can also be connected to a network, and even a TV for graphical navigation, cover art, photo viewing, etc.
-
- Squeezebox2 supports FLAC on the box
-
- Slim Devices' new Squeezebox2 supports FLAC decoding on the box, reducing the amount of precious wireless bandwidth required for FLAC playback.
-
- FLAC 1.1.2 released New in this release are small decoding speedups for all platforms, small encoding speedups in fast (non-LPC) mode, streaming support in the XMMS plugin, and several bug fixes. For developers there are also a few additions and changes to the metadata API to make working with tags easier. See the changelog entry for complete details. This release actually wasn't supposed to happen so soon, but needed to be made to fix library naming and build problems in FLAC 1.1.1 that caused trouble for package maintainers, so unless you are having trouble with one of the particular bugs that got fixed in 1.1.2 then there is not much of a need to upgrade.
-
- New Mindawn music store offers FLAC and Vorbis
-
- Mindawn, a new online music service offering FLAC and Ogg Vorbis, is now open. They also have a multi-platform (Windows, Linux, Mac OS X) CD ripper/encoder and are finishing up a multi-platform player.
-
- Bonnaroo soundboard recordings available in FLAC
-
- Several sets from the Bonnaroo Music Festival are available in FLAC, including Dave Matthews & Friends and String Cheese Incident, with more to follow as the soundboard recordings are approved by the bands.
-
- PhatNoise's new Home Digital Media Player supports FLAC
-
- PhatNoise (makers of the PhatBox, which also plays FLAC) just released their Home Digital Media Player. It includes a DMS cartridge slot so you can pop out your FLAC tunes and pop 'em in your car.
-
- Slim's new 'Squeezebox' supports FLAC
-
- Slim Devices' new Squeezebox, the wireless follow-on to the SliMP3 networked audio player, is available and supports FLAC and Ogg Vorbis.
-
- Primus offers live shows in FLAC
-
- Primus is offering soundboard recordings from 2003 Tour de Fromage in FLAC and MP3 on primuslive.com. More info here and here.
-
- FLAC has joined the Xiph project See here for the press release.
-
- Xiph.org is behind other free codecs such as Vorbis, Theora, and Speex. Our merger with Xiph will bring FLAC into the ranks and lead to better integration with the Ogg multimedia framework.
-
- Note that the FLAC format is not changing, native FLAC will continue to exist, and the command-line tools and plugins will continue to work as before. The codec libraries will now be available under Xiph's BSD-like license.
-
- Over the next few days we will be transitioning normal operations off SourceForge and over to Xiph.org; first will be CVS and the web pages, followed by the mailing lists, bug tracker, and file release area. We will keep a mirror here until the transition is complete. It's OK to send patches to the flac-dev list but they won't be able to be integrated until CVS is fully moved over.
-
- FLAC 1.1.0 released I didn't get everything in that I wanted, but it's high time for a release.
-
- Note that the minor version has incremented, meaning forward compatibility was broken (forward compatibility means an earlier decoder can play all streams made by a later decoder). This is only because of a bug in 1.0.4 and prior where the decoder could not properly skip unknown metadata. The stream format itself has not changed and FLAC is still fully backward-compatible. All it means is that a FLAC file containing cue sheet metadata will not decode in older decoders. This bug is fixed in 1.1.0.
-
- Here's what's new:
-
- General:
-
Complete MSVC build system with .dsp projects for everything, which can build both static libs and DLLs, and in debug or release mode, all in the same source tree.
-
- flac:
-
-
Can now decode FLAC to AIFF; new --force-aiff-format option.
-
New --cuesheet option for reading and storing a cuesheet when encoding a whole CD. Automatically creates seek points for track and index points unless --no-cued-seekpoints is used.
-
New --replay-gain option for calculating ReplayGain values and storing them as tags.
-
New --until option complements --skip to stop decoding at a specified point in the stream.
-
--skip and --until now also accept mm:ss.ss format.
-
New -S #s flavor to specify seekpoints every '#' number of seconds.
-
flac now defaults to -S 10s instead of -S 100x for the seek table.
-
flac now adds a 4k PADDING block by default (turn off with --no-padding).
-
Fixed a bug with --skip and AIFF-to-FLAC encoding.
-
Fixed a bug where decoding a FLAC file whose total_samples==0 in the STREAMINFO would corrupt the WAVE header.
-
- metaflac:
-
-
New --import-cuesheet-from option for reading and storing a cuesheet to a FLAC-encoded CD. Automatically creates seek points for track and index points unless --no-cued-seekpoints is used.
-
New --export-cuesheet-to option for writing a cuesheet from a FLAC file for use with CD authoring software.
-
New --add-replay-gain option for calculating ReplayGain values and storing them as tags.
-
New --add-seekpoint option to add seekpoints to an existing FLAC file. Includes new --add-seekpoint=#s flavor to add seekpoints every '#' number of seconds.
-
- XMMS plugin:
-
-
Configurable sample resolution conversion with dither.
-
ReplayGain support with customizable noise shaping, pre-amp, and optional hard limiter.
-
New Vorbis comment editor.
-
File info now works.
-
Bitrate now shows the smoothed instantaneous bitrate.
-
Uses the ARTIST tag if there is no PERFORMER tag.
-
- Winamp2 plugin:
-
-
Configurable sample resolution conversion with dither.
-
ReplayGain support with customizable noise shaping, pre-amp, and optional hard limiter.
-
File info now works.
-
Uses the ARTIST tag if there is no PERFORMER tag.
-
- Libraries (developers take note!):
-
-
All code and tests are instrumented for Valgrind. All tests run Valgrind-clean, meaning no memory leaks or buffer over/under-runs.
-
Separate 64-bit datapath through the filter in libFLAC for better compression of >16 bps files.
-
FLAC__metadata_object_new(FLAC__METADATA_TYPE_VORBIS_COMMENT) now sets the vendor string.
-
The documentation on the usage of FLAC::Iterator::get_block() in libFLAC++ has an important correction. If you use this class make sure to read this.
- FLAC 1.0.4 released There are a lot of improvements since 1.0.3; let's get right to it:
-
- Plugins:
-
-
Support for Vorbis comments, ID3 v1 and v2 tags.
-
Configurable title formatting and charset conversion in XMMS plugin.
-
Support for 8- and 24-bit FLAC files. There is a compile-time option for raw 24-bit output or 24bps-to-16bps linear dithering (the default).
-
- flac:
-
-
Improved option parser (now uses getopt).
-
AIFF input support (thanks to Brady Patterson).
-
Small decoder speedup.
-
--sector-align now supported for raw input files.
-
New -T, --tag options for adding Vorbis comments while encoding.
-
New --serial-number option for use with --ogg.
-
Automatically writes vendor string in Vorbis comments.
-
Drastically reduced memory requirements.
-
Fixed bug where extra fmt/data chunks that were supposed to be skipped were not getting skipped.
-
Fixed bug in granulepos setting for Ogg FLAC streams.
-
Fixed memory leak when encoding multiple files with -V.
-
- metaflac:
-
-
UTF-8 support in Vorbis comments.
-
New --import-vc-from and --export-vc-to commands for importing/exporting Vorbis comments from/to a file. For example, the following can be used to copy tags back and forth:
-
- metaflac --export-vc-to=- --no-utf8-convert file.flac | vorbiscomment --raw -w file.ogg
- vorbiscomment --raw -l file.ogg | metaflac --import-vc-from=- --no-utf8-convert file.flac
-
-
-
Fixed bug #606796 where metaflac was failing on read-only files.
-
- Libraries:
-
-
All APIs now meticulously documented via Doxygen. See here.
-
New libOggFLAC and libOggFLAC++ libraries. These wrap around libFLAC to provide encoding and decoding of Ogg FLAC streams, providing interfaces similar to the ones of the native FLAC libraries. These are also documented via Doxygen.
-
New FLAC__SeekableStreamEncoder and FLAC__FileEncoder in libFLAC simplify common encoding tasks.
-
New verify mode in all encoders.
-
FLAC__stream_encoder_finish() now resets the defaults just like the stream decoders.
-
Drastically reduced memory requirements of encoders and decoders.
-
Encoder now automatically writes vendor string in VORBIS_COMMENT block.
-
Encoding speedup of fixed predictors and MD5 speedup for 16bps mono/stereo signals on x86 (thanks to Miroslav Lichvar).
-
Fixed bug in metadata interface where a bps in STREAMINFO > 16 was incorrectly parsed.
-
Fixed bug where aborting stream decoder could cause infinite loop.
- Rio Receiver FLAC support has been added to the Rio Receiver and Dell Digital Audio Receiver via David Flowerday's RioPlay client. See here for the announcement.
-
- FLAC 1.0.3 released Although by version number only a 0.0.1 increment, this release is significant. Remember, micro-revisions mean the FLAC format remains both forward and backward compatible, however, the libFLAC API has changed for the better.
-
- New features:
-
-
24-bit input support restored in flac.
-
Decoder speedup in libFLAC, which is directly passed on to the command-line decoder and plugins.
-
New -F option to flac to continue decoding in spite of errors.
-
Correctly set granulepos in Ogg packets so seeking Ogg FLAC streams will be easier.
-
New VORBIS_COMMENT metadata block for tagging with Vorbis-style comments.
-
Vastly improved metaflac, now with many editing and tagging options.
-
Partial id3v1 support in Winamp plugins.
-
Updated Winamp 3 plugin.
-
Note: new semantics for -P option in flac.
-
Note: removed -R option in flac.
-
- New library features:
-
-
Previously mentioned decoder speedup in libFLAC.
-
New metadata interface to libFLAC for manipulating metadata in FLAC files.
-
New libFLAC++ API, an object wrapper around libFLAC.
-
New VORBIS_COMMENT metadata block for tagging with Vorbis-style comments.
-
Customizable metadata filtering by type in decoders.
-
Stream encoder can take an arbitrary list of metadata blocks, instead of just one SEEKTABLE and/or PADDING block.
-
- Bugs fixed:
-
-
Fixed bug with using pipes under Windows.
-
Fixed several bugs in the plugins and made them more robust in general.
-
Fixed bug in flac where decoding to WAVE of a FLAC file with 0 for total_samples in the STREAMINFO block yielded a WAVE chunk of 0 size.
- FLAC goes hardware!PhatNoise has become the first commercial hardware platform to support FLAC. Firmware is now available for the Phatbox player to play FLAC files. See here for details.
-
- FLAC 1.0.2 released This release is only to fix a bug that was causing some of the plugins to crash sporadically. It can also affect libFLAC users that reuse one file decoder instance for multiple files; see here for more.
-
- FLAC 1.0.1 released The core codec is unchanged but there have been some features added and some bugs fixed:
-
- New features for users:
-
-
Support for Ogg-FLAC, i.e. flac can now read and write FLAC streams using Ogg as the transport layer.
-
New Winamp 3 plugin based on the Wasabi Beta 1 SDK.
-
New utilities for adding FLAC support to the Monkey's Audio GUI (see how).
-
Mac OS X support. The download area now contains an OS X binary release.
-
Mingw32 support.
-
Better handling of MS-specific 'fmt' chunks in WAVE files.
-
- New features for developers:
-
-
Added a SeekableStreamDecoder layer between StreamDecoder and FileDecoder. This makes it easier to use libFLAC in situations where files have been abstracted away. See the latest documentation for more. The interface for the StreamDecoder and FileDecoder remain the same and are still binary-compatible with libFLAC 1.0.
-
Drastically reduced the stack requirements of the encoder.
-
- Bug fixes:
-
-
Fixed a serious bug with flac and raw input where the encoder was trying to rewind when it shouldn't, which would add 12 junk samples to the encoded file. This was not present in WAVE encoding.
-
Fixed a minor bug in libFLAC with setting the file name to stdin on a file decoder.
-
Fixed a minor bug in libFLAC where multiple calls to setting the file name on a file decoder caused leaked memory.
-
Fixed a minor bug in metaflac, now correctly skips an id3v2 tag if present.
-
Fixed a minor bug in metaflac, now correctly skips long metadata blocks.
- FLAC 1.0 is out! It's finally here. There are a few new features but mostly it is minor bug fixes since 0.10:
-
-
New '--sector-align' option to flac which aligns a group of encoded files on CD audio sector boundaries.
-
New '--output-prefix' option to flac to allow the user to prepend a prefix to all output filenames (useful, for example, for encoding/decoding to a different directory).
-
Better WAVE autodetection (doesn't rely on ungetc() anymore).
-
Cleaner one-line encoding/decoding stats.
-
Changes to the libFLAC interface and type names to make binary compatibility easier to maintain in the future.
-
New '--sse-os' option to 'configure' to enable faster SSE-based routines.
-
Another (hopefully last) fix to the Winamp 2 plugin.
-
Slightly improved Rice parameter estimation.
-
Bug fixes for some very rare corner cases when encoding.
- FLAC 0.10 released. This is probably the final beta. There have been many improvements in the last two months:
-
-
Both the encoder and decoder have been significantly sped up. Aside from C improvements, the code base now has an assembly infrastructure that allows assembly routines for different architectures to be easily integrated. Many key routines have now have faster IA-32 implementations (thanks to Miroslav).
-
A new metadata block SEEKTABLE has been defined to hold an arbitrary number of seek points, which speeds up seeking within a stream.
-
flac now has a command-line usage similar to 'gzip'; make sure to see the latest documentation for the new usage. It also attempts to preserve the input file's timestamp and permissions.
-
The -# options in flac have been tweaked to yield the best compression-to-encode-time ratios. The new default is -5.
-
flac can now usually autodetect WAVE files when encoding so that -fw is usually not needed when encoding from stdin.
-
The WAVE reader in flac now just ignores (with a warning) unsupported sub-chunks instead of aborting with an error.
-
Added an option '--delete-input-file' to flac which automatically deletes the input after a successful encode/decode.
-
Added an option '-o' to flac to force the output file name (the old usage of "flac - outputfilename" is no longer supported).
-
Changed the XMMS plugin to send smaller chunks of samples (now 512) so that visualization is not slow.
-
Fixed a bug in the stream decoder where the decoded samples counter got corrupted after a seek.
- FLAC 0.9 released. There were some format changes that broke backwards compatibility but these should be the last (see below). Also, there have been several bug fixes and some new features:
-
-
FLAC's sync code has been lengthened to 14 bits from 9 bits. This should enable a faster and more robust synchronization mechanism.
-
Two reserved bits were added to the frame header.
-
A CRC-16 was added to the FLAC frame footer, and the decoder now does frame integrity checking based on the CRC.
-
The format now includes a new subframe field to indicate when a subblock has one or more 0 LSBs for all samples. This increases compression on some kinds of data.
-
Added two options to the analysis mode, one for including the residual signal in the analysis file, and one for generating gnuplot files of each subframe's residual distribution with some statistics. See the latest documentation.
-
XMMS plugin now supports 8-bit files.
-
Fixed a bug in the Winamp2 plugin where the audio sounded garbled.
-
Fixed a bug in the Winamp2 plugin where Winamp would hang sporadically at the end of a track (c.f. bug #231197).
-
- FLAC is on track for an official 1.0 release soon.
-
- FLAC 0.8 released. This release is a result of extensive testing and fixes several bugs encountered when pushing the encoder to the limit. I'm pretty confident in the stability of the encoder/decoder now for all kinds of input. There have also been several features added. Here is a complete list of the changes since 0.7:
-
-
Created a new utility called metaflac. It is a metadata editor for .flac files. Right now it just lists the contents of the metadata blocks but eventually it will allow update/insertion/deletion.
-
Added two new metadata blocks: PADDING which has an obvious function, and APPLICATION, which is meant to be open to third party applications. See the latest format docs for more info, or the new id registration page.
-
Added a -P option to flac to reserve a PADDING block when encoding.
-
Added support for 24-bit files to flac (the FLAC format always supported it).
-
Started the Winamp3 plugin.
-
Greatly expanded the test suite, adding more streams (24-bit streams, noise streams, non-audio streams, more patterns) and more option combinations to the encoder. The test suite runs about 30 streams and over 5000 encodings now.
-
Fixed a bug in libFLAC that happened when using an exhaustive LPC coefficient quantization search with 8 bps input.
-
Fixed a bug in libFLAC where the error estimation in the fixed predictor could overflow.
-
Fixed a bug in libFLAC where LPC was attempted even when the autocorrelation coefficients implied it wouldn't help.
-
Reworked the LPC coefficient quantizer, which also fixed another bug that might occur in rare cases.
-
Really fixed the '-V overflow' bug (c.f. bug #231976).
-
Fixed a bug in flac related to the decode buffer sizing.
-
- FLAC is very close to being ready for an official release. The only known problems left are with the Winamp plugins, which should be fixed soon, and pipes with MSVC.
-
- FLAC 0.6 released. The encoder is now much faster. The -m option has been sped up by 4x and -r improved, meaning that in the default compression mode (-6), encoding should be at least 3 times faster. Other changes:
-
-
Some bugs related to flac and pipes were fixed (see here for the discussion).
-
A "loose mid-side" (-M) option to the encoder has been added, which adaptively switches between independent and mid-side coding, instead of the exhaustive search that -m does.
-
An analyze mode (-a) has been added to flac. This is useful mainly for developers; currently it will dump info about each frame and subframe to a file. It's a text file in a format that can be easily processed by scripts; a separate analysis program is in the works.
-
The source now has an autoconf/libtool-based build system. This should allow the source to build "out-of-the-box" on many more platforms.
- FLAC 0.5 released. This is the first beta version of FLAC. Being beta, there will be no changes to the format that will break older streams, unless a serious bug involving the format is found. What this means is that, barring such a bug, streams created with 0.5 will be decodable by future versions. This version also includes some new features:
-
-
An MD5 signature of the unencoded audio is computed during encoding, and stored in the Encoding metadata block in the stream header. When decoding, flac will now compute the MD5 signature of the decoded data and compare it against the signature in the stream header.
-
A test mode (-t) has been added to flac. It works like decode mode but doesn't write an output file.
FLAC 0.4 released. This version fixes a bug in the constant subframe detection. More importantly, a verify option (-V) has been added to flac that verifies the encoding process. With this option turned on, flac will create a parallel decoder while encoding to make sure that the encoded output decodes to exactly match the original input. In this way, any unknown bug in the encoder will be caught and flac will abort with an error message.
FLAC debuts on SourceForge. The FLAC project is now being hosted on SourceForge. Visit the FLAC project page to join the mailing list or sign up as a developer.
- This page specifies the way in which compressed FLAC data is encapsulated in an Ogg transport layer. It assumes basic knowledge of the FLAC format and Ogg structure and framing.
+ This page specifies the way in which compressed FLAC data is encapsulated in an Ogg transport layer. It assumes basic knowledge of the FLAC format and Ogg structure and framing.
The original FLAC format includes a very thin transport system. This system of compressed FLAC audio data mixed with a thin transport has come to be known as 'native FLAC'. The transport consists of audio frame headers and footers which contain synchronization patterns, timecodes, and checksums (but notably not frame lengths), and a metadata system. It is very lightweight and does not support more elaborate transport mechanisms such as multiple logical streams, but it has served its purpose well.
@@ -101,7 +93,7 @@
FLAC packets may span page boundaries.
- The granule position of pages containing FLAC audio follows the same semantics as that for Ogg-encapsulated Vorbis as described here.
+ The granule position of pages containing FLAC audio follows the same semantics as that for Ogg-encapsulated Vorbis as described here.
Redundant fields in the STREAMINFO packet may be set to zero (indicating "unknown" in native FLAC), which also facilitates single-pass encoding. These fields are: the minimum and maximum frame sizes, the total samples count, and the MD5 signature. "Unknown" values for these fields will not prevent a compliant native FLAC or Ogg FLAC decoder from decoding the stream.
@@ -124,12 +116,6 @@
Copyright (c) 2011-2013 Xiph.Org Foundation
-
-
-
-
-
-
diff --git a/doc/html/ru/Makefile.am b/doc/html/ru/Makefile.am
deleted file mode 100644
index 9483583d..00000000
--- a/doc/html/ru/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-# FLAC - Free Lossless Audio Codec
-# Copyright (C) 2001-2009 Josh Coalson
-# Copyright (C) 2011-2013 Xiph.Org Foundation
-#
-# This file is part the FLAC project. FLAC is comprised of several
-# components distributed under different licenses. The codec libraries
-# are distributed under Xiph.Org's BSD-like license (see the file
-# COPYING.Xiph in this distribution). All other programs, libraries, and
-# plugins are distributed under the GPL (see COPYING.GPL). The documentation
-# is distributed under the Gnu FDL (see COPYING.FDL). Each file in the
-# FLAC distribution contains at the top the terms under which it may be
-# distributed.
-#
-# Since this particular file is relevant to all components of FLAC,
-# it may be distributed under the Xiph.Org license, which is the least
-# restrictive of those mentioned above. See the file COPYING.Xiph in this
-# distribution.
-
-docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/html/ru
-
-doc_DATA = \
- authors.html \
- comparison.html \
- developers.html \
- documentation.html \
- download.html \
- features.html \
- format.html \
- goals.html \
- id.html \
- index.html \
- links.html \
- news.html
-
-EXTRA_DIST = $(doc_DATA)
diff --git a/doc/html/ru/authors.html b/doc/html/ru/authors.html
deleted file mode 100644
index 00d7e195..00000000
--- a/doc/html/ru/authors.html
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-FLAC: авторы
-
-
-
-
Целью этой страницы является сравнение FLAC с другими аналогичными кодеками. Исследование затрагивает не только уровень и время кодирования/декодирования, но и другие важные для пользователя возможности кодеков. Выбирая для себя кодек, помните о следующем:
-
-
-
Насколько я знаю, только два кодека (FLAC и WavPack) полностью свободны и активно поддерживаются (исходные тексты Shorten и Monket's Audio доступны, но лицензия более ограничена). Большинство предоставляют бесплатные скомпилированные программы без доступа к исходным кодам, следовательно, выбирая их, вы попадаете в зависимость от производителя. У вас уже не будет шанса портировать программу на другую операционную систему или исправить ошибку, если она появится и этого не захочет сделать автор. Это может оказаться серьезным недостатком, если формат не является всемирно признаным.
-
-
Уровень и время сжатия для flac характеризуют только конкретную версию кодера. Они не выявляют предела для всех кодеров и формата FLAC, так как формат открытый и расширяемый и каждый может написать улучшенную версию. Можно с большой долей уверенности сказать, что кодек будет улучшаться.
-
-
Поддержка потокового формата у FLAC дает ему дополнительное преимущество над теми кодеками, которые такой возможности не имеют.
-
-
-
Я постараюсь обновлять информацию на этой странице как можно чаще, однако, если вы заметите какую-либо неточность, сообщите мне и я исправлю ее.
-
-
Рассматриваемые кодеры (кроме flac):
-
-
-
Bonk - открытый кодек. Нет отдельной библиотеки и поддержки плейера.
-
-
Kexis - открытый кодек. Похоже, что проект прекратился на начальной стадии разработки. Нет поддержки плейера.
-
-
La - закрытый симметрический, адаптивный кодек. Предоставляются скомпилированные версии для Windows и Linux. Дает максимальный уровень сжатия, но работает очень медленно.
-
-
LPAC - поставляется только скомпилированным. Доступны версии не только для Windows, хотя плагин есть только для Winamp.
-
-
Monkey's Audio - симметрический, адаптивный кодек с хорошим уровнем сжатия. Исходные тексты доступны по ограниченной лицезии. Доступны две версии: от создателя проекта Мэтта Ошленда и от Франка Клемма. В тестах использовалась оригинальная версия.
-
-
Ogg Squish - открытый кодек, но более неподдерживаемый. Тестируемая версия 0.98 была последней, которую можно найти. Версии для Windows не было, но судя по результатам, полученным под Unix, это "быстрый" кодек.
-
-
optimFROG - закрытый кодек для Windows и Linux с плагинами для Winamp и XMMS. Медленный, но имеет высокий уровень сжатия.
RKAU - закрытый кодек только для Windows. Не обновлялся в течение 2 лет.
-
-
Shorten - наиболее распространенный кодек с доступными исходными текстами.
-
-
WaveZIP - закрытый архиватор только для Windows. Использует движок MUSICompress[tm], который, предположительно, запатентован. Я хотел сделать ссылку на компанию, написавшую WaveZIP (GadgetLabs), но они завершили свою деятельность (может, потому что пытались продать то, не должно ничего стоить).
-
-
WavPack - открытый кодек только для Windows, выпущенный под лицензией BSD. Имеет хорошее соотношение между уровнем и временем сжатия.
-
-
-
Я не смог достать копии кодеков AudioPack и WavARC.
-
-
Если не принимать во внимание уровень и скорость сжатия (как вы увидите позже, большинство кодеков имеют сходную производительность), то субъективная картина, основанная на базовых возможностях будет выглядеть следующим образом. Основное преимущество имеют свободные кодеки, так как это предоставляет Вам возможность добавлять все, что необходимо. Кроме того, проекты с открытыми исходниками обычно развиваются и улучшаются быстрее. Второй важный для пользователя фактор - это поддержка разных операционных систем и/или возможность использования плагинов для плейеров.
Linux, Windows, Mac OS X, *BSD, Solaris, OS/2, BeOS и другие
-
-
-
Shorten v3.2
-
да (огранич.)
-
да (Winamp, XMMS)
-
нет
-
нет
-
да (только v3)
-
своб.
-
Linux, Windows, Mac OS 9, Mac OS X, *BSD, Solaris и другие
-
-
-
WavPack v3.97a
-
да
-
да (Winamp)
-
нет
-
нет
-
да
-
своб.
-
Windows
-
-
-
Monkey's Audio v3.96
-
да (огранич.)
-
да (Winamp, MediaJukebox, dBpowerAMP)
-
нет
-
нет
-
да
-
беспл.
-
Windows, Linux
-
-
-
Ogg Squish 0.98
-
да
-
нет?
-
нет
-
да
-
да
-
своб.
-
Linux, Windows, другие UNIX
-
-
-
Bonk 0.5
-
да
-
да (XMMS)
-
нет
-
нет
-
нет
-
своб.
-
Linux, Windows, другие UNIX
-
-
-
La 0.3c
-
нет
-
да (Winamp, XMMS)
-
нет
-
нет
-
да
-
беспл.
-
Windows, Linux
-
-
-
optimFrog 4.21
-
нет
-
да (Winamp, XMMS)
-
нет
-
нет
-
да
-
беспл.
-
Windows, Linux
-
-
-
LPAC v1.31 (codec 3.0)
-
нет
-
да (Winamp)
-
нет
-
нет?
-
да
-
беспл.
-
Windows, Linux, Solaris
-
-
-
RKAU v1.07
-
нет
-
да (Winamp)
-
нет
-
нет
-
да
-
беспл.
-
Windows
-
-
-
Kexis 0.2.2
-
да
-
нет
-
нет
-
нет
-
нет
-
своб.
-
Linux, Windows, другие UNIX
-
-
-
WaveZIP v2
-
нет
-
нет
-
нет
-
нет
-
нет
-
беспл. (24-бит за $)
-
Windows
-
-
-
Pegasus-SPS
-
нет
-
нет
-
нет
-
нет
-
нет
-
$39 (trial)
-
Windows
-
-
-
-
Для тестирования использовался PII-333 с 256Mб и ОС Windows NT SP5. К сожалению, именно Windows явлется единственной операционной системой, под которой могут работать все кодеки и где можно добиться равных условий работы.
-
-
Входными данными являются только файлы, записанные с аудио-CD. В будущем могут появиться тесты для других видов информации (например, речь, другие частоты дискретизации и т.д.). Представлены 14 треков различных стилей.
-
-
В первой таблице приведены общие результаты по всем трекам. В остальных таблицах приведены результаты для каждого трека. В общей таблице приведено большое количество режимов, а на остальых лишь самые интересные
-
-
В общей таблице результаты отсортированы по уровню сжатия, которое вычисляется как среднее из уровней для всех треков, чтобы длинные треки не имели большего веса при тестировании. В таблицах для отдельных треков приведен уровень сжатия ( = размер сжатого файла / размер несжатого файла).
-
-
Необходимо сделать несколько замечаний:
-
-
flac -5 является "золотой серединой", обеспечивая за малое время достаточный уровень сжатия. Декодирование таких файлов также проходит быстро. Это объясняется тем, что FLAC производит основную обработку на стадии кодирования, которая используется однократно, в то время как при адаптивной схеме кодеру и декодеру нужно одинаковое количество ресурсов. Поэтому FLAC лучше приспособлен для воспроизведения на менее мощных устройствах и это одна из причин, по которой только FLAC поддерживается на аппаратном уровне.
-
Настроки качества LPAC становятся нестабильными при использовании ключа -r (добавляет возможность поиска при воспроизведении).
-
У RKAU размер файла также может возрастать в режиме 'high' (высокая степень сжатия).
-
Следующий факт обративший на себя внимание состоит в том, что патентованные и платные кодеки оказываются худшими по большинству показателей. SPS выглядит настолько устаревшим и корявым, что я забросил его тестирование после кодирования одного файла.
-
-
В таблице с общими результатами приведены только самые "экономичные" режимы (которые дают высокий уровень сжатия за приемлемый отрезок времени).
-
-
Таблица 2. Общие результаты.
-
-
-
Кодек
-
Время сжатия
-
Время распаковки
-
Сжатый размер
-
Общий уровень сжатия
-
Средний уровень сжатия
-
-
La 0.3c
151:13.16
145:49.78
375.76 MB
0.4814
0.4986
-
Monkey's Audio 3.96 (extra high)
26:52.07
28:44.55
386.96 MB
0.4958
0.5119
-
optimFROG 4.21 (mode 1 @ 4x)
24:19.58
25:37.44
389.04 MB
0.4984
0.5151
-
Monkey's Audio 3.96 (high)
13:59.07
15:30.69
391.76 MB
0.5019
0.5179
-
optimFROG 4.21 (mode 0 @ 4x)
16:34.96
17:57.28
394.69 MB
0.5056
0.5223
-
Monkey's Audio 3.96 (normal)
11:42.34
13:11.29
395.04 MB
0.5061
0.5223
-
RKAU 1.07 (normal)
53:46.74
23:31.10
395.71 MB
0.5070
0.5229
-
RKAU 1.07 (fast)
26:35.34
20:13.22
399.25 MB
0.5115
0.5262
-
WavPack 3.97a (high)
13:32.02
14:39.12
399.60 MB
0.5119
0.5278
-
LPAC 1.40 (-r, medium)
18:52.79
10:43.32
403.52 MB
0.5170
0.5319
-
Monkey's Audio 3.96 (fast)
9:05.59
10:51.09
401.63 MB
0.5145
0.5327
-
WavPack 3.97a (normal)
6:50.12
8:13.41
409.33 MB
0.5244
0.5424
-
flac 1.1.0 (-5, default)
12:54.19
7:08.80
413.46 MB
0.5297
0.5459
-
Bonk 0.5
36:56.36
27:09.35
418.65 MB
0.5364
0.5543
-
flac 1.1.0 (-3)
9:51.58
7:00.92
419.29 MB
0.5372
0.5544
-
Ogg Squish 0.98
?
?
431.08 MB
0.5522
0.5714
-
Shorten 3.2a (-p0 -b256, default)
9:44.48
6:31.74
433.56 MB
0.5555
0.5729
-
Kexis 0.2.2
17:49.06
14:53.90
434.33 MB
0.5564
0.5750
-
WavPack 3.97a (fast)
5:20.17
5:12.38
441.88 MB
0.5661
0.5857
-
WaveZIP
8:41.72
?
452.95 MB
0.5802
0.5986
-
RIFF WAVE
70:11.90
70:11.90
780.56 MB
1.0000
1.0000
-
-
-
-
-
Результаты тестирования для всех кодеков во всех режимах.
-
-
Таблица 3. Общие результаты.
-
-
-
Кодек
-
Время сжатия
-
Время распаковки
-
Сжатый размер
-
Общий уровень сжатия
-
Средний уровень сжатия
-
-
La 0.3c
151:13.16
145:49.78
375.76 MB
0.4814
0.4986
-
optimFROG 4.21 (mode 4 @ 2x)
183:05.29
184:13.42
386.13 MB
0.4947
0.5105
-
optimFROG 4.21 (mode 4 @ 1x)
338:34.96
339:23.24
386.22 MB
0.4948
0.5105
-
optimFROG 4.21 (mode 4 @ 4x)
105:15.85
106:36.23
386.21 MB
0.4948
0.5107
-
optimFROG 4.21 (mode 3 @ 2x)
92:48.79
93:49.75
386.52 MB
0.4952
0.5110
-
optimFROG 4.21 (mode 3 @ 1x)
161:51.00
162:10.62
386.55 MB
0.4952
0.5110
-
optimFROG 4.21 (mode 3 @ 4x)
58:18.40
59:30.51
386.71 MB
0.4954
0.5114
-
Monkey's Audio 3.96 (extra high)
26:52.07
28:44.55
386.96 MB
0.4958
0.5119
-
optimFROG 4.21 (mode 2 @ 1x)
68:22.58
69:29.50
387.71 MB
0.4967
0.5128
-
optimFROG 4.21 (mode 2 @ 2x)
44:17.55
45:31.33
387.72 MB
0.4967
0.5129
-
optimFROG 4.21 (mode 2 @ 4x)
32:16.85
33:30.92
387.93 MB
0.4970
0.5133
-
optimFROG 4.21 (mode 1 @ 1x)
43:00.91
44:13.07
388.71 MB
0.4980
0.5146
-
optimFROG 4.21 (mode 1 @ 2x)
30:35.00
31:50.50
388.81 MB
0.4981
0.5147
-
optimFROG 4.21 (mode 1 @ 4x)
24:19.58
25:37.44
389.04 MB
0.4984
0.5151
-
Monkey's Audio 3.96 (high)
13:59.07
15:30.69
391.76 MB
0.5019
0.5179
-
optimFROG 4.21 (mode 0 @ 1x)
20:51.21
22:08.44
394.35 MB
0.5052
0.5218
-
optimFROG 4.21 (mode 0 @ 2x)
17:59.86
19:20.53
394.48 MB
0.5054
0.5220
-
optimFROG 4.21 (mode 0 @ 4x)
16:34.96
17:57.28
394.69 MB
0.5056
0.5223
-
Monkey's Audio 3.96 (normal)
11:42.34
13:11.29
395.04 MB
0.5061
0.5223
-
RKAU 1.07 (normal)
53:46.74
23:31.10
395.71 MB
0.5070
0.5229
-
RKAU 1.07 (high)
136:56.62
27:55.98
395.89 MB
0.5072
0.5235
-
RKAU 1.07 (fast)
26:35.34
20:13.22
399.25 MB
0.5115
0.5262
-
WavPack 3.97a (high)
13:32.02
14:39.12
399.60 MB
0.5119
0.5278
-
LPAC 1.40 (-r, medium)
18:52.79
10:43.32
403.52 MB
0.5170
0.5319
-
LPAC 1.40 (-r, extra high)
30:30.93
12:20.26
404.08 MB
0.5177
0.5322
-
LPAC 1.40 (-r, high)
24:56.56
11:51.64
404.03 MB
0.5176
0.5323
-
Monkey's Audio 3.96 (fast)
9:05.59
10:51.09
401.63 MB
0.5145
0.5327
-
WavPack 3.97a (normal)
6:50.12
8:13.41
409.33 MB
0.5244
0.5424
-
flac 1.1.0 (-8)
55:02.38
7:07.59
411.88 MB
0.5277
0.5437
-
flac 1.1.0 (-5, default)
12:54.19
7:08.80
413.46 MB
0.5297
0.5459
-
Bonk 0.5
36:56.36
27:09.35
418.65 MB
0.5364
0.5543
-
flac 1.1.0 (-3)
9:51.58
7:00.92
419.29 MB
0.5372
0.5544
-
flac 1.1.0 (-1)
8:37.94
7:15.87
432.32 MB
0.5539
0.5706
-
Ogg Squish 0.98
?
?
431.08 MB
0.5522
0.5714
-
Shorten 3.2a (-p0 -b256, default)
9:44.48
6:31.74
433.56 MB
0.5555
0.5729
-
Kexis 0.2.2
17:49.06
14:53.90
434.33 MB
0.5564
0.5750
-
Shorten 3.2a (-p8 -b2048)
12:00.04
7:25.12
438.86 MB
0.5622
0.5810
-
WavPack 3.97a (fast)
5:20.17
5:12.38
441.88 MB
0.5661
0.5857
-
WaveZIP
8:41.72
?
452.95 MB
0.5802
0.5986
-
RIFF WAVE
70:11.90
70:11.90
780.56 MB
1.0000
1.0000
-
-
-
-
-
-
Таблица 4. Результаты для отдельных треков.
-
-
-
-
-Трек
-
-Кодек
-
-Время сжатия
-
-Время распаковки
-
-Сжатый размер
-
-Уровень сжатия
-
-
-
- Dream Theater 6:00
-
-
-
-
La 0.3c
11:37.69
11:15.37
42.72 MB
0.7306
-
Monkey's Audio 3.96 (extra high)
2:05.36
2:13.44
43.24 MB
0.7395
-
optimFROG 4.21 (mode 1 @ 4x)
1:53.28
2:00.45
43.26 MB
0.7398
-
optimFROG 4.21 (mode 4 @ 1x)
25:32.41
25:38.15
43.26 MB
0.7398
-
Monkey's Audio 3.96 (high)
1:07.92
1:13.20
43.39 MB
0.7421
-
optimFROG 4.21 (mode 0 @ 4x)
1:17.95
1:25.67
43.42 MB
0.7426
-
Monkey's Audio 3.96 (normal)
0:57.04
1:03.37
43.48 MB
0.7436
-
WavPack 3.97a (high)
1:10.34
1:08.61
43.49 MB
0.7438
-
RKAU 1.07 (normal)
1:57.68
1:33.38
43.81 MB
0.7493
-
Monkey's Audio 3.96 (fast)
0:44.33
0:51.22
43.97 MB
0.7520
-
LPAC 1.40 (-r, normal)
1:27.61
0:56.18
44.12 MB
0.7545
-
flac 1.1.0 (-8)
4:18.72
0:37.28
44.33 MB
0.7582
-
WavPack 3.97a (normal)
0:40.24
0:40.70
44.34 MB
0.7583
-
Bonk 0.5
2:56.03
2:11.58
44.35 MB
0.7585
-
flac 1.1.0 (-5, default)
1:01.31
0:37.01
44.41 MB
0.7595
-
Shorten 3.2a (-p8 -b2048)
0:58.81
0:37.63
44.75 MB
0.7654
-
flac 1.1.0 (-3)
0:49.05
0:36.44
44.78 MB
0.7659
-
Ogg Squish 0.98
?
?
45.17 MB
0.7725
-
Pegasus-SPS
4:45.00
?
45.40 MB
0.7765
-
WavPack 3.97a (fast)
0:18.66
0:18.59
46.31 MB
0.7920
-
Kexis 0.2.2
1:24.83
1:10.93
46.52 MB
0.7956
-
flac 1.1.0 (-1)
0:44.00
0:36.91
46.65 MB
0.7978
-
Shorten 3.2a (-p0 -b256, default)
0:47.75
0:32.56
46.68 MB
0.7984
-
WaveZIP
0:38.99
?
47.22 MB
0.8077
-
RIFF WAVE
5:47.56
5:47.56
58.47 MB
1.0000
-
-
-
-
-
- Eddie Warner Titus
-
-
-
-
La 0.3c
5:24.56
5:13.29
14.76 MB
0.5298
-
LPAC 1.40 (-r, normal)
0:40.76
0:21.21
14.77 MB
0.5298
-
flac 1.1.0 (-8)
1:57.87
0:15.05
15.01 MB
0.5385
-
optimFROG 4.21 (mode 1 @ 4x)
0:53.39
0:55.52
15.01 MB
0.5385
-
optimFROG 4.21 (mode 4 @ 1x)
12:02.54
12:03.76
15.02 MB
0.5390
-
flac 1.1.0 (-5, default)
0:28.17
0:15.05
15.12 MB
0.5424
-
optimFROG 4.21 (mode 0 @ 4x)
0:36.81
0:39.19
15.13 MB
0.5429
-
RKAU 1.07 (normal)
0:54.82
0:42.71
15.15 MB
0.5435
-
Monkey's Audio 3.96 (extra high)
0:58.52
1:01.81
15.25 MB
0.5471
-
Monkey's Audio 3.96 (high)
0:30.88
0:33.55
15.34 MB
0.5505
-
Monkey's Audio 3.96 (normal)
0:25.45
0:28.37
15.35 MB
0.5509
-
flac 1.1.0 (-3)
0:22.21
0:14.72
15.43 MB
0.5538
-
WavPack 3.97a (high)
0:32.15
0:31.18
15.57 MB
0.5585
-
Monkey's Audio 3.96 (fast)
0:19.85
0:22.90
15.58 MB
0.5592
-
Shorten 3.2a (-p0 -b256, default)
0:21.16
0:13.55
15.78 MB
0.5662
-
WavPack 3.97a (normal)
0:18.25
0:17.67
15.86 MB
0.5692
-
Shorten 3.2a (-p8 -b2048)
0:26.82
0:16.75
16.21 MB
0.5818
-
flac 1.1.0 (-1)
0:19.75
0:15.76
16.39 MB
0.5880
-
Bonk 0.5
1:22.01
1:00.12
16.73 MB
0.6003
-
Ogg Squish 0.98
?
?
17.03 MB
0.6112
-
Kexis 0.2.2
0:38.72
0:32.25
17.40 MB
0.6242
-
WavPack 3.97a (fast)
0:08.19
0:08.79
17.49 MB
0.6275
-
WaveZIP
0:17.55
?
17.89 MB
0.6420
-
RIFF WAVE
2:35.67
2:35.67
27.87 MB
1.0000
-
-
-
-
-
- Tool Forty-six & 2
-
-
-
-
La 0.3c
12:34.97
12:09.08
37.42 MB
0.5824
-
optimFROG 4.21 (mode 4 @ 1x)
27:58.28
28:01.87
37.96 MB
0.5907
-
optimFROG 4.21 (mode 1 @ 4x)
2:03.43
2:09.27
38.15 MB
0.5937
-
Monkey's Audio 3.96 (extra high)
2:14.70
2:24.30
38.23 MB
0.5950
-
Monkey's Audio 3.96 (high)
1:09.82
1:18.09
38.42 MB
0.5979
-
Monkey's Audio 3.96 (normal)
0:58.69
1:07.02
38.59 MB
0.6005
-
optimFROG 4.21 (mode 0 @ 4x)
1:24.44
1:30.97
38.68 MB
0.6020
-
WavPack 3.97a (high)
1:02.47
1:14.54
38.86 MB
0.6048
-
Monkey's Audio 3.96 (fast)
0:46.50
0:55.41
39.18 MB
0.6098
-
RKAU 1.07 (normal)
2:16.00
1:41.84
39.42 MB
0.6135
-
WavPack 3.97a (normal)
0:29.07
0:42.87
39.92 MB
0.6213
-
LPAC 1.40 (-r, normal)
1:38.01
0:57.56
40.25 MB
0.6263
-
flac 1.1.0 (-8)
4:35.08
0:39.40
40.89 MB
0.6363
-
Bonk 0.5
3:07.20
2:21.28
40.98 MB
0.6378
-
flac 1.1.0 (-5, default)
1:05.54
0:39.65
41.04 MB
0.6388
-
flac 1.1.0 (-3)
0:50.18
0:38.92
41.74 MB
0.6496
-
Ogg Squish 0.98
?
?
42.27 MB
0.6578
-
flac 1.1.0 (-1)
0:45.83
0:40.89
42.70 MB
0.6646
-
Kexis 0.2.2
1:30.09
1:16.29
42.75 MB
0.6652
-
Shorten 3.2a (-p8 -b2048)
1:02.42
0:37.84
43.06 MB
0.6701
-
Shorten 3.2a (-p0 -b256, default)
0:51.29
0:34.59
43.18 MB
0.6721
-
WavPack 3.97a (fast)
0:31.26
0:28.79
43.65 MB
0.6794
-
WaveZIP
0:42.84
?
44.52 MB
0.6930
-
RIFF WAVE
6:21.92
6:21.92
64.25 MB
1.0000
-
-
-
-
-
- Cannibal Corpse Mummified In Barbed Wire
-
-
-
-
La 0.3c
6:35.94
6:23.57
22.69 MB
0.6798
-
Monkey's Audio 3.96 (extra high)
1:10.94
1:15.92
22.95 MB
0.6876
-
optimFROG 4.21 (mode 4 @ 1x)
14:34.28
14:37.69
22.95 MB
0.6877
-
Monkey's Audio 3.96 (high)
0:37.63
0:41.34
23.19 MB
0.6948
-
Monkey's Audio 3.96 (normal)
0:31.71
0:34.87
23.26 MB
0.6968
-
optimFROG 4.21 (mode 1 @ 4x)
1:03.96
1:08.85
23.31 MB
0.6984
-
RKAU 1.07 (normal)
1:09.71
0:56.66
23.34 MB
0.6993
-
LPAC 1.40 (-r, normal)
1:05.38
0:36.20
23.53 MB
0.7050
-
WavPack 3.97a (high)
0:32.99
0:40.05
23.57 MB
0.7062
-
optimFROG 4.21 (mode 0 @ 4x)
0:44.14
0:48.71
23.95 MB
0.7176
-
flac 1.1.0 (-8)
2:25.59
0:20.85
24.18 MB
0.7245
-
Monkey's Audio 3.96 (fast)
0:25.05
0:28.99
24.20 MB
0.7250
-
flac 1.1.0 (-5, default)
0:34.66
0:21.42
24.30 MB
0.7282
-
Bonk 0.5
1:40.38
1:14.58
24.36 MB
0.7297
-
WavPack 3.97a (normal)
0:15.99
0:23.50
24.76 MB
0.7418
-
Shorten 3.2a (-p8 -b2048)
0:33.74
0:22.47
25.12 MB
0.7526
-
flac 1.1.0 (-3)
0:27.40
0:20.11
25.16 MB
0.7539
-
Ogg Squish 0.98
?
?
25.23 MB
0.7558
-
Kexis 0.2.2
0:47.13
0:40.67
26.03 MB
0.7799
-
flac 1.1.0 (-1)
0:24.04
0:21.68
26.10 MB
0.7819
-
WavPack 3.97a (fast)
0:16.79
0:21.64
26.17 MB
0.7841
-
Shorten 3.2a (-p0 -b256, default)
0:28.20
0:20.46
26.61 MB
0.7972
-
WaveZIP
0:22.25
?
26.89 MB
0.8058
-
RIFF WAVE
3:18.36
3:18.36
33.37 MB
1.0000
-
-
-
-
-
- Alanis Morisette Hand In My Pocket
-
-
-
-
La 0.3c
7:35.21
7:20.19
20.77 MB
0.5312
-
optimFROG 4.21 (mode 4 @ 1x)
16:51.82
16:54.34
21.24 MB
0.5433
-
optimFROG 4.21 (mode 1 @ 4x)
1:14.29
1:18.06
21.36 MB
0.5464
-
Monkey's Audio 3.96 (extra high)
1:21.38
1:27.28
21.54 MB
0.5509
-
Monkey's Audio 3.96 (high)
0:42.54
0:47.41
21.75 MB
0.5563
-
Monkey's Audio 3.96 (normal)
0:35.45
0:39.65
21.84 MB
0.5586
-
optimFROG 4.21 (mode 0 @ 4x)
0:51.39
0:54.97
21.89 MB
0.5598
-
Monkey's Audio 3.96 (fast)
0:28.23
0:33.21
22.16 MB
0.5668
-
WavPack 3.97a (high)
0:45.07
0:43.88
22.28 MB
0.5699
-
WavPack 3.97a (normal)
0:25.40
0:24.80
22.80 MB
0.5832
-
RKAU 1.07 (normal)
1:21.18
1:01.60
22.80 MB
0.5833
-
LPAC 1.40 (-r, normal)
1:01.11
0:33.79
23.25 MB
0.5948
-
Bonk 0.5
1:53.41
1:23.52
23.35 MB
0.5972
-
flac 1.1.0 (-8)
2:46.09
0:23.14
23.45 MB
0.5998
-
flac 1.1.0 (-5, default)
0:39.82
0:21.81
23.56 MB
0.6026
-
Ogg Squish 0.98
?
?
24.11 MB
0.6167
-
flac 1.1.0 (-3)
0:30.58
0:22.05
24.32 MB
0.6221
-
Shorten 3.2a (-p8 -b2048)
0:37.49
0:22.93
24.72 MB
0.6323
-
Kexis 0.2.2
0:54.26
0:45.64
24.80 MB
0.6345
-
flac 1.1.0 (-1)
0:26.46
0:22.14
24.82 MB
0.6348
-
WavPack 3.97a (fast)
0:16.67
0:17.02
24.94 MB
0.6381
-
Shorten 3.2a (-p0 -b256, default)
0:29.71
0:18.92
25.34 MB
0.6481
-
WaveZIP
0:28.05
?
25.95 MB
0.6638
-
RIFF WAVE
3:52.36
3:52.36
39.09 MB
1.0000
-
-
-
-
-
- Gloria Estefan Conga
-
-
-
-
La 0.3c
8:52.93
8:34.81
28.98 MB
0.6419
-
optimFROG 4.21 (mode 4 @ 1x)
19:40.53
19:44.47
29.43 MB
0.6517
-
optimFROG 4.21 (mode 1 @ 4x)
1:26.64
1:32.23
29.58 MB
0.6550
-
Monkey's Audio 3.96 (extra high)
1:35.65
1:42.11
29.65 MB
0.6567
-
optimFROG 4.21 (mode 0 @ 4x)
0:59.59
1:05.29
29.78 MB
0.6595
-
Monkey's Audio 3.96 (high)
0:50.17
0:56.40
29.85 MB
0.6610
-
WavPack 3.97a (high)
0:53.50
0:51.90
29.92 MB
0.6625
-
Monkey's Audio 3.96 (normal)
0:42.27
0:47.74
29.97 MB
0.6637
-
WavPack 3.97a (normal)
0:29.84
0:29.92
30.28 MB
0.6706
-
Monkey's Audio 3.96 (fast)
0:33.46
0:39.22
30.30 MB
0.6710
-
RKAU 1.07 (normal)
1:37.85
1:12.15
30.34 MB
0.6719
-
Bonk 0.5
2:13.34
1:39.44
30.64 MB
0.6785
-
flac 1.1.0 (-8)
3:16.07
0:27.53
30.76 MB
0.6811
-
LPAC 1.40 (-r, normal)
1:14.08
0:44.64
30.81 MB
0.6823
-
flac 1.1.0 (-5, default)
0:46.30
0:26.74
30.86 MB
0.6834
-
Ogg Squish 0.98
?
?
31.06 MB
0.6879
-
WavPack 3.97a (fast)
0:13.31
0:14.15
31.61 MB
0.7000
-
flac 1.1.0 (-3)
0:35.88
0:27.65
31.63 MB
0.7006
-
Shorten 3.2a (-p8 -b2048)
0:44.76
0:27.48
31.76 MB
0.7034
-
Kexis 0.2.2
1:03.91
0:53.54
31.86 MB
0.7056
-
flac 1.1.0 (-1)
0:32.51
0:27.30
31.99 MB
0.7085
-
Shorten 3.2a (-p0 -b256, default)
0:35.74
0:23.64
32.47 MB
0.7191
-
WaveZIP
0:29.42
?
33.02 MB
0.7313
-
RIFF WAVE
4:28.39
4:28.39
45.15 MB
1.0000
-
-
-
-
-
- Cream White Room
-
-
-
-
La 0.3c
10:24.08
10:03.16
33.44 MB
0.6309
-
optimFROG 4.21 (mode 4 @ 1x)
22:59.05
23:02.98
33.93 MB
0.6399
-
optimFROG 4.21 (mode 1 @ 4x)
1:42.28
1:47.55
33.96 MB
0.6405
-
Monkey's Audio 3.96 (extra high)
1:51.77
2:00.37
34.14 MB
0.6441
-
Monkey's Audio 3.96 (high)
0:58.45
1:04.59
34.29 MB
0.6468
-
optimFROG 4.21 (mode 0 @ 4x)
1:10.30
1:15.99
34.29 MB
0.6468
-
Monkey's Audio 3.96 (normal)
0:49.32
0:56.89
34.42 MB
0.6493
-
WavPack 3.97a (high)
0:51.50
1:02.71
34.55 MB
0.6516
-
RKAU 1.07 (normal)
1:50.80
1:24.98
34.60 MB
0.6527
-
LPAC 1.40 (-r, normal)
1:25.16
0:48.67
34.84 MB
0.6572
-
Bonk 0.5
2:35.36
1:56.20
34.96 MB
0.6595
-
Monkey's Audio 3.96 (fast)
0:38.75
0:46.80
34.99 MB
0.6601
-
flac 1.1.0 (-8)
3:48.73
0:31.91
34.99 MB
0.6601
-
WavPack 3.97a (normal)
0:24.43
0:36.09
35.08 MB
0.6617
-
flac 1.1.0 (-5, default)
0:54.89
0:33.82
35.16 MB
0.6633
-
flac 1.1.0 (-3)
0:41.38
0:32.00
35.36 MB
0.6671
-
Shorten 3.2a (-p8 -b2048)
0:51.44
0:33.02
35.40 MB
0.6677
-
Ogg Squish 0.98
?
?
35.74 MB
0.6742
-
WavPack 3.97a (fast)
0:26.00
0:24.83
36.32 MB
0.6852
-
Shorten 3.2a (-p0 -b256, default)
0:41.14
0:28.91
36.42 MB
0.6870
-
flac 1.1.0 (-1)
0:36.87
0:33.39
36.56 MB
0.6897
-
Kexis 0.2.2
1:13.87
1:02.90
36.64 MB
0.6911
-
WaveZIP
0:35.77
?
37.13 MB
0.7004
-
RIFF WAVE
5:15.11
5:15.11
53.01 MB
1.0000
-
-
-
-
-
- Maurice Ravel Fanfare from "L'eventail de Jeanne"
-
-
-
-
La 0.3c
3:55.40
3:47.60
6.46 MB
0.3104
-
optimFROG 4.21 (mode 4 @ 1x)
8:22.42
8:23.32
6.82 MB
0.3274
-
Monkey's Audio 3.96 (extra high)
0:39.93
0:41.69
6.85 MB
0.3289
-
optimFROG 4.21 (mode 1 @ 4x)
0:36.57
0:38.26
7.09 MB
0.3406
-
Monkey's Audio 3.96 (high)
0:21.22
0:23.04
7.16 MB
0.3437
-
RKAU 1.07 (normal)
0:40.67
0:28.52
7.18 MB
0.3451
-
optimFROG 4.21 (mode 0 @ 4x)
0:24.98
0:26.37
7.21 MB
0.3462
-
LPAC 1.40 (-r, normal)
0:29.01
0:15.11
7.33 MB
0.3520
-
Monkey's Audio 3.96 (normal)
0:18.19
0:19.54
7.44 MB
0.3575
-
WavPack 3.97a (high)
0:22.63
0:21.86
7.45 MB
0.3577
-
Monkey's Audio 3.96 (fast)
0:13.70
0:15.72
7.64 MB
0.3671
-
flac 1.1.0 (-8)
1:20.73
0:09.51
7.69 MB
0.3692
-
flac 1.1.0 (-5, default)
0:18.95
0:09.45
7.71 MB
0.3703
-
flac 1.1.0 (-3)
0:14.98
0:09.19
7.77 MB
0.3734
-
WavPack 3.97a (normal)
0:12.56
0:11.95
7.83 MB
0.3760
-
Bonk 0.5
0:55.92
0:40.23
7.83 MB
0.3762
-
flac 1.1.0 (-1)
0:12.97
0:10.39
8.12 MB
0.3902
-
Ogg Squish 0.98
?
?
8.15 MB
0.3914
-
Shorten 3.2a (-p0 -b256, default)
0:13.81
0:08.88
8.19 MB
0.3932
-
Shorten 3.2a (-p8 -b2048)
0:17.45
0:10.30
8.29 MB
0.3983
-
Kexis 0.2.2
0:26.78
0:21.90
8.52 MB
0.4091
-
WaveZIP
0:13.11
?
8.72 MB
0.4193
-
WavPack 3.97a (fast)
0:05.35
0:06.33
8.87 MB
0.4259
-
RIFF WAVE
2:03.76
2:03.76
20.82 MB
1.0000
-
-
-
-
-
- Maurice Ravel String Quartet (4th movement)
-
-
-
-
La 0.3c
10:45.80
10:21.44
19.94 MB
0.3550
-
Monkey's Audio 3.96 (extra high)
1:54.09
2:01.72
20.47 MB
0.3642
-
optimFROG 4.21 (mode 4 @ 1x)
24:26.99
24:29.36
20.62 MB
0.3671
-
Monkey's Audio 3.96 (high)
0:58.14
1:06.45
20.80 MB
0.3702
-
optimFROG 4.21 (mode 1 @ 4x)
1:42.57
1:47.48
20.93 MB
0.3725
-
Monkey's Audio 3.96 (normal)
0:48.61
0:54.73
21.14 MB
0.3763
-
optimFROG 4.21 (mode 0 @ 4x)
1:09.17
1:13.14
21.23 MB
0.3779
-
RKAU 1.07 (normal)
1:52.65
1:25.39
21.30 MB
0.3791
-
Monkey's Audio 3.96 (fast)
0:37.30
0:44.79
21.54 MB
0.3835
-
WavPack 3.97a (high)
0:52.48
1:02.26
21.55 MB
0.3835
-
LPAC 1.40 (-r, normal)
1:20.84
0:42.73
21.96 MB
0.3909
-
WavPack 3.97a (normal)
0:23.29
0:34.28
22.11 MB
0.3935
-
flac 1.1.0 (-8)
3:53.93
0:28.02
22.61 MB
0.4025
-
flac 1.1.0 (-5, default)
0:54.34
0:27.92
22.68 MB
0.4036
-
Bonk 0.5
2:33.53
1:51.94
23.18 MB
0.4125
-
flac 1.1.0 (-3)
0:40.00
0:28.15
23.21 MB
0.4132
-
flac 1.1.0 (-1)
0:34.99
0:27.73
23.36 MB
0.4158
-
Kexis 0.2.2
1:15.05
1:03.86
23.42 MB
0.4168
-
Shorten 3.2a (-p0 -b256, default)
0:39.96
0:27.36
23.71 MB
0.4221
-
Ogg Squish 0.98
?
?
24.12 MB
0.4293
-
WavPack 3.97a (fast)
0:24.34
0:22.17
25.08 MB
0.4463
-
Shorten 3.2a (-p8 -b2048)
0:49.06
0:29.94
25.59 MB
0.4554
-
WaveZIP
0:36.60
?
25.84 MB
0.4600
-
RIFF WAVE
5:33.95
5:33.95
56.18 MB
1.0000
-
-
-
-
-
- Sergei Prokofiev Piano Concerto No.3 (3rd movement)
-
-
-
-
La 0.3c
19:11.61
18:28.80
32.65 MB
0.3243
-
optimFROG 4.21 (mode 4 @ 1x)
43:21.88
43:26.18
33.58 MB
0.3335
-
Monkey's Audio 3.96 (extra high)
3:21.33
3:35.91
33.72 MB
0.3349
-
optimFROG 4.21 (mode 1 @ 4x)
3:00.57
3:08.19
33.83 MB
0.3360
-
optimFROG 4.21 (mode 0 @ 4x)
2:00.85
2:09.52
34.14 MB
0.3390
-
Monkey's Audio 3.96 (high)
1:43.17
1:55.31
34.23 MB
0.3400
-
Monkey's Audio 3.96 (normal)
1:26.19
1:35.90
34.66 MB
0.3442
-
RKAU 1.07 (normal)
3:08.70
2:26.17
35.21 MB
0.3496
-
LPAC 1.40 (-r, normal)
2:06.21
1:11.92
35.27 MB
0.3502
-
WavPack 3.97a (high)
1:32.78
1:50.74
35.35 MB
0.3510
-
Monkey's Audio 3.96 (fast)
1:06.28
1:18.56
35.43 MB
0.3518
-
WavPack 3.97a (normal)
0:40.68
1:00.29
36.99 MB
0.3673
-
flac 1.1.0 (-8)
6:51.48
0:49.47
38.07 MB
0.3781
-
flac 1.1.0 (-5, default)
1:35.22
0:47.57
38.17 MB
0.3791
-
flac 1.1.0 (-3)
1:10.67
0:46.40
38.51 MB
0.3824
-
flac 1.1.0 (-1)
1:01.44
0:53.40
39.30 MB
0.3903
-
Shorten 3.2a (-p0 -b256, default)
1:10.57
0:50.00
39.49 MB
0.3921
-
Kexis 0.2.2
2:12.39
1:49.00
39.89 MB
0.3962
-
Bonk 0.5
4:33.71
3:19.38
40.31 MB
0.4003
-
Ogg Squish 0.98
?
?
41.86 MB
0.4157
-
WavPack 3.97a (fast)
0:43.24
0:40.17
43.03 MB
0.4273
-
WaveZIP
1:05.60
?
43.67 MB
0.4337
-
Shorten 3.2a (-p8 -b2048)
1:26.84
0:53.19
45.34 MB
0.4502
-
RIFF WAVE
9:58.47
9:58.47
100.68 MB
1.0000
-
-
-
-
-
- Frederic Chopin Prelude No.24 in d minor
-
-
-
-
La 0.3c
5:14.83
5:03.08
9.84 MB
0.3582
-
Monkey's Audio 3.96 (extra high)
0:55.83
0:59.52
10.25 MB
0.3734
-
optimFROG 4.21 (mode 4 @ 1x)
11:56.24
11:58.77
10.34 MB
0.3764
-
optimFROG 4.21 (mode 1 @ 4x)
0:50.07
0:53.49
10.41 MB
0.3790
-
Monkey's Audio 3.96 (high)
0:28.52
0:31.32
10.47 MB
0.3812
-
optimFROG 4.21 (mode 0 @ 4x)
0:34.06
0:38.70
10.53 MB
0.3833
-
Monkey's Audio 3.96 (normal)
0:23.70
0:27.61
10.59 MB
0.3854
-
LPAC 1.40 (-r, normal)
0:34.91
0:20.01
10.74 MB
0.3911
-
WavPack 3.97a (high)
0:31.43
0:28.95
10.76 MB
0.3919
-
RKAU 1.07 (normal)
0:54.46
0:41.54
10.88 MB
0.3963
-
Monkey's Audio 3.96 (fast)
0:18.53
0:21.80
10.94 MB
0.3982
-
WavPack 3.97a (normal)
0:16.90
0:15.17
11.34 MB
0.4128
-
flac 1.1.0 (-8)
1:53.31
0:13.06
11.69 MB
0.4256
-
flac 1.1.0 (-5, default)
0:26.05
0:13.50
11.71 MB
0.4265
-
flac 1.1.0 (-3)
0:19.82
0:13.25
11.74 MB
0.4274
-
flac 1.1.0 (-1)
0:17.61
0:13.80
11.86 MB
0.4319
-
Shorten 3.2a (-p0 -b256, default)
0:19.20
0:11.89
12.05 MB
0.4386
-
Kexis 0.2.2
0:36.70
0:30.26
12.14 MB
0.4419
-
Bonk 0.5
1:15.45
0:55.07
12.86 MB
0.4684
-
WaveZIP
0:18.75
?
13.08 MB
0.4765
-
Ogg Squish 0.98
?
?
13.31 MB
0.4845
-
WavPack 3.97a (fast)
0:06.74
0:08.51
13.67 MB
0.4978
-
Shorten 3.2a (-p8 -b2048)
0:24.43
0:14.32
14.40 MB
0.5242
-
RIFF WAVE
2:43.23
2:43.23
27.46 MB
1.0000
-
-
-
-
-
- Domenico Scarlatti Sonata K.42 (arr.Yepes for guitar)
-
-
-
-
La 0.3c
3:09.33
3:01.82
6.62 MB
0.4036
-
Monkey's Audio 3.96 (extra high)
0:33.99
0:35.53
6.80 MB
0.4145
-
optimFROG 4.21 (mode 4 @ 1x)
7:08.77
7:09.52
6.87 MB
0.4190
-
Monkey's Audio 3.96 (high)
0:17.47
0:19.11
6.94 MB
0.4230
-
optimFROG 4.21 (mode 1 @ 4x)
0:30.47
0:31.95
6.98 MB
0.4255
-
Monkey's Audio 3.96 (normal)
0:14.84
0:16.17
7.02 MB
0.4284
-
RKAU 1.07 (normal)
0:37.09
0:26.56
7.05 MB
0.4297
-
optimFROG 4.21 (mode 0 @ 4x)
0:20.68
0:22.06
7.07 MB
0.4310
-
WavPack 3.97a (high)
0:15.50
0:18.31
7.12 MB
0.4340
-
Monkey's Audio 3.96 (fast)
0:11.39
0:12.95
7.19 MB
0.4384
-
LPAC 1.40 (-r, normal)
0:29.99
0:14.33
7.21 MB
0.4397
-
WavPack 3.97a (normal)
0:07.01
0:10.27
7.31 MB
0.4460
-
flac 1.1.0 (-8)
1:08.58
0:07.99
7.37 MB
0.4498
-
flac 1.1.0 (-5, default)
0:15.90
0:08.71
7.40 MB
0.4513
-
flac 1.1.0 (-3)
0:11.84
0:08.26
7.43 MB
0.4530
-
Bonk 0.5
0:45.59
0:32.63
7.46 MB
0.4548
-
Shorten 3.2a (-p0 -b256, default)
0:11.67
0:07.17
7.48 MB
0.4564
-
Kexis 0.2.2
0:22.06
0:18.62
7.50 MB
0.4572
-
flac 1.1.0 (-1)
0:10.17
0:07.85
7.53 MB
0.4591
-
WavPack 3.97a (fast)
0:04.11
0:06.57
7.58 MB
0.4624
-
Ogg Squish 0.98
?
?
7.74 MB
0.4723
-
WaveZIP
0:10.56
?
7.83 MB
0.4781
-
Shorten 3.2a (-p8 -b2048)
0:14.29
0:09.07
8.20 MB
0.5004
-
RIFF WAVE
1:37.43
1:37.43
16.39 MB
1.0000
-
-
-
-
-
- The Benedictine Monks of Santo Domingo de Silos Laetatus sum
-
FLAC - это открытый проект и нам будет очень приятно, если кто-либо захочет к нам присоединиться. Самый удобный способ для передачи изменений -- это файлы, созданные командой diff -c и отправленные в список рассылки для разработчиков (запакованные исходные тексты тоже нормальный вариант). Обязательно почитайте список целей, стоящих перед проектом, потому что некоторые возможности, такие как защита от копирования и сжатие с потерями, мы добавлять не хотим.
-
-
Список особенно важных задач:
-
-
-
Программа установки для Windows.
-
-
Улучшить методы сжатия.
-
-
-
Чего бы еще хотелось:
-
-
-
Обеспечить поддержку воспроизведения потоков в плагинах.
FLAC открыт для разработчиков, желающих добавить поддержку FLAC в своих программах. Все необходимые функции находятся в библиотеках libFLAC и libFLAC++, распространяемых по лицензии LGPL. Соответствующая документация находится здесь:
FLAC определяет несколько типов блоков метаданных (все они перечислены на странице формат). Блоки метаданных могут быть любого размера, новые блоки могут быть легко добавлены. Декодер имеет возможность пропускать неизветные ему блоки метаданных. Обязателен только блок STREAMINFO. В нем содержится частота дискретизация, количество каналов и т.п., а также данные позволяющие декодеру настроить буфферы. Сюда также записывается подпись MD5 несжатых аудиоданных. Это полезно для проверки всего потока после его передачи.
-
-
Другие блоки предназначены для резервирования места, хранения таблиц точек поиска, тегов, список разметки аудиодисков а также данных для конкретных приложений. Опции для добавления блоков PADDING или точек поиска приведены ниже. FLAC не нуждается в точках поиска, однако они позволяют значительно увеличить скорость доступа, а также могут быть использования для расстановки меток в аудио редакторах.
-
-
Если Вам нужен собственный блок метаданных, Вы можете определить его и запросить идентификатор здесь. Вы можете зарезервировать блок PADDING необходимого размера и записать на его место свои данные после кодирования. Полученнный поток будет отвечать формату FLAC, декодеры распознающие эти блоки смогут их использовать, остальные будут их пропускать.
-
-
-
Аудиоданные
-
-
За метаданным следуют сжатые аудиоданные. Метаданные и аудиоданные не чередуются. Как и большинство кодеков FLAC делит входной поток на блоки и кодирует их независимо друг от друга. Блок упаковыватся во фрейм и добавляется к потоку. Базовый кодер использует блоки постоянного размера для всего потока, однако формат предусматривает наличие блоков разной длины в потоке.
-
-
-
Разбиение на блоки
-
-
Размер блока - очень важный параметр для кодирования. Если он очень мал, то в потоке будет слишком заголовков фреймов, что уменьшит уровень сжатия. Если размер большой, то кодер не сможет подобрать эффективную модель сжатия. Понимание процесса моделирования поможет Вам увеличить уровень сжатия для некоторых типов входных данных. Обычно при использовании линейного прогнозирования на аудиоданных с частотой дискретизации 44.1 кГц оптимальный размер блока лежит в диапазоне 2-6 тысяч сэмплов. В этом случае значение по умолчанию - 4608. Если использовать быстрые постоянные предикторы, предпочтительнее меньшие размеры блоков, так как в этом случае размеры заголовков фреймов меньше.
-
-
-
Межканальная декорреляция
-
-
Если на вход поступают стерео аудиоданные, они могут пройти через стадию межканальной декорреляции. Правый и левый канал преобразуются к среднему и разностному по формулам: средний = (левый + правый)/2, разностный = левый - правый. В отличие от joint stereo этот процесс не приводит к потерям. Для данных с аудио компакт-дисков это обычно приводит к значительному увеличению уровня сжатия. Для включения использования этого метода кодирования flac имеет две опции: -m всегда делает разностную и независимую версию блока и выбирает наименьший фрейм и -M, которая адаптивно выбирает схему сжатия.
-
-
-
Моделирование
-
-
На следующем этапе кодер пытается аппроксимировать сигнал такой функцией, чтобы полученный после ее вычитания из оригинала результат (называемый разностью, остатком, ошибкой) можно было закодировать минимальным количеством битов. Параметры функций тоже должны записываться, поэтому они не должны занимать много места. FLAC использует два метода формирования аппроксимаций: 1) подгонка простого полинома к сигналу и 2) общее кодирование с линейными предикторами (LPC).
-
-
Во-первых, постоянное полиномиальное предсказание (-l 0) работает значительно быстрее, но менее точно, чем LPC. Чем выше порядок LPC, тем медленнее, но лучше будет модель. Однако с увеличением порядка выигрыш будет все менее значительным. В некоторой точке (обычно около 9) процедура кодера, определяющая наилучший порядок, начинает ошибаться и размер получаемых фреймов возрастает. Чтобы преодолеть это, можно использовать полный перебор (опция -e), что приведет к значительному увеличению времени кодирования.
-
-
Во-вторых, параметры для постоянных предикторов могут быть описаны тремя битами, а параметры для модели LPC зависят от количества бит на сэмпл и порядка LPC. Это значит, что размер заголовка фрейма зависит от выбранного метода и порядка и может повлиять на оптимальный размер блока.
-
-
-
Остаточное кодирование
-
-
Когда модель подобрана, кодер вычитает приближение из оригинала, чтобы получить остаточный (ошибочный) сигнал, который затем кодируется без потерь. Для этого используется то обстоятельство, что разностный сигнал обычно имеет распределение Лапласа и есть набор специальный кодов Хаффмана, называемые кодами Райса, позволяющие эффективно и быстро кодировать эти сигналы без использования словаря.
-
-
Кодирование Райса состоит из нахождения одного параметра, отвечающего распределению сигнала, а затем использования его для составления кодов. При изменении распределения меняется и оптимальный параметр, поэтому имеется метод позволяющий пересчитывать его по необходимости. Остаток может быть разбит на контексты или разделы, у каждого из которых будет свой параметр Райса. flac позволяет указать, как нужно производить разбиение, с помощью опции -r. Остаток может быть разбит на 2^n раздела, если использовать -r n,n. Параметр n называется порядком раздела. Также кодер может искать в пределах от m до n порядка, выбирая лучший вариант, если указать -r m,n. Обычно выбор n не влияет на скорость кодирования. От разницы между m и n сильно зависит время работы, чем она больше, тем больше времени будет затрачиваться на поиск лучшего порядка. Выбор размера блока также влияет на оптимальный порядок раздела.
-
-
-
Составление фреймов
-
-
Аудиофрейму предшествует заголовок, который начинается с кода синхронизации и содержит минимум информации, необходимой декодеру для воспроизведения потока. Сюда также записывается номер блока или сэмпла и восьмибитная контрольная сумма самого заголовка. Код синхронизации, CRC заголовка фрейма и номер блока/сэмпла позволяют осуществлять пересинхронизацию и поиск даже в отсутствие точек поиска. В конце фрейма записывается его шестнадцатибитная контрольная сумма. Если базовый декодер обнаружит ошибку, будет сгенерирован блок тишины.
-
-
-
Разное
-
-
Чтобы поддерживать основные типы метаданных, базовый декодер умеет пропускать теги ID3V1 и ID3V2, поэтому их можно свободно добавлять. Теги ID3V2 должны располагаться перед маркером "fLaC", а теги ID3V1 - в конце файла.
-
-
У flac есть опция (-V) для проверки выходных данных при кодировании. В этом случае декодер работает одновременно с кодером и его выход сравнивается с оригинальным вводом. Если будет найдено отличие, flac закончит работу с сообщением об ошибке.
В любом случае, если входной файл не указан, подразумевается стандартный ввод. Если указан только один входной файл, то это может быть "-" для стандартного ввода (stdin). Когда используется стандартный ввод, flac пишет в стандартный вывод (stdout). В остальных случаях flac выполнит указанные действия для каждого входного файла и запишет результаты в файлы с аналогичными именами (при кодировании суффикс будет заменен на ".flac" или, если его не было, будет добавлен; при декодировании суффиксы также изменяются в соответствии с типом выходных данных.) Оригинал удаляется, только если указан ключ --delete-input-file.
-
-
Существуют особые формы вызова процедур кодирования/декодирования из стандандартного ввода в файл.
-
-
-
-
flac [опции] - выходной_файл
-
-
flac -d [опции] - выходной_файл
-
-
-
которые лучше чем
-
-
-
flac [опции] > выходной_файл
-
-
flac -d [опции] > выходной_файл
-
-
-
-
так как в первом случае сохраняется возможность произвести при необходимости последующую обработку файла, например для записи заголовков RIFF WAVE или STREAMINFO.
-
-
Данные в стандартный вывод можно перенаправить с помощью ключа -c.
-
-
Опции кодирования влияют на скорость работы и уровень сжатия. Настройки формата определяют расположение сэмплов, если на вход поступает файл без заголовка. Если у файла есть заголовок RIFF WAVE или AIFF, то настойки формата не нужны, так как они берутся из файла.
-
-
В режиме тестирования flac работает как и при декодировании, только выходной файл не записывается. Режимы декодирования и тестирования проверяют поток на наличие ошибок, а также сравнивают подпись MD5 декодированного потока с сохраненной подписью, даже если формат потока правильный.
Вывести основные методы использования и список всех опций. При запуске flac без аргументов отображается краткая справка.
-
-
-H, --explain
-
Вывести справку полностью. При запуске flac без аргументов отображается краткая справка.
-
-
-d, --decode
-
Декодирование (по умолчанию flac кодирует). flac завершит работу с кодом выхода 1, если будет встречена ошибка или контрольная сумма MD5 декодированного потока не совпадет с сохраненной. Если ошибок не будет, код возврата будет равен 0.
-
-
-t, --test
-
Тестирование (то же самое, что и декодирование, только выход не записывается в файл). Коды возврата те же.
-
-
-a, --analyze
-
Анализ (то же самое, что и декодирование, только выходом является файл статистики). Коды возврата те же. Режим предназначен в основном для разработчиков. В выходной текстовый файл записывается информация о каждом фрейме и подфрейме.
-
-
-c, --stdout
-
Направить результат в стандартный вывод (stdout).
-
-
-s, --silent
-
Не показывать статистику при кодировании/декодировании.
-
-
-o файл --output-name=файл
-
Явно указать имя выходного файла, по умолчанию flac просто заменяет суффикс.
-
-
--output-prefix=строка
-
Добавляет префикс к каждому имени выходному файлу. Может имспользоваться для кодирования/декодирования файлов в другой каталог. Если указанная строка является частью пути, убедитесь, что она заканчивается слэшем '/'.
-
-
--delete-input-file
-
После успешного окончания кодирования/декодирования входной файл будет удален. Если произойдет ошибка, исходный файл останется.
-
-
--skip={#|mm:ss.ss}
-
Пропустить первые # сэмплов входного файла. Работает для кодирования и декодирования, но не для тестирования. Альтернативную форму mm:ss.ss можно использовать, чтобы указать минуты, секунды и сотые секунды.
-Например:
---skip=123 : пропустить первые 123 сэмпла входного файла
---skip=1:23.45 : пропустить 1 минуту 23.45 секунд
-
-
-
--until={#|[+|-]mm:ss.ss}
-
Остановиться на данном сэмпле входного файла. Работает для кодирования и декодирования, но не для тестирования. Сэмпл с указанным номером не включается в вывод. Альтернативную форму mm:ss.ss можно использовать, чтобы указать минуты, секунды и сотые секунды. Если впереди стоит знак +, то последний сэмпл берется от начальной точки воспроизведения, если - -, то последний сэмпл вычисляется от конца потока аудио.
-Например:
---until=123 : декодировать первые 123 сэмпла входного файла (сэмплы 0-122)
---until=1:23.45 : декодировать 1 минуту 23.45 секунд
---skip=1:00 --until=+1:23.45 : декодировать от 1:00.00 до 2:23.45
---until=-1:23.45 : декодировать все, кроме последней 1 минуты и 23.45 секунд
---until=-0:00 : декодировать весь ввод
-
-
-
--ogg
-
При кодировании генерируется вывод в формате Ogg-FLAC вместо "родного" FLAC. Потоки Ogg-FLAC представляют собой потоки FLAC обернутые в транспортный уровень Ogg. Полученный файл будет иметь суффикс '.ogg' и будет декодироваться утилитой flac.
-
При декодировании формат ввода однозначно определяется как Ogg-FLAC. Это полезно при получении данных со стандартного ввода или если у файла суффикс не '.ogg'.
-
-
--serial-number=#
-
При использовании с ключом --ogg определяет серийный номер для потока FLAC. При кодировании без явно указанного серийного номера flac использует '0'. При декодировании по умолчанию используется серийный номер определенный на первой странице.
По умолчанию flac прекращает декодирование в случае ошибки в потоке и удаляет частично декодированный файл. Использование ключа -F ведет к тому, что сообщения об ошибках выводятся, но flac продолжает работу до конца. Обратите внимание, что в результате такого декодирования в выходном файле могут быть пропущены сэмплы или появится блоки тишины.
Проверять процесс сжатия. В данном случае flac создает параллельный декодер, раскодирующий выход кодера и сравнивает результат с оригиналом. Если будет найдено несоответствие, кодирование прекратится. Время работы с этой опцией увеличивается, однако, при этом гарантируется, что файл будет правильно декодирован.
-
-
--lax
-
Позволяет кодеру создавать файлы, отвечающие подмножеству формата FLAC. В результате работы будет получаться непотоковый файл, поэтому этот ключ следует использовать только для архивирования. Декодер будет поддерживать воспроизведение и поиск в таких файлах.
-
-
-
--replay-gain
-
Вычислить значения ReplayGain и сохранить из в комментариях Vorbis, аналогично тому, как это делает VorbisGain. Уровень записи и максимальные значения амплитуды будут вычислены для каждого входного файла. Кроме того будет рассчитаны значения для всего альбома (всех входных файлов). Для этого все файлы должны иметь одинакоыую частоту дискретизации, разрешение и число каналов. Допустимы только моно и стерео файлы, а частота дискретизации должна быть 8, 11.025, 12, 16, 22.05, 24, 32, 44.1 или 48 кГц. Обратите внимание на то, что для этой опции может понадобиться несколько дополнительных байтов в блоке PADDING, так как точный размер блока нельзя вычислить, пока не будут обработаны все файлы.
-Обратите внимание на то, что эту возможность нельзя использовать при кодировании в стандартный вывод.
-
-
--cuesheet=ИМЯ_ФАЙЛА
-
Импортировать указанный список разбиения аудиодиска и сохранить его в блоке метаданных CUESHEET. Эту опцию можно использовать только при кодировании одного файла. Точки поиска будут добавлены для каждого трека из списка в блок SEEKTABLE, если не будет указана опция --no-cued-seekpoints.
-Файл списка разбиения аудиодиска должен иметь такой же вид, в каком его создают программы CDRwin, CDRcue, EAC и т.д
-
-
-
--sector-align
-
-
При кодировании нескольких WAVE файлов, полученных с аудиодиска, выравнивать их на границу сектора. Эта опция применима только для кодирования нескольких WAVE файлов, каждый из которых должен иметь частоту дискретизации 44.1 кГц и два канала. Если будет указана эта опция кодер выровняет потоки .flac так,
-что их длины будут кратны размеру сектора CD-Audio (равны 1/75 секундам или 588 сэмплам). Это осуществляется переносом части сектора в конце каждого WAVE файла в начало следующего. Последний поток будет дополнен до границы выравнивания нулями.
-
Использование этой опции не приведет ни к чему, если файлы уже выровнены (например, если правильно скопированы с аудиодиска). flac может выровнять только несколько файлов за один вызов.
-
-
ВНИМАНИЕ: Порядок файлов имеет значение! Если вы сделаете следующий вызов 'flac --sector-align *.wav', командный процессор может обработать шаблон не в том порядке, в каком вы рассчитываете. Поэтому лучше всего вызывать программу, явно указав список файлов, например, 'flac --sector-align 8.wav 9.wav 10.wav'.
-
-
-
-S {#|X|#x|#s}, --seekpoint={#|X|#x|#s}
-
Добавляет точки для поиска в таблицу SEEKTABLE.
-
-
-
# : создается точка поиска для сэмпла с определенным номером.
-
-
X : резервируемые точки (всегда помещаются в конце SEEKTABLE).
-
-
#x : # равномерно распределенных точек поиска, первая соответствует 0 сэмплу.
-
-
#s : точки поиски расставляются для каждых # секунд; номер не обязательно должен быть целым числом, например, -S 9.5s ознчает, что точки будут проставлены с промежутком 9.5 секунд
-
-
-
Опцию -S можно использовать несколько раз. В результате получится объединенная таблица, в которой будут присутствовать только уникальные значения.
-По умолчанию flac использует -S 10s. Если таблица поиска не нужна, укажите -S-.
-ПРИМЕЧАНИЕ: -S #x и -S #s не будут работать, если кодер не сможет определить размер входного файла в начале работы.
-ПРИМЕЧАНИЕ: если # больше или равен количеству сэмплов во входном файле, то точки добавлены не будут, если размер можно определить до кодирования, в противном случае будут записаны резервируемые точки.
-
-
-
-P #, --padding
-
Кодер запишет блок метаданных PADDING, указанного размера (в байтах), после блока STREAMINFO. Ключ --no-padding указывает, что блок PADDING не нужен (значение по умолчанию). Этот блок полезен, если вы собираетесь добавить тэг в файл позже. Вместо того, чтобы переписывать файл полностью, можно будет записать информацию вместо блока PADDING. Обратите внимание на то, что общий размер блока PADDING будет на 4 байта больше, так как 4 байта занимает заголовок.
-
-
-T ПОЛЕ=ЗНАЧЕНИЕ, --tag=ПОЛЕ=ЗНАЧЕНИЕ
-
Добавляет комментарии Vorbis, который должен соответствовать спецификации, т.е. ПОЛЕ должно содержать только определенные символы, завершающиеся знаком равенства. При необходимости не забывайте заключать комментарий в кавычки. Эту опцию можно использовать неоднократно для заполнения разных полей комментария. Все указанные значения будут применены ко всем кодируемым файлам.
-
-
-b #, --blocksize
-
Устанавливает размер блока в сэмплах. По умолчанию 1152 для -l 0, иначе 4608. Стандартные потоки должны использовать одно из указаных значений: 192/576/1152/2304/4608/256/512/1024/2048/4096/8192/16384/32768. Сейчас кодер использует постоянный размер блока для всего файла.
-
-
-m, --mid-side
-
Включает разностное кодирование (только для стерео потоков). Обычно увеличивает уровень сжатия на несколько процентов. Для каждого блока создается усредненная и стерео версия блока, сохраняется блок меньшего размера. Сейчас разностное кодирование доступно для файлов, где сэмпл имеет размер не больше 16 бит.
-
-
-M, --adaptive-mid-side
-
Включает адаптивное разностное кодирование (только для стерео потоков). Работает аналогично -m, однако кодер переключается между независимым и усредняющим кодированием адаптивно. Метод работает быстрее, но уровень сжатия меньше, так как -m производит полный перебор вариантов.
-
-
-0..-8
-
Быстрейшее сжатие ... максимальное сжатие. По умолчанию -5.
-
-
-0, --compression-level-0
-
Аналогично -l 0 -b 1152 -r 2,2.
-
-
-1, --compression-level-1
-
Аналогично -l 0 -b 1152 -r 2,2 -M.
-
-
-2, --compression-level-2
-
Аналогично -l 0 -b 1152 -r 3 -m.
-
-
-3, --compression-level-3
-
Аналогично -l 6 -b 4608 -r 3,3
-
-
-4, --compression-level-4
-
Аналогично -l 8 -b 4608 -r 3,3 -M.
-
-
-5, --compression-level-5
-
Аналогично -l 8 -b 4608 -r 3,3 -m.
-
-
-6, --compression-level-6
-
Аналогично -l 8 -b 4608 -r 4 -m.
-
-
-7, --compression-level-7
-
Аналогично -l 8 -b 4608 -r 6 -m -e.
-
-
-8, --compression-level-8
-
Аналогично -l 12 -b 4608 -r 6 -m -e.
-
-
--fast
-
Быстрейшее сжатие. Аналогично -0.
-
-
--best
-
Максимальное сжатие. Аналогично -8.
-
-
-e, --exhaustive-model-search
-
Полный поиск модели (работает медленно!). Обычно кодер определяет лучшую модель и кодирует далее опираясь на нее. В данном режиме кодер будет создавать подфреймы всех порядков и использовать наименьший. Если максимальное значение порядка LPC велико, время кодирования существенно возрастет. Выигрыш обычно составляет около 0.5%.
-
-
-E, --escape-coding
-
Использовать управляющие коды в кодере энтропии. Эта опция позволяет записывать незакодированное представление остатка в разделе, если его размер меньше. При этом время работы увеличивается, а уровень сжатия обычно улучшается примерно на 1%.
-
-
-l #, --max-lpc-order=#
-
Определяет максимальный порядок LPC (коэффициентов линейного прогнозирования). Число должно быть меньше или равно 32. Если значение равно 0, кодер будет использовать вместо общего линейного прогнозирования постоянные коэффициенты. Этот метод увеличивает скорость работы, но файлы получаются на 5-10% больше.
-
-
-q #, --qlp-coeff-precision=#
-
Определяет точность дискретных коэффициентов линейного прогнозирования в битах. По умолчанию -q 0, что позволяет кодеру принимать решение в зависимости от сигнала. Лучше оставлять значение по умолчанию.
-
-
-p, --qlp-coeff-precision-search
-
Производить оптимизацию LPC. Переопределяет любую опцию -q. Сильно замедляет работу, и уменьшает размер файла на долю процента. -q не работает, когда используется -l 0.
-
-
-r [#,]#, --rice-partition-order=[#,]#
-
Установить [min,]max порядок раздела. Если минимальное значение не указано, то оно устанавливается равным 0. По умолчанию кодер один параметр Райса для всего остатка подфрейма. Если использовать эту опцию, остаток будет разделяться на 2^min# ... 2^max частей, для каждой из которых будет определен собственный параметр Райса. С увеличением параметра max выигрыш будет все меньше. Наиболее оптимальный вариант достигается при использовании -r 2,2 (и больших значений для больших размеров блоков). При этом сжатие обычно увеличивается на 1.5%. Выбор оптимального значения можно произвести по формуле размер_блока/(2^n)=128. Максимальный уровень сжатия достигается при использовании -r 0,16.
-
-
-
-
Настройки формата
-
-
--endian={big|little}
-
Определяет порядок байтов в файле без заголовка big-endian | little-endian.
-
-
--channels=#
-
Определяет количество каналов в файле без заголовка.
-
-
--bps=#
-
Определяет количество бит на сэмпл в файле без заголовка.
-
-
--sample-rate=#
-
Определяет количество сэмплов в секунду в файле без заголовка.
-
-
--sign={signed|unsigned}
-
Определяет, должны ли быть сэмплы в файле без заголовка беззнаковые или знаковые (по умолчанию знаковые).
-
-
--force-aiff-format
-
Декодер будет записывать в формат AIFF. Эта опция не нужна, если имя выходного файла (указанное с помощью ключа -o) заканчиватся на .aiff.
-
-
--force-raw-format
-
Воспринимать входной (или выходной при декодировании) файл как поток сэмплов без заголовка вне зависимости от суффикса.
Отслеживание ошибок ведется на этой странице проекта, находящейся на SourceForge. Если Вы будете сообщать об ошибке, пожалуйста, оставьте e-mail для контакта.
-
-
Ниже перечислены известные ошибки в текущей версии (1.1.0):
-
-
-
Нет известных ошибок.
-
-
-
В версии 1.0.4 были следующие значимые ошибки:
-
-
-
Во всех декодерах до этой версии включительно была ошибка не позволяющая правильно пропускать неизвестные блоки метаданных. Файл FLAC, созданный кодером flac 1.1.0 и содержащий блок метаданных CUESHEET, не будет воспроизводиться более ранними версиями декодеров.
-
В metaflac была ошибка, возникающая при импортировании комметария в формате Vorbis, которая могла привести к повреждению файла FLAC.
Все исходные коды и исполняемые файлы распространяются под "открытыми" лицензиями. Библиотеки -- под LGPL, плагины и утилиты (flac и metaflac) -- под GPL. Если вы хотите распространять FLAC частично или полностью на других условиях, свяжитесь со мной.
-
-
-
Все релизы делаются на SourceForge и лежат на этой странице. Для каждой версии выложены исходные тексты, а также скомпилированные версии для Linux, Windows и Darwin (включая OS X).
Пользователям Mac OS X стоит использовать MacFLAC -- дистрибутив FLAC для OS X, включающий установочный пакет .pkg и расширения для этой операционной системы. Если вы используете Fink, вы можете попробовать пакет FLAC Fink.
-
-
Вы также можете скачать обновляемый ежедневно архив CVS.
-
-
Полезные утилиты
-
-
Графические оболочки
-
-
-
Windows
-
-
dBpowerAMP -- мощная программа, позволяющая преобразовывать и воспроизводить файлы.
FLAC - это аббревиатура от Free Lossless Audio Codec (свободный аудиокодек, сжимающий без потерь). Проект FLAC включает:
-
-
-
потоковый формат;
-
базовые кодеры и декодеры в виде библиотек;
-
flac, утилиту командной строки, выполняющую сжатие и распаковку файлов .flac;
-
metaflac, утилиту командной строки для редактирования метаданных в файлах .flac;
-
плагины для разных плейеров.
-
-
-
"Свобода" означает, что спецификация потокового формата открыта для всех и может быть использована для любых целей (проект FLAC оставляет за собой право устанавливать спецификации и сертифицировать относящиеся к нему продукты на совместимость), а также то, что ни формат, ни один из реализованных методов кодирования/декодирования не запатентованы. Это также значит, что все исходные тексты доступны по лицензиям, обязывающим предоставлять исходные коды.
-
-
FLAC компилируется на множестве платформ: Unixes (Linux, *BSD, Solaris, OS X), Windows, BeOS и OS/2. Имеются системы сборки для autoconf/automake, MSVC, Watcom C и Project Builder.
-
-
Характеристики FLAC:
-
-
Формат FLAC и методы кодирования/декодирования не защищены патентами.
-
-
-
-
Сжатие без потерь: Кодирование PCM данных не приводит к потере информации, следовательно декодируемый аудиофайл абсолютно идентичен тому, который был подан на вход кодеру. Чтобы определить возможные ошибки при передаче файла, для каждого фрейма вычисляется 16-битная контрольная сумма. Целостность на дальнейшем этапе подтверждается подписью MD5 распакованных данных, которая находится в заголовке и может быть проверена при воспроизведении, декодировании или с помощью тестирования.
-
-
Скорость: Скорость работы при кодировании и декодировании несимметричны. Для декодирования используется только целочисленная арифметика, которая требует значительно меньше вычислений, чем в перцепционных кодеках. Декодирование в реальном времени легко достижимо даже на старых компьютерах.
-
-
Аппаратная поддержка: Благодаря свободной базовой реализации и простому декодированию FLAC является единственным аудиокодеком, сжимающим без потерь, который имеет аппаратную поддержку.
-
-
Поточность: Каждый фрейм FLAC содержит достаточно информации для собственного декодирования. Текущий фрейм FLAC не зависит от предыдущих и последующих. FLAC использует коды синхронизации и контрольные суммы, что позволяет декодеру быстро выбирать позицию в текущем потоке.
-
-
Поиск: FLAC поддерживает быстрый и точный поиск, что полезно не только при воспроизведении, но и дает возможность использовать FLAC в звуковых редакторах.
-
-
Метаданные: FLAC имеет расширяемую систему метаданных. Новые блоки метаданных могут быть определены и реализованы в будущих версиях без потери обратной совместимости. Сейчас определены типы метаданных для таблиц поиска, тегов и списков разметки аудиодисков. Приложение может использовать блок метаданных APPLICATION после регистрации для него ID.
-
-
Архивирование: FLAC удобно использовать для архивации, так как сжатие с его помощью не приводит к потере информации. Если в будущем Вы решите использовать другой формат, данные будут восстановлены из .flac файла в первоначальном виде. Кроме контрольной суммы фрейма и подписи MD5, утилита flac имеет возможность проверки, использование которой приводит к тому, что кодируемый поток сразу же декодируется и сравнивается с исходным. Если происходит ошибка, кодер прекращает работу.
-
-
Архивирование аудиодисков: У FLAC если блок метаданных CUESHEET, в котором сохраняется таблица разметки аудиодиска. Например, можно записать аудиодиск в один файл, а затем импортировать его таблицу разметки при кодировании, чтобы полученный файл имел такое же представление как и диск. Если оригинал аудиодиска будет испорчен, то вы сможете восстановить таблицу разметки, чтобы записать точную копию диска.
-
-
Устойчивость от ошибок: Благодаря разбиению на фреймы, ошибки в потоке локализуются до уровня фрейма, в котором произошла ошибка (обычно несколько сотых секунды). В некоторых кодеках одна ошибка может привести к потере всего остатка потока.
-
-
-
-
Чего нет во FLAC?
-
-
-
FLAC не осуществляет сжатие с потерями. Для этого существует много хороших форматов, таких как Vorbis, MPC и mp3 (отличная реализация с открытими исходными текстами LAME).
-
-
FLAC не будет SDMI совместимым и т.п. Перед проектом не стоит цели поддерживать методы защиты, которые на практике лишь увеличивают объем файла. Конечно, мы не сможем препятствовать кому-либо создавать несвободные блоки метаданных, однако, стандартные декодеры все равно будут их пропускать.
Во-первых, как основной разработчик, я должен отметить, что не являюсь экспертом в области сжатия, поэтому чувствую себя обязанным поблагодарить многих людей, работавших над улучшением алгоритмов компрессии аудиоданных. Отдельную благодарность я выражаю:
-
-
-
Э. Робинсону за работу над Shorten. Его статья послужила отправной точкой для нескольких основных методов, заложенных во FLAC. FLAC развил идею постоянных предикторов, используемую в Shorten.
-
-
С. Голомбу и Роберту Райсу. Их универсальные коды используются кодером энтропии.
-
-
Н. Левинсону и Дж. Дарбину. Базовый кодер использует разработанный и улучшенный ими алгоритм для определения LPC коэффициентов из коэффициентов автокорреляции.
Разбиение на блоки. Ввод разбивается на множество последовательных блоков, которые могут иметь различный размер. Оптимальный размер блока обычно зависит от многих факторов, таких как частота дискетизации, спектральная характеристика во времени и т.д. Несмотря на то, что формат FLAC позволяет использовать в потоке блоки различного размера, базовый кодер использует постоянный размер.
-
-
Межканальная декорреляция. В случае стереопотоков кодер создает средний и разностный сигналы, основанные на среднем значении между левым и правым каналами и их разности соответственно. На следующий этап кодирования передается лучший из вариантов сжатого сигнала.
-
-
Прогнозирование. Далее кодер пытается найти математическое описание сигнала (обычно приблизительное). Зачастую оно значительно меньше самого сигнала. Так как методы предсказания известны и кодеру, и декодеру в потоке нужно указать только параметры предиктора. Сейчас FLAC использует четыре различных класса предикторов (описанных в разделе Прогнозирование), но в формате предусмотрено место для дополнительных методов. FLAC допускает изменение класса предиктора от блока к блоку и даже в пределах канала в блоке.
-
-
Кодирование остатков. Если предиктор не описывает сигнал точно, разница между оригинальным сигналом и спрогнозированным (называемым еще ошибочным или остаточным) должна быть закодирована без потерь. Если предсказание эффективно, остаточный сигнал будет занимать меньше бит на сэмпл, чем оригинальный сигнал. Сейчас FLAC использует только один метод для кодирования остатков (см. раздел Кодирование остатков), однако в формате предусмотрено место для дополнительных методов. FLAC допускает изменение метода кодирования остатков от блока к блоку и даже в пределах канала в блоке.
-
-
-
В дополнение ко всему определена система метаданных, позволяющая добавлять в начало потока произвольную информацию.
Линейное прогнозирование FIR. Для более точного моделирования (за счет медленной работы) FLAC поддерживает линейное прогнозирование FIR до 32 порядка (см. Shorten и AudioPak). Базовый кодер использует метод Левинсона-Дарбина для расчета LPC коэффициентов из коэффициентов автокорреляции и коэффициенты разбиваются перед вычислением остатков. В то время как такие кодеры как Shorten используют постоянное разбиение для всего ввода, FLAC позволяет для каждого фрейма менять точность коэффициента разбиения. Базовый кодер FLAC оценивает оптимальную точность, основываясь на размере блока и диапазоне оригинального сигнала.
Аудиопоток состоит из одного или нескольких фреймов. У каждого фрейма есть заголовок, состоящий из кода синхронизации, информации о фрейме (размер блока, частота дискретизации, количество каналов и т.п.) и восьмибитной контрольной суммы. Также в заголовке содержится либо номер первого сэмпла во фрейме относительно всего потока (для потоков с изменяющимся размером блока) или номер фрейма (для потоков с постоянным размером блока). Это позволяет производить быстрый и точный поиск. Далее следуют закодированные подфреймы (по одному на каждый канал) и, наконец, фрейм, дополненный нулями до границы байта. Каждый подфрейм имеет свой заголовок, определяющий способ его декодирования.
-
-
Так как декодер может начать работу в середине потока, должен быть метод определения начала фрейма. Каждый фрейм начинается с 14-битного синхронизирующего кода. Этот код не может появляться ни в одном другом месте заголовка фрейма. Однако так как это код может появиться в подфреймах, у декодера есть два способа определить, что данная последовательность является началом фрейма. Сначала проверяется корректность данных во всем фрейме. Однако этот шаг не может гарантировать отсутствия ошибок, поэтому дополнительно производится расчет восьмибитной контрольной суммы заголовка фрейма и полученный результат сравнивается со значением, полученным при кодировании и записанным после заголовка фрейма.
-
-
Каждый фрейм должен содержать основную информацию о потоке, так как декодер может не иметь доступа к блоку метаданных STREAMINFO в начале потока. Сюда входит частота дискретизации, количество бит на сэмпл, количество каналов и т.д. Так как заголовоки фреймов вносят дополнительные накладные расходы, то они влияют уровень сжатия. Чтобы сделать заголовки фреймов минимальными, FLAC использует таблицы поиска для наиболее часто используемых значений параметров фремов. Например, часть, отвечающая за частоту дискретизации, занимает 4 бита. Восемь предопределенных значений соответствуют наиболее самым распространенным частотам (8/16/22.05/24/32/44.1/48/96 кГц). Однако дополнительные частоты могут быть использованы с помощью специального набора битов, указывающего декодеру, что необходимое значение находится в конце заголовка. Такой же метод используется для указания размера блока и количества битов на сэмпл. В этом случае заголовок остается достаточно малым для наиболее распространенных типов аудиоданных.
-
-
Подфреймы (по одному для каждого канала) кодируются во фрейме отдельно и хранятся в потоке последовательно. Это ведет к упрощению декодера, однако ценой этому является увеличение размеров буффера. У каждого подфрейма есть свой заголовок, определяющий его аттрибуты (метод и порядок прогнозирования, параметры кодирования остатков и т.д.). За заголовком следуют аудиоданные для этого канала.
Минимальный размер блока в сэмплах в данном потоке.
-
-
-
-
<16>
-
Максимальный размер блока в сэмплах в данном потоке.
-
-
-
-
<24>
-
Минимальный размер фрейма в байтах в данном потоке. Если значение не известно, то 0
-
-
-
-
<24>
-
Максимальный размер фрейма в байтах в данном потоке. Если значение не известно, то 0
-
-
-
-
<20>
-
Частота дискретизации в Гц.
-
-
-
-
<3>
-
(Количество каналов) - 1. FLAC поддерживает от 1 до 8 каналов.
-
-
-
-
<5>
-
(Количество битов на сэмпл) - 1. FLAC поддерживает от 1 до 32 битов на сэмпл. Сейчас базовые декодер и кодер поддерживают до 24 бит на сэмпл.
-
-
-
-
<36>
-
Количество сэмплов в потоке. Если здесь указан 0, то количество сэмплов не известно.
-
-
-
-
<128>
-
Подпись MD5 несжатых аудиоданных, которая позволяет декодеру обнаружить ошибку, даже если ее наличие не нарушает структуру потока.
-
-
-
-
-
Примечания:
-
-
Во FLAC определен минимальный размер блока в 16 сэмплов и максимальный размер - 65535. Это значит, что значения от 0 до 15 в соответствующих полях являются ошибочными.
Содержимое комметария в формате Vorbis, как оно описано здесь. Обратите внимание на то, что спецификация Vorbis ограничивает размер этого блока 2 ^ 64 байтами, в то время как блок метаданных FLAC может иметь размер не больше 2 ^ 24 байтов. В соответствии со спецификацией Vorbis 32-битные данные, записанные в прямом порядке, в отличие от целых, записанных в обратном порядке, используемых в остальных частях FLAC.
Номер в мультимедийном каталоге, в котором используются только символы ASCII из диапазона 0x20-0x7e. В общем случае этот номер может иметь размер от 0 до 128 байтов, а символы справа, оставшиеся неиспользованными, должны быть заполнены байтом 0x00. На аудиодисках номер состоит из 13 цифр, за которыми следуют 115 пустых символов.
-
-
-
<64>
-
Количество начальных сэмплов. Это поле имеет значение только для оглавлений аудиодисков, для остальных целей должно быть установлено значение 0. Для аудиодисков начальной является зона помеченная как TRACK 00, где хранится оглавление. Более точно определение для данного поля выглядело бы так: это число сэмплов от первого сэмпла на диске до первого сэмпла превой индексной точки первого трека. В соответствии со стандартом Red Book начальная зона должна содержать тишину, поэтому программы для копирования с аудиодиска обычно не сохраняют ее. Кроме того начальная зона должна занимать не меньше двух секунд. Поэтому здесь хранится длина начальной зоны, чтобы потом моджно было вычислить абсолютную позицию первого трека. Обратите внимание на то, что число сэмплов указывается до первой индексной точки первого трека, а не обязательно до точки INDEX 01 первого трека, так как на первом треке могут быть данные с индексом INDEX 00.
-
-
-
<1>
-
1, если CUESHEET соответствует компакт диску, иначе 0.
-
-
-
<7+258*8>
-
Зарезервировано. Все биты должны быть равны 0.
-
-
-
<8>
-
Количество треков. Для аудиодисков это число должно быть не больше, чем 100 (99 обычных треков и завершающий трек).
Один или больше треков. В блоке CUESHEET обязательно должен быть завершающий трек@@@@. По спецификации Red Book на аудиодисках номер завершающего трека должен равняться 170.
Смещение трека в сэмплах относительно начала аудиопотока FLAC. Это смещение для первой индексной точки трека. (Обратите внимание на отличие от аудиодиска, где смещение трека в содержании хранится в INDEX 01, даже если есть INDEX 00.) В аудиодиске смещение всегда кратно 588 (588 сэмплов = 44100 сэмплов/сек. * 1/75 сек.).
-
-
-
<8>
-
Номер трека. Номер трека 0 недопустим, чтобы избежать конфликта со спецификацией аудиодиска, которая резервирует этот номер для начального трека. Для аудиодиска номер должен быть от 1 до 99 или 170 для завершающего трека. Не является необходимым, но рекомендуется начинать нумерацию с 1 и увеличивать номера последовательно. Номера треков в списке должны быть уникальными.
-
-
-
<12*8>
-
Международный стандартный код записи (ISRC) для трека. Это 12-символьный код, состоящий только из цифр; см. здесь и здесь. Значение из 12 пустых символов ASCII можно использовать, чтобы указать на отсутствие ISRC.
-
-
-
<1>
-
Тип трека: 0 - для аудио, 1 - для остальных типов данных. Это поле соответствует третьему контольному биту Q-канала аудиодиска.
-
-
-
<1>
-
Флаг предварительной корелляции: 0 -- если ее нет, иначе 1. Соответствует 5 контрольному биту Q-канала аудиодиска; см. здесь.
-
-
-
<6+13*8>
-
Зарезервировано. Все биты должны быть равны 0.
-
-
-
<8>
-
Число индексных точек трека. Для каждого трека должен быть хотя бы один индекс, кроме завершающего, у которого нет индекса. У аудиодиска это число не должно быть больше 100.
Смещение в сэмплах индексной точки относительно смещения трека. Для аудиодиска смещение должно быть кратно 588 (588 сэмплов = 44100 сэмплов/сек. * 1/75 сек.). Обратите внимание на то, что смещение берется от начала трека, а не от начала аудиоданных.
-
-
-
<8>
-
Номер индексной точки. Первый индекс трека должен иметь номер 0 или 1, а далее номера индексов должны последовательно увеличиваться на 1. Номера индексов для трека должны быть уникальны.
01-11 : зарезервировано для последующего использования
-
-
-
-
-
-
<4>
-
Размер блока в сэмплах:
-
-
0000 : получить из блока метаданных STREAMINFO
-
0001 : 192 сэмпла
-
0010-0101 : 576 * (2^(2-n)) сэмплов, т.е. 576/1152/2304/4608
-
0110 : получить 8 битов (размер блока-1) из конца заголовка
-
0111 : получить 16 битов (размер блока-1) из конца заголовка
-
1000-1111 : 256 * (2^(n-8)) сэмплов, т.е. 256/512/1024/2048/4096/8192/16384/32768
-
-
-
-
-
-
<4>
-
Частота дискретизации:
-
-
0000 : получить из блока метаданных STREAMINFO
-
0001-0011 : зарезервированы
-
0100 : 8кГц
-
0101 : 16кГц
-
0110 : 22.05кГц
-
0111 : 24кГц
-
1000 : 32кГц
-
1001 : 44.1кГц
-
1010 : 48кГц
-
1011 : 96кГц
-
1100 : получить 8-битное значение частоты дискретизации (в кГц) из конца заголовка
-
1101 : получить 16-битное значение частоты дискретизации (в Гц) из конца заголовка
-
1110 : получить 16-битное значение частоты дискретизации (в дГц) из конца заголовка
-
1111 : ошибочное значение, чтобы не допустить совпадение с кодом синхронизации
-
-
-
-
-
-
<4>
-
Расположение каналов:
-
-
0000-0111 : (количество независимых каналов)-1. Когда == 0001, канал 0 является левым, 1 - правым
-
1000 : левостороннее стерео: канал 0 является левым, 1 - разностным
-
1001 : правостороннее стерео: канал 0 является разностным, 1 - правым
-
1010 : усредненное стерео: канал 0 является усредненным, 1 - разностным
-
1011-1111 : зарезервированы
-
-
-
-
-
-
<3>
-
Количество битов на сэмпл:
-
-
000 : получить из блока метаданных STREAMINFO
-
001 : 8 бит на сэмпл
-
010 : 12 бит на сэмпл
-
011 : зарезервировано
-
100 : 16 бит на сэмпл
-
101 : 20 бит на сэмпл
-
110 : 24 бит на сэмпл
-
111 : зарезервировано
-
-
-
-
-
-
<1>
-
Дополнение нулем до границы бита, чтобы не допустить ошибку синхронизации
-
-
-
-
<?>
-
Если (переменный размер блока)
- <8-56> : номер сэмпла в формате UTF-8 (размер декодируемого числа 36 бит)
- иначе
- <8-48> : номер фрейма в формате UTF-8 (размер декодируемого числа 31 бит)
8-битная полиномальная контрольная сумма (x^8 + x^2 + x^1 + x^0) данных заголовка, включая код синхронизации (x инициализируется нулем).
-
-
-
-
-
Примечания:
-
-
Биты размера блока 0000-0101 могут быть использованы только при постоянном их значении во всем блоке. Биты 0110-0111 могут использоваться в любом случае, декодер будет считать, что поток имеет переменную длину блока. Существует одно исключение: кодер может использовать биты 0110-0111 в последнем фрейме потока с постоянным размером блока в том случае, если его длина не больше, чем используемая в всем потоке.
0 : в исходном подблоке нет 'неиспользуемых битов', k=0
-
1 : k 'неиспользуемых битов' в исходном подблоке, число записывается в унарном формате; т.е. для k=3 последовательность битов будет выглядеть так 001, для k=7 - 0000001.
-
-
-
-
-
-
-
Примечания:
-
-
'Неиспользуемые биты' встречаются в блоке данных, если при заявленных n битах значимыми являются только m. Число k = n - m и будет определять количество 'неиспользуемых битов'. Например, если все 16-битные сэмплы в исходном подблоке выглядят как 'xxxxxxxxxxxxx000', то кодер кодирует только 13 бит, и запоминает, что 3 бита являются 'неиспользуемыми'.
Так как FLAC - это открытый проект, важно определить список целей, к чему нужно стремиться. Время от времени они могут немного изменяться, но всегда должны определять направление развития. изменения должны согласовываться с текущими целями и не пытаться включить в себя антицели.
-
-
-
Цели
-
-
-
FLAC должен оставаться открытым форматом. Все исходные тексты либо под LGPL, либо под GPL.
-
-
FLAC должен производить только сжатие без потерь. Вроде бы это очевидно, однако, кодирование с потерями пытается проникнуть во все аудио кодеки. Эта цель также означает, что FLAC должен придерживаться только принципов архивирования и сжимать без потерь абсолютно все типы входных данных. Релизы должны тщательно тестироваться.
-
-
FLAC должен достичь приемлимого уровня сжатия файлов.
-
-
FLAC должен иметь низкие аппаратные требования и обеспечить декодирование в реальном времени даже на старых компьютерах.
-
-
FLAC должен поддерживать быстрый и точный поиск.
-
-
FLAC должен поддерживать воспроизведение без пауз для следующих друг за другом потоков.
-
-
Проект FLAC находится в долгу перед многими людьми, кто улучшал методы сжатия звука, и нацелен на поддержку новых идей с помощью открытой разработки.
-
-
-
-
Антицели
-
-
-
Сжатие с потерями. Существует достаточно много хороших форматов, предназначенных именно для этого (Ogg Vorbis, mp3, и т.д.).
FLAC позволяет приложениям третьих лиц зарегистрировать id для использования блоков метаданных APPLICATION. Чтобы получить id или внести изменение в существующий id, используйте форму на этой странице (пишите на английском языке).
Вышла версия FLAC 1.1.0. Среди новых возможностей поддержка ReplayGain и списков разметки аудиодисков. Кроме того улучшено сжатие 24-битных файлов и добавлениа поддержка редактирования тегов в плагинах. Подробнее об этом на странице новостей.
-
-
Обратите внимание на то, что был увеличен младший номер версии, а значит совместимость снизу вверх была нарушена (т.е. более ранние версии декодеров не смогут воспроизводить файлы, созданные более поздними версиями кодера). Это произошло из-за ошибки в декодерах в версиях до 1.0.4 включительно, из-за которой декодеры неправильно пропускали неизвестные блоки метаданных. Потоковый формат не изменился, поэтому обратная совместимость не нарушена. Это значит, что файл FLAC со списком разметки аудиодиска не будет декодироваться версиями до 1.1.0, в которой была исправлена упомянутая выше ошибка.
-
-
Если вы используете FLAC и у вас есть предоложения или патчи, пожалуйста, присодиняйтесь к списку рассылки или группе разработчиков. Сообщить об ошибке можно здесь.
-
-
Что такое FLAC?
-
-
FLAC - это аббревиатура от Free Lossless Audio Codec (свободный аудиокодек, сжимающий без потерь). Проект FLAC включает:
-
-
-
потоковый формат;
-
базовые кодеры и декодеры в виде библиотек;
-
flac, утилиту командной строки, выполняющую сжатие и распаковку файлов .flac;
-
metaflac, утилиту командной строки для редактирования метаданных в файлах .flac;
-
плагины для разных плейеров.
-
-
-
"Свобода" означает, что спецификация потокового формата открыта для всех и может быть использована для любых целей (проект FLAC оставляет за собой право устанавливать спецификации и сертифицировать относящиеся к нему продукты на совместимость), а также то, что ни формат, ни один из реализованных методов кодирования/декодирования не запатентованы. Это также значит, что все исходные тексты доступны по лицензиям, обязывающим предоставлять исходные коды.
-
-
FLAC компилируется на множестве платформ: Unixes (Linux, *BSD, Solaris, OS X), Windows, BeOS и OS/2. Имеются системы сборки для autoconf/automake, MSVC, Watcom C и Project Builder.
-
-
Чтобы узнать больше о проекте FLAC, смотрите страницы характеристики, документация и формат. Также приведено сравнение кодеров, сжимающих без потерь, и список целей, стоящих перед участниками проекта.
-
-
-
Файлы
-
-
На этой странице находятся ссылки на исходные тексты, а также скопилированные версии для различных операционных систем, кроме того их можно получить прямо на SourceForge.
-
-
-
Документация
-
-
Документация доступна в режиме онлайн и в дистрибутивах. Информация по установке и использованию flac и плагинов находится здесь. Более детальная информация о формате FLAC и базовом кодере приведена на этой странице.
-
-
-
Регистрация id
-
-
Если у вас есть приложение, использующее FLAC, и вы хотите, чтобы оно работало с добавляемыми в файл метаданными, зайдите на страницу регистрации и зарезервируйте для него идентификатор.
26.01.2003
-Вышла версия FLAC 1.1.0, в которой сделано не все, что хотелось, но время релиза подошло.
-
-
Обратите внимание на то, что был увеличен младший номер версии, а значит совместимость снизу вверх была нарушена (т.е. более ранние версии декодеров не смогут воспроизводить файлы созданные более поздними версиями кодера). Это произошло из-за ошибки в декодерах в версиях до 1.0.4 включительно, из-за которой декодеры неправильно пропускали неизвестные блоки метаданных. Потоковый формат не изменился, поэтому обратная совместимость не нарушена. Это значит, что файл FLAC со списком разбиения аудиодиска не будет декодироваться версиями до 1.1.0, в которой была исправлена упомянутая выше ошибка.
Новый блок метаданных CUESHEET для хранения содержания CD и информации об индексных точках. Теперь аудиодиск может быть полностью сохранен в один файл.
Оптимизация для 3DNow! теперь включена по умолчанию.
-
Полная система сборки для MSVC с файлом проекта .dsp, с помощью которой можно создать статитеские и динамические библиотеки в режиме отладки или релиза.
-
-
-
flac:
-
-
Может декодировать FLAC в AIFF; новый ключ --force-aiff-format.
-
Новая возможность --cuesheet позволяет читать и сохранять списки разбиения аудиодиска при кодирования диска полностью. Автоматически создаются точки поиска для треков и индексные точки, кроме тех случаев, когда используется ключ --no-cued-seekpoints.
-
Новая опция --replay-gain для вычисления и сохранения значений ReplayGain.
-
Новая опция --until дополняет --skip для остановки декодирования в определенном месте потока.
-
--skip и --until могут получать значения в формате мм:сс.сс.
-
Новый ключ -S #s указывает, что точки для поиска нужно расставлять с интервалом в '#' секунд.
-
flac создает таблицу поиска по умолчанию параметром -S 10s вместо -S 100x.
-
flac добавляет блок PADDING размером 4Кб по умолчанию (отключается опцией --no-padding).
-
Исправлена ошибка с ключом --skip и кодированием из AIFF в FLAC.
-
Исправлена ошибка, приводящая к порче заголовка WAVE файла, создаваемого при декодировании файла FLAC, у которого в блоке STREAMINFO было значение total_samples==0.
-
-
-
metaflac:
-
-
Новый ключ --import-cuesheet-from для чтения и сохранения списка разметки аудиодиска при кодирования диска полностью. Также автоматически создаются точки поиска для трека и индексные точки, кроме тех случаев, когда используется ключ --no-cued-seekpoints.
-
Новый ключ --export-cuesheet-to для записи списка разметки аудиодиска из файла FLAC.
-
Новый ключ --add-replay-gain для вычисления значений ReplayGain и сохранения их в виде тегов.
-
Новый ключ --add-seekpoint для добавления точек поиска в существующий файл FLAC.
-
-
-
Плагин для XMMS:
-
-
Настраиваемое проебразование частоты дискретизации со сглаживанием сигнала.
-
Поддержка ReplayGain для настройки ограничения шума, предварительного усиления и опционального жесткого ограничителя.
-
Новый редактор комментариев Vorbis.
-
Работает окно информации о файле.
-
Используется тег ARTIST, если нет тега PERFORMER.
-
-
-
Библиотеки (для разработчиков):
-
-
Весь код и тесты отлажены для Valgrind. Все тесты прошли проверку Valgrind, а это значит, что в программе нет утечек памяти или переполнений буфера.
-
Процедура FLAC__metadata_object_new(FLAC__METADATA_TYPE_VORBIS_COMMENT) теперь записывает информацию о кодере.
-
-
-
-
24.09.2002
-Вышла версия FLAC 1.0.4, в которой сделано большое количество улучшений:
-
-
-
Плагины:
-
-
-
-
Поддержка комментариев Vorbis, ID3 v1 и v2.
-
Конфигуруемое форматирование заголовка и преобразование кодировок в плагине для XMMS.
-
Поддержка 8- и 24-битных файлов. На стадии компиляции можно выбрать либо 24-битный вывод, либо линейное преобразование к 16-битному выводу (по умолчанию).
-
-
-
flac
-
-
-
Улучшен анализ опций командной строки (с помощью getopt).
-
Поддержка формата AIFF (спасибо Брэди Паттерсону).
-
Небольшое увеличение скорости работы декодера.
-
--sector-align теперь поддерживает в качестве ввода файлы без заголовка.
-
Новая опция -T, --tag для добавления комментариев Vorbis при кодировании.
-
Новая опция --serial-number, которая может использоваться вместе с ключом --ogg.
-
Автоматически записывается информация о кодере в комментарии Vorbis.
-
Значительно уменьшены требования к памяти.
-
Исправлена ошибка, из-за которой неподдерживаемые дополнительные теги формата RIFF WAVE не пропускались.
-
Исправлена ошибка с определением значения granulepos в потоках Ogg FLAC.
-
Исправлена утечка памяти при кодировании нескольких файлов с опцией -V.
-
-
-
metaflac
-
-
Поддержка UTF-8 в комментариях Vorbis.
-
Новые команды --import-vc-from и --export-vc-to commands для импорта/экспорта комментариев Vorbis. Например, так можно скопировать тег из файла и записать в него:
- $ metaflac --export-vc-to=- --no-utf8-convert file.flac | vorbiscomment --raw -w file.ogg
- $ vorbiscomment --raw -l file.ogg | metaflac --import-vc-from=- --no-utf8-convert file.flac
-
Исправлена ошибка, возникавшая при обработке файлов, доступных только для чтения
-
-
-
Библиотеки:
-
-
-
Все API теперь докуметируются с помощью cbcntvs Doxygen. См. здесь.
-
Новые библиотеки libOggFLAC и libOggFLAC++, которые являются оболочками для libFLAC и libFLAC++, для кодирования и декодирования потоков Ogg FLAC.
-
Новые FLAC__SeekableStreamEncoder и FLAC__FileEncoder из библиотеки libFLAC упрощают основные задачи, возникающие при кодировании.
-
Новый режим проверки во всех кодерах.
-
Значительно уменьшено количество памяти, требуемой для кодеров и декодеров.
-
Кодер автоматически записывает информацию в блок VORBIS_COMMENT.
-
Увеличена скорость кодирования с постоянными предикторами, а также скорость вычисления MD5 для 16-битных моно- и стереосигналов на архитектуре x86 (спасибо Мирославу Личвару).
-
Исправлена ошибка в интерфейсе метаданных, из-за которой информация о количестве битов на сэмпл в блоке STREAMINFO считывалась неверно.
-
Исправлена ошибка, из-за которой декодер мог войти в бесконечный цикл при обрыве потока.
-
-
-
-
-
22.08.2002
-Поддержка FLAC была добавлена в Rio Receiver и Dell Digital Audio Receiver с помощью клиента RioPlay Дэвида Флауердэя. См. анонс полностью.
-
-
13.02.2002
-Первая аппаратная реализация FLAC. Phatnoise стала первой коммерческой аппаратной платформой, поддерживающей FLAC. Для воспроизведения FLAC файлов плейером Phatbox выпущена прошивка. Подробнее об этом смотрите здесь.
-
-
03.12.2001
-Вышла версия FLAC 1.0.2. Релиз сделан для исправления проблемы, приводящей к "падению" плагинов. Ошибка также могла касаться пользователей libFLAC, которые использовали один экземпляр декодера файлов для нескольких файлов. Подробнее см. здесь.
-
-
14.11.2001
-Вышла версия FLAC 1.0.1. Основной кодек не был изменен, но были добавлены несколько новых возможностей и исправлено несколько ошибок.
-
-
-
-
Новые возможности для пользователей:
-
-
-
Поддержка Ogg-FLAC, т.е. flac теперь может читать и создавать потоки с использованием транспортного уровня Ogg.
-
-
Новый плагин для Winamp 3, основанный на Wasabi Beta 1 SDK.
-
-
Новые утилиты для поддержки FLAC в Monkey Audio GUI; см. описание.
-
-
Поддержка Mac OS X. В разделе файлы теперь есть скомпилированная версия для OS X.
-
-
Поддержка Mingw32.
-
-
Улучшена обработка специфичных для MS 'fmt' заголовков файлов WAVE.
-
-
-
Новые возможности для разработчиков:
-
-
-
-Добавлен уровень SeekableStreamDecoder между StreamDecoder и FileDecoder. С его помощью удобнее использовать библиотеку libFLAC в ситуациях, когда неодостачно информации о декодируемом файле. Болле подробно все описано в разделе документация. Интерфейс для StreamDecoder и FileDecoder остался прежним и, соответственно, сохранилась бинарная совместимость с libFLAC 1.0.
-
-
Уменьшен размер стека необходимый кодеру.
-
-
-
Исправленные ошибки:
-
-
-
Существенная ошибка при кодировании raw ввода, приводящая к добавлению 12 лишних сэмплов к получаемому файлу. Кодирование из WAVE файлов работало правильно.
-
-
Ошибка в libFLAC, связанная с установкой имени файла в stdin в декодере файлов.
-
-
Ошибка в libFLAC, возникающая при множественных вызовах для установки имени файла и приводящая к утечке памяти.
-
-
metaflac правильно пропускает тег id3v2.
-
-
metaflac правильно пропускает большие блоки метаданных.
-
-
-
-
-
-
20.07.2001
-Вышла версия FLAC 1.0! Добавлено несколько новых возможностей, но в основном исправления ошибок.
-
-
-
-
Новая опция '--sector-align' позволяет выравнивать группу кодируемых аудиофайлов на границу сектора в формате Audio-CD.
-
-
Новая опция '--output-prefix' добавляет префикс ко всем выходным именам файлов (полезно, например, для сохранения результатов работы в другой каталог).
-
-
Улучшенное автоопределение WAVE (больше не полагается на ungetc()).
-
-
Более понятная статистика при кодировании/декодировании.
-
-
Изменения в интерефейсе библиотеки libFLAC для более простой поддержки бинарной совместимости в будущем.
-
-
Новая опция '
--sse-os
' в конфигурационном скрипте для использования более быстрых процедур, основанных на SSE.
-
-
Еще одно (надеюсь последнее) исправление в плагине для Winamp 2.
-
-
Немного улучшена оценка параметра Райса.
-
-
Исправление ошибок, возникающих в очень редких ситуациях при кодировании.
-
-
-
-
07.06.2001
-Вышла версия FLAC 0.10. Скорее всего это последняя бета версия. За последние два месяца было сделано много улучшений.
-
-
-
Скорость работы кодера и декодера значительно возросла. Основные процедуры написаны на ассемблере для IA-32.
-
-
Добавлен блок метаданных SEEKTABLE, содержащий информацию, позволяющую ускорить значительно ускорить поиск в потоке.
-
-
Модель поведения flac теперь аналогична gzip.
-
-
Опции -# настроены для получения наилучшего соотношения уровень/время сжатия. По умолчению установлено значение -5.
-
-
Неподдерживаемые блоки в WAVE-файле теперь пропускаются с предупреждением.
-
-
Добавлена опция --delete-input-file, позволяющая удалять входной файл после удачного кодирования/декодирования.
-
-
Изменен плагин для XMMS, чтобы нормально работала визуализация.
-
-
Исправлена ошибка, возникающая в потоковом декодере после поиска.
-
-
-
-
31.03.2001
-Вышла версия 0.9. Исправлены плагины для Winamp и XMMS. Изменен формат (надеюсь, последний раз). Потеряна совместимость со всеми предыдущими версиями.
-
-
-
24.03.2001
-Близится выход версии 0.9, в которой должен быть исправлен плагин для Winamp. Джош обратился через список рассылки, чтобы после выхода этой версии к нему обратились с пожеланиями (особенно радикальными, которые могут коснуться формата).
-
-
-
21.03.2001
-Текущая версия FLAC - 0.8. Начат перевод документации.
-
-
-
10.12.2000
-FLAC выложен на SourceForge. Посетите страницу проекта, чтобы подписаться на список расылки или стать разработчиком.
-
-