Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Nov 28, 2020 5:20 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 983 posts ]  Go to page Previous 15 6 7 8 966 Next
Author Message
 Post subject:
PostPosted: Thu Jun 01, 2006 7:27 pm 
Serge
Потеря 1 Мб ради совершенства звука вполне допустима, лишь бы он работал быстро на слабых машинах. Интересно, каков будет результат на P100 с шиной 50.
4 битовый файл, который я имел в виду, является Microsoft ADPCM,44 100 Гц; 4 бит; Стерео
Это конечно редкая вещь, так что можно не заморачиваться на первых порах.

Quote:
По стандарту АС97 кодеки могут воспроизводить 8000 - 48000 Гц с шагом в 1 Гц. Как они это делают вопрос интересный. Похоже, что у некоторых продвинутых кодеков два кварца на 48000 и 44100.

Я думаю, нам пока хватит использования базовых возможностей, для реализации звуковой подсистемы в приемлемые сроки.
Если будет реализовано хотя бы это - это будет уже серьезный прорыв.

Quote:
Еще нужен код для загрузки драйвера. Похоже, что придётся делать загрузчик самому.

На данный момент в системе имеется лишь подключение драйвера методом как у VRR. Стоит рассмотреть возможность подобного подключения. Других вариантов пока, к сожалению не разработано.


Top
   
 Post subject:
PostPosted: Thu Jun 01, 2006 9:17 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Статистика такая: ресемплирование 16 бит моно 44100 в 16-моно 48000.
Си код без оптимизации тестировал в Intel VTune несколько прогонов по 60 секунд. Среднее время работы программы 1.16 сек вместе с настройкой DirectSound, открытием файлов и т.д. Ресемплер работал около 0.8 -0.9 сек (за одну минуту общего времени) Процессор Р4 2.6С
так что можно интерполировать на близкие Celeron Athlon Sempron Duron.
Что касается P100, то им нужен драйвер Саундбластера. АС97 на таких машинах нет. Кстати воспроизведение звука в Колибри грузит процессор на 7-8% по данным CPU. Главная причина - работа с диском в PIO режиме. В общем нужен ДМА доступ к диску, чтение данных большими блоками (64 Кб) и т.д. Сделаю тесты для 4 потоков и позже выложу результаты.


Top
   
 Post subject:
PostPosted: Fri Jun 02, 2006 10:32 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
В библиотеке есть простой интерполирующий ресемплер. Он не использует дополнительную память но качество звука вполне приличное. Думаю что можно пока использовать его, а более качественный вариант сделать позже. Есть идея сделать версию, где вся обработка звука от начала до конца будет идти в вещественном формате. Заодно можно будет задействовать SSE.


Top
   
 Post subject:
PostPosted: Fri Jun 02, 2006 6:20 pm 
Serge
Quote:
Что касается P100, то им нужен драйвер Саундбластера. АС97 на таких машинах нет.

Не факт. Можно установить плату в PCI слот и будет AC97.

Quote:
Кстати воспроизведение звука в Колибри грузит процессор на 7-8% по данным CPU. Главная причина - работа с диском в PIO режиме. В общем, нужен ДМА доступ к диску, чтение данных большими блоками (64 Кб) и т.д.

Сделаем со временем. Размышления уже идут.

Quote:
Сделаю тесты для 4 потоков и позже выложу результаты.

Желательней чтобы поддерживалось микширование 8 источников, но пока уж как есть.

Quote:
Заодно можно будет задействовать SSE.

А ты подумал, как будет работать этот код на машинах, не поддерживающих эти инструкции? Лучше ограничиться MMX для универсальности, даже MMX+ есть не на всех.


Top
   
 Post subject:
PostPosted: Fri Jun 02, 2006 8:22 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Протестил на 4 каналах, в среднем получается 2.2-2.4% загрузки процессора на 1 канал. Думаю отложить этот вариант и использовать ресемплер попроще. Библиотека будет поддерживать 16 звуковых буферов, но возможно будет увеличить до 32. Пока должно хватать.
Quote:
Можно установить плату в PCI слот и будет AC97.
Такой вариант возможен но удастся ли написать драйвер я не уверен. Открыто доступна информация только по чипсетам Intel и AMD. На остальные контроллеры инфа собирается с миру по нитке, а внешние PCI платы - тёмный лес. Что касается SSE, то это может быть отдельная High quality версия. Но я планировал и в основной версии использовать SSE и SEE2 по возможности. Соответствующие функции будут вызываться в зависимости от типа процессора. В общем библиотека должна быть достаточно гибкой и использовать все возможности процессора.


Top
   
 Post subject:
