Здесь приведу свои высказывания из форума aleXmod software builds по поводу возможности поддержки аудио высокого разрешения на архитектуре Coldfire и в iAudio X5 (с aleXmod) в частности. Высказывания скорректированы в связи с моим текушим пониманием проблемы.
Разрядность в текущей схемотехнике может быть только 16 бит. Это связано с тем что используется связка IIS c DMA (процессор не учавствует в передаче) а DMA там 32-битное, тоесть может послать толко два 16-битных слова (левый/правый) за раз. Есть теоретическая возможность использовать IIS напрямую без DMA. Тогда мы получим 20битный поток (ограничение модуля IIS Coldfire). Это потянет за собой перевешивание кодека на другой IIS порт (читай перепаивание проводов) - текущий используется только в связке с DMA и соответственно 16-битный, и написание довольно нетривиального драйвера для менеджмента двух FIFO левого и правого каналов.
Далее по поводу высоких семплрейтов. Я имею ввиду полноценную поддержку (оговорка 16 бит) аудио в профессиональном формате 24бит/96 кгц (LP рипы итд). Здесь тоже не все так радужно.
во первых есть ограничение по максимальной частоте. Сейчас в устройстве установлен кварц 11.2896 мГц и есть возможность использовать его без деления как мастерклок для ЦАПа (сейчас именно так и сделано). Только вот ЦАП сможет "поднять" на такой частоте максимум 88.2 кгц (режим 128Fs).*
во вторых использовать ЦАП в нативном режиме не получится. Это требует наличия "плавной" регулировки частоты мастерклока что в текущей архитектуре невозможно да и в других сомнительно. Есть возможность прыгать по "кратным" частотам. Так как от 44100 мы никуда не уйдем, получается линейка (44100, 88200, 176400**).
* - есть теоретическая возможность поставить другой кварцевый резонатор
** - при условии что X5 успешно заведется от кварца 22.5792 мГц. Также есть серьезные сомнения что текущая архитектура потянет поток 176400 - у нас есть некоторые проблемы с 88200, и это учитывая то что кодеки работают на 44100, обрабатывая при этом в два раза меньше данных.
Думаю что с подобными ограничениями нет особого смысла разгонять X5 до 176400 - если уж и нужен Hi-Res следует искать плеер который его нативно поддерживает, а уж потом попытаться его улучшить/доработать если необходимо.
Андрей, посмотрел Coldfire в iAudio X5 и вот что получается: 1. По схемотехнике ограничение только по внутренней шине аудио-интерфейса 20 бит: решаемо программной заменой регистров 3й (16+16) на 1й или 2й (20+20), DMA необходимо программно включить 2й канал (режим и адреса), в DSP обрезку до 16бит в один буфер заменить обрезкой до 20 бит в два буфера (левый и правый по числу регистров аудио-интерфейса). 2. Высокие семплрейты интересны, но потребуют оптимизации кода, а он очень сырой. В частности в DSP зачем-то введена работа с постоянным уровнем сигнала, а потом благополучно все отрезано при переводе в 16 бит, вот так. 3. Нашел интересный подход JVC по работе с улучшением качества сигнала (технология K2), так там все в комплексе делается и частота и разрядность вместе повышаются. 20 бит не так уж и плохо 120 Дб соответствуют предельному качеству DVD. Ссылку на новость от 31/08/2011 (Ключевые технологии JVC: K2 и CC-конвертер) прикладываю http://coda.ru/brand.aspx?page=ART&brand=JVC
C DMA не получится. IIS требует четкого чередования данных каналов L-R-L-R, двумя каналами DMA этого не добиться так как они будут работать независимо, а надо синхронно. Производитель SCF5250 предусмотрел работу DMA только с 32-битными PDIR2 и PDOR3 которые сами генерят сигналы для запуска/остановки DMA в зависимости от состояния их FIFO. Смотри SCF5250 User’s Manual, глава 17.5 DMA CHANNEL INTERACTION.
Андрей, на досуге изучал все по п.1, оказывается 16 бит справедливо только для источника в IIS (память источник), приемник может иметь несогласованную разрядность, причем за согласование отвечает схема синхронизации правого и левого каналов...синхронизация программируется в т.ч. и для DMA режима, причем допустимы циклы по 32, 48 и 64 бита. Интересно, не правда ли?!
Да, забавное чтиво. Особенно повеселила статья в КомпюТерре, отрывок про Norton SysInfo. По поводу статьи про фильтры. Жаль что автор не привел никаких цифр по поводу: - каков типичный уровень интермодуляционных гармоник ниже 20 Герц в исходном музыкальном сигнале - какой конкретно эффект от присутствия таких гармоник получаем в системе без ФВЧ, т.е. оценка искажений
И кстати, именно из-за проблем с цифровым регулятором я предлагаю и советую пользовать с моим аппаратом наушники высокоомные. Это и для щадящей работы выходных каскадов полезно, хотя и не столь необходимо. Образцы подобных, реально хороших ием - Etymotic ER4S/Sleek-audio SA6+R, Hifiman RE0, Hifiman RE262, вставных Yuin PK1/OK1.
Я обещал дать ссылку на статью по проблемам ЦФ. Вот она http://www.component.ru/library/view.php3?id=50 Посмотри также еще его статьи по этой теме, например вот http://www.ist.ugtu.net/Computerra/Computerra/1999/329/2818/index.html
Андрей, спасибо, что все свели в одну тему. В итоге получается интересная ситуация. Hi-Res содержит два параметра: 1. число бит - отвечают за динамический диапазон; 2. SAMPLERATE - частота дискретизации - отвечает за передачу частот слышимых и неслышимых нами. Со вторым вопросом думаю, что все в порядке SAMPLERATE=44 100Гц по Котельникову обеспечивает передачу сигнала до 22 050Гц. Реально из них можем услышать 18-20кГц максимум . Остается вопрос с динамическим диапазоном, получается примерно следующее: 1 бит соответствуют 6дБ, соответственно 16 бит соответствуют 96дб, 24 бит соответствуют 144дБ, что будет сопоставимо с характеристиками PCM1794. Интересная ссылка на исходный материал приложена: http://www.head-fi.org/t/415361/24bit-vs-16bit-the-myth-exploded Может мы не там ищем. Ваше мнение?
Да если бы всё так просто. Теорема Котельникова говорит о том что в семплированном сигнале со спектром до частоты N с частотой семплирования N*2 присутствует вся информация о входном сигнале. Точка. Просто присутствует информация. Теперь вопрос - как ее оттуда достать? И здесь начинаются проблемы. В частности с тем что нельзя построить идеальный фильтр. Повышение частоты дискретизации смягчает требования к фильтру.
По поводу 24бит разрешения и статьи на head-fi. Там тоже автор немного поигрывает пустыми цифрами. Хотя с половиной сказанного можно согласиться. Например, если вы застали эру магнитной записи, то наверно хорошо знакомы с процессом выставления уровня записи на магнитофоне. При записи на цифровой носитель сталкиваемся с тем же компромиссом, только последствия перегруза здесь гораздо более существенны. По моей информации запись на 16 битный CD делается с уровнем от -12 до -16дБ именно затем чтобы минимизировать "зашкаливание". Это значит что на полезный сигнал осталось 14 бит.
Мое стремление повысить разрядность ЦАПа в алексмоде было связано в первую очередь с наличием цифровой регулировки громкости. Например подключив чувствительные арматурные наушники вы вынуждены держать громкость низкой (я например на Grado GR10 больше -24дБ не поднимаю - слишком громко). Получается что я слушаю записи с реальным разрешением 10 бит.
С Grado GR10 это сильно подавленный уровень , у них чувствительность не менее 116 дБ. А на него попадают в лучшем случае 60 дБ. Может его через аттенюатор согласовать?! Вот интересная ссылка http://www.aie.sp.ru/Calculator_filter.html. Там внизу есть расчет и схема аттенюатора для динамиков. Можно уровень например для Grado GR10 снизить на 24 дБ и слушать с аттенюатором без цифровой регулировки на 0дБ. Уровни ЦАП станут поменьше и уместятся в комфортном для для Вас и Grado GR10 диапазоне. У меня аналогичная ситуация была, правда я только на 12 дБ уровень понижал. Я в разрыв провода от небольшого переходника jack 3.5 M jack 3.5 F (http://www.apitcomp.ru/catalog/adapters/Perehodnikijack2.5imiiijack3.5if.jpg) эту схемку ставил на SMD резисторах. Может и Вам пригодиться такой вариант.
Спасибо за ссылку, Алекс. Попробую. Мой пример должен был показать какие еще ограничения могут быть с 16-битной глубиной. Можно конечно изначально заточить плеер под конкретные наушники, но я на это не пойду. И другие наверно согласятся что это некоторое ограничение "свободы".