На Сундуке сейчас много идет обсуждения по влиянию на звук разных форматов сжатия и хранения аудиоданных. Поскольку там ветка уже совсем превратилась во флеймовую, то я хочу с нуля объяснить свою позицию, основанную на знаниях процессов.
WAV - формат не сжатых аудиоданных. Несмотря на то, что сам формат определен как контейнер, т.е. может включать в себя данные других форматов, такое его использование не прижилось и формат используют для хранения сырых несжатых аудиоданных. Но даже в нем могут содержаться неоднозначности. Формат допускает хранение данных с разным количеством каналов, разной частотой семплирования и разной глубиной данных. Наиболее распространены форматы хранения 16 бит и 24 бита целыми числам. Однако предусмотрены и форматы хранения с плавающей точкой 32 бита. Этот формат используется во время работ по сведению материала. Удобен он тем, что если при обработке произошел выброс выше разрядной сетки, то целочисленный формат потеряет информацию об уровне сигнала. Если же хранить данные в формате с плавающей точкой, то данные не потеряются, а, в последствии, можно провести коррекцию уровня. Но с данными в плавающем формате не могут работать ЦАП-ы, они работают только с целочисленными форматами. Перевод из одного в другой происходит с округлением и, часто, добавлением дизеринга. Это означает, что на разных программно-аппаратных реализациях можно получить данные с отличием до +-2 msb, что, может быть, кто-нибудь и услышит. Хотя и маловероятно.
MP3 и другие форматы сжатия с потерями. Расхождений в звучании таких фалов может быть бесконечное число, тому способствуют не только возможности выбора битрейта при сжатии, но и набор тонкостей при компрессии и декомпрессии. Несмотря на то, что алгоритмы сжатия для этих форматов стандартизованы, два файла, полученные от двух разных программ сжатия, с одними и теми же настройками, будут разными. Причина связана с тем, что для сжатия с потерями надо принять решение о том, какие детали звука будут потеряны. Это решение определяется не только алгоритмом, но и коэффициентами, значения которых не стандартизованы и могут выбираться исходя из предпочтений разработчика. Дорогие коммерческие MP3 кодеры отличаются от свободно распространяемых только набором этих коэффициентов, значения которых уточнялись на основе психоакустики и результатов тестирования. В свободные кодеры применяют обычно коэффициенты, вписанные в стандарт как примеры, что бы было от чего отталкиваться. С другой стороны, поскольку данные при таком сжатии уже потеряны, то при распаковке можно стараться не полностью. Живой пример, сравнивали работу распаковщика MP3, встроенного в 3-й Айфон и 2-й Айпад при проигрывании через AirPortExpress. Они давали разные данные, проигрыватель Айфона явно экономил процессорное время, а, как следствие, заряд батарейки, производит менее качественную распаковку. Интересно то, что формат AirPlay допускает передачу на конечное устройство не только сырых распакованных данных, но и в исходной закодированной форме. Тогда устройство воспроизведение декодирует их само и разницы при проигрывании с разных устройств не будет. Хотя не факт, что конечное устройство произведет распаковку в лучшей форме, обычно лучше это делают настольные компьютеры, в них ни кто не экономит электроэнергию.
FLAC, APE и другие форматы сжатия без потерь. Эти форматы рассчитаны на то, что если произвести распаковку сжатых данных, то полученные данные должны совпадать с исходными бит в бит. Внутри каждого сжатого файла находится информация о формате исходного файла, например 44/16 или 96/24 и распаковка ведется до этого формата. Расчеты при распаковке ведутся с большим разрешением, чем формат выходных данных и распаковка на разных программах и процессорах может приводить к разным незначащим хвостикам данных, например то, что начинается с 17-го бита для файла 44/16. Если использовать оригинальную программу распаковки, то результат однозначен и предсказуем. Однако, если работает плагин и распакованные данные не складываются на диск, то возможна ситуация, что, например тот же Foobar, заказыввает у плагина данные в формате 24 или 32 бита, а исходные данные были в формате 16 бит. В этом случае оставшиеся биты получатся на усмотрение плагина и у разных плагинов, плееров, на разных процессорах эти "незначащие" данные могут быть разные. По этой причине, распаковка "на лету" может приводить к разным результатам, несмотря на проигрывание файлов в формате "без потерь". И действительно, та часть данных, что была в исходном файле, не теряется, но вот додуманные хвостики могут отличаться.