PostPosted: Fri Jul 07, 2006 3:42 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Сделал черновую версию для Колибри и попробовал проиграть несколько файлов одновременно. Один и два файла проигрывабтся нормально. Три файла грузят систему на 40% и звук начинает прерываться, четыре на 80-90% (файловая система просто захлёбывается хотя поток 684 Кб в секунду) нагрузка растет непропорционально. Ещё одна особенность: попробовал проиграть один 250Мб файл. Оказалось чем ближе к концу файла, тем дольше он читается. На двух третях загрузка была 40-45% в конце файла 90-95%.
Для пробы отключил подкачку файла и запустил четыре плеера. Система была загружена на 2-5% - как в режиме простоя. Утешает, что мр3 файлы обычно короткие и поток там меньше. Да и больше одного файла одновременно обычно не проигрывают.


Top
   
 Post subject:
PostPosted: Fri Jul 07, 2006 10:15 pm 
Serge
Вполне возможно, что это "особенность" 58 функции, если ты использовал ее.
Попробуй прикрутить 70 функцию к своему ядру. Если не запускать файлы при помощи этой функции, то никаких доработок не понадобиться. При полном же слиянии кода вероятнее всего понадобиться дорабатывать новую процедуру запуска файлов.
Так что не стоит отчаиваться, возможно, проблема решаема. Надо пробовать.


Top
   
 Post subject:
PostPosted: Sat Jul 08, 2006 11:15 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Если в 70 функции алгоритм чтения файла остался прежним то результат будет похожим.
Я попробую добавит ф.70 но это будет не скоро.


Top
   
 Post subject:
PostPosted: Sat Jul 08, 2006 3:56 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Я немного изменил алгоритм подкачки и ситуация стала лучше. Теперь можно нормально проигрывать несколько файлов. Длинный файл тоже проигрывается без срывов звука но все равно загрузка системы в начале файла 7-8% в конце 60-70%. Видимо функция чтения файла пробегает по всей цепочке кластеров и чем дальше от начала файла, тем цепочка длиннее .


Top
   
 Post subject:
PostPosted: Sun Jul 09, 2006 3:36 pm 
Serge
Стоит, наверное, переложить все заботы по буферизации подкачки на приложение. Допустим по мере опустошения имеющегося буфера 0,5-1 Мб подгружались дополнительные данные. Например, когда буфер опустошится на 50%.
В принципе это стандартная проблема для любой операционной системы.


Top
   
 Post subject:
PostPosted: Sun Jul 09, 2006 4:21 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Если файл будет в 600 мегабайт то и большой буфер может не спасти.

Вот пробная версия. Только для Интел-чипсетов. http://infinity-sound.narod.ru/ac97.zip


Top
   
 Post subject:
PostPosted: Mon Jul 10, 2006 7:15 pm 
Serge
Ты забыл добавить в ридмик, что запускать можно только с дискеты.
И я не смог запустить вообще к сожалению. Возможно из-за того, что я изменил Loader.ini. Доходит до сообщения "Unmasking all IRQs" и дальше не грузится. В начале курсор мышки шевелился, а когда нажал Ctrl+Alt+Del замерз.


Top
   
 Post subject:
PostPosted: Mon Jul 10, 2006 8:25 pm 
Offline

Joined: Sat May 27, 2006 5:26 am
Posts: 100
Quote:
VESA 1.2 и VGA режимы пока не работают.

Тестирование на интеловском чипе откладывается пока не будет поддержки VGA.

Quote:
Ты забыл добавить в ридмик, что запускать можно только с дискеты

И на SoundMAX'е тоже откладывается, т.к. нет дисковода для флопиков. Кстати, почему только с дискеты? Я всё-таки попробовал запустить с ЖД, но тщетно.


Top
   
 Post subject:
PostPosted: Mon Jul 10, 2006 9:17 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario79
Попробую разобраться. Образ был 0.530b2 ? Какая у тебя конфигурация компа? Сколько ОЗУ и какой чипсет? Похоже что не происходит первое переключение задач. Возможно что неправильно настраивается 8259 PIC хотя если курсор двигался значит прерывания обрабатывались. Ctrl+Alt+Del намертво вешает систему, почему я пока не разобрался.

Для загрузки с диска нужно модифицировать загрузчик. Я делал всё на основе загрузчика из 0.530b2, а там загрузиться с диска у меня ни разу не вышло.


Top
   
 Post subject:
PostPosted: Mon Jul 10, 2006 10:19 pm 
Serge
Да образ брал исключительно k0530b2 (который сам же и выкладывал на http://www.kolibri.hut1.ru/), без всяких изменений.
Комп: Duron950, DDR256, FX5200, MB SIS735, чипсет звука (правда не Intel) - C-Media SIS7012 (в стандартном AC97WAV все пашет, единственное замеченное отличие от Intel документации - не устанавливается частота квантования, всегда выбрано 48000 Гц.). Еще подробности нужны?
Quote:
Для загрузки с диска нужно модифицировать загрузчик. Я делал всё на основе загрузчика из 0.530b2, а там загрузиться с диска у меня ни разу не вышло.

Есть аж целых 3 загрузчика для стандартной Колибри: meosload.com, acrobat и mtldr. Неужели ни один не заработал?
Или ты имел в виду только свое ядро?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 983 posts ]  Go to page Previous 15 6 7 8 966 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited