Важная информация

User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 44

Тема: Воспроизведение WAV с испльзованием ШИМ

  1. #31
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,863
    Спасибо Благодарностей отдано 
    658
    Спасибо Благодарностей получено 
    1,854
    Поблагодарили
    1,059 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В онлайновом хорошо играет, пожалуй даже чуть-чуть лучше чем в Emu80. Крут вектор, не так уж много домашних советских компов того времени в своем первозданном виде потянут без купюр такую штуку. Кроме вектора разве что корвет. Для апогея, Б2м и экзотических специалистов с таймерами пришлось бы снизить частоту дискретизации.

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,121
    Спасибо Благодарностей отдано 
    803
    Спасибо Благодарностей получено 
    662
    Поблагодарили
    407 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, к сожалению ты редко делишься секретами, поэтому мало кто узнает как и чем именно крут Вектор. Так со стороны для обывателя в том, что компьютер сыграл песенку, в наше время большого повода для восторга нет. Даже люди в принципе любопытные и интересующиеся техникой, но поколения помоложе, не могут этого оценить без объяснений. Вот бы ты рассказал поподробней, с картинками и все такое.
    Последний раз редактировалось svofski; 16.08.2023 в 13:17.
    Больше игр нет

  4. #33
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,863
    Спасибо Благодарностей отдано 
    658
    Спасибо Благодарностей получено 
    1,854
    Поблагодарили
    1,059 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В данном случае я постарался описать с цифрами, что фишка в соотношении качества и размера. Если кто-то скажет, что подобное качество при 1 бите/отсчет в сжатом потоке - это ерунда, то я только пожму плечами, для советских домашних компов конца 80-х (причем без каких-либо дополнительных устройств) я ничего подобного не видел.

    - - - Добавлено - - -

    Уточнение про корвет - все же он уступит вектору по качеству. Скорости проца хватит, частота таймера выше, но для звука только один канал таймера вместо 3, поэтому в итоге будет 6.5 бит/отсчет вместо 7.6 у вектора. Зато у корвета потенциально можно фрагмент подлиннее уместить с учетом ГЗУ, но чтобы бесшовно (без треска и щелчков) переключать банки памяти придется уменьшить частоту дискретизации. У вектора аналогичная проблема с квазным проигрывателем, вряд ли в нем получится удержать 22 кГц.

  5. #34
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    что фишка в соотношении качества и размера.
    на тему улучшения кашоство
    мне щас гулятсо некода
    но могу подкинуть идею

    по моему в adpcm у нас задаетсо амплитуда для блока данных
    и потом сами данные в диапазоне -1...1 с прореженной битностью

    так вот линейная шкала для звука скорей вссего не рациональна
    ибо ступеньки восприятия у человека логарифмические

    и вот можно побпробовать совместить 1...2 битный дельта код для логарифмической шкалы с общей амплитудой для блоков

    шкала типо такая
    Код:
    333333333*
          222*
            1*
    	 *
    	 *1
    	 *222
    	 *333333333
    ступенек на 16
    и например с 2-мя нулями для симетрии
    и чтоб 1 битный дельта код например не пищал в тишине

    как вариант (возмможно более лучший)
    линейную шкалу для дельта кода
    но логарифмическую шкалу для общей амлитуды блоков

    а можыт логарифмическую шкалу и туда и туда

    16 логарифмических ступенек для общей амплитуды
    хватит с головой
    может даже 8
    Последний раз редактировалось NEO SPECTRUMAN; 16.08.2023 в 16:14.

  6. #35
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,121
    Спасибо Благодарностей отдано 
    803
    Спасибо Благодарностей получено 
    662
    Поблагодарили
    407 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    В данном случае я постарался описать с цифрами, что фишка в соотношении качества и размера. Если кто-то скажет, что подобное качество при 1 бите/отсчет в сжатом потоке - это ерунда, то я только пожму плечами, для советских домашних компов конца 80-х (причем без каких-либо дополнительных устройств) я ничего подобного не видел.
    Цифры это хорошо, но все же, что такое векторное кодирование и как именно оно тут пригодилось -- объяснить простыми словами было бы очень интересно. Я например тогда как-то даже участвовал в процессе, хотя ты мою роль сильно преувеличил, но вот сейчас вспомнить что там за векторы и ка-минсы были так просто уже не могу.
    Больше игр нет

  7. #36
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,863
    Спасибо Благодарностей отдано 
    658
    Спасибо Благодарностей получено 
    1,854
    Поблагодарили
    1,059 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пересказывать учебники мне совсем не хочется, все околопрограммисты надеюсь знакомы с векторным квантованием/кодированием, или при желании могут загуглить.
    Конкретно в данном примере:
    1. Кодовая книга на 256 векторов
    2. Каждый вектор по 8 отсчетов
    3. Отсчеты по 8 бит или 256 уровней, но перед воспроизведением сплющиваются до 192 уровней, иначе в векторовский таймер при данной частоте дискретизации не влезает.
    Немного смешной момент - затрудняюсь сказать, каким алгоритмом здесь сформирована кодовая книга, k-means или LBG.
    Есть цифры PSNR
    k-means 33.6 дБ
    LBG 33.9 дБ
    k-means матлаб умеет сам считать, поэтому побыстрее, а LBG считал пользовательской функцией - страшно медленно.

    - - - Добавлено - - -

    Забыл написать - здесь в кодовой книге звуковые отсчеты, а у идейного вдохновителя с C64 были разности, насколько помню.

  8. #37
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,121
    Спасибо Благодарностей отдано 
    803
    Спасибо Благодарностей получено 
    662
    Поблагодарили
    407 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В том и есть весь интерес, чтобы получить не пересказ учебника, а посмотреть как на практике учебник превращается в практическую пользу. Давай я попробую задавать вопросы, может быть так проще будет влезть в мои тапки как условного наблюдателя со стороны. Я геймер, родился в 2003, у моего папы был какой-то денди, который играл наверное видеокассеты. Зашел на фестиваль, а тут ламповый компьютер играет песни из бабушкиного патефона. Мне стало любопытно, но ничего не понятно, где тут вообще джаваскрипт.

    Итак мы хотели проиграть в хорошем качестве песенку на Векторе-06ц без расширения памяти. Но песенка не влезает, поэтому пришлось придумать алгоритм, который позволяет сжать звук в 8 раз. Тут понятно.

    1. Можно без пересказа учебника, хотя я не вижу вреда в кратком тезисном изложении принципов, но -- что же это за векторное кодирование и почему оно позволяет ужать в 8 раз, а другое (какое другое, например) не позволяет? что происходит, когда мы берем обычный PCM звук и пропускаем его через такое кодирование?

    2. Что такое k-means, LBG? Наверное это алгоритмы, реализующие векторное квантование. Что именно они квантуют и что получается на их выходе? Как это помогает получить компактное представление звука?

    3. Как из того, что получилось, получить обратно собственно звук?

    4. Почему Вектор имеет какое-то преимущество перед другими компами. Что плееру этого кодека приходится делать по сравнению с более примитивным плеером PCM, который просто выкладывает равномерно семплы из памяти в регистр таймера?

    5. Можно ли похожие способы кодирования применять для изображений?
    Больше игр нет

  9. #38
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,863
    Спасибо Благодарностей отдано 
    658
    Спасибо Благодарностей получено 
    1,854
    Поблагодарили
    1,059 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    1. Разделяем исходный звуковой (или графический) объект на блоки, в данном примере на блоки по 8 отсчетов. В этом же самом примере 497304 отсчетов, получается 62163 блока. С помощью какого-нибудь алгоритма кластеризации (например k-means или LBG) формируем кодовую книгу желаемого размера, в примере желаемый размер - 256 векторов в кодовой книге, в каждом векторе по 8 отсчетов. Заменяем каждый блок на индекс вектора в кодовой книге. Все, мы сжали. Чем больше размер вектора, тем сильнее сжатие, но тем меньше качество.
    На примере той же песенки PSNR (k-means):
    вектора по 2 отcчета: 42.8 дБ
    вектора по 4 отcчета: 37.2-37.3 дБ
    вектора по 8 отcчетов: 33.6 дБ
    2. Не буду притворятся, что хорошо помню k-means или LBG, тут отсылаю интересующихся к гуглу (можно отметить, что LBG лучше, но у меня нет быстрой реализации для матлаба).
    3. Заменяем индексы на вектора (группы отсчетов) из кодовой книги.
    4. Фишки вектора для данной задачи:
    4.1. Сравнительно много озу для домашнего советского компа того времени
    4.2. Проц более-менее шевелится
    4.3. Принципиально - есть таймер, а значит можно ШИМом играть звуковые отсчеты
    Отличие от плеера ИКМ минимальное - два "уровня абстракции" вместо одного. ИКМ плеер сразу берет звуковые отсчеты, а векторный берет номер вектора (индекс) из потока и потом берет звуковые отсчеты из кодовой книги.
    5. Да, я пробовал для двухцветных, в принципе было не так уж плохо. parallelno пробовал для 16-цветных, можно посмотреть в его теме примеры картинок и возможно он захочет рассказать подробнее.
    Последний раз редактировалось ivagor; 16.08.2023 в 20:27.

  10. Этот пользователь поблагодарил ivagor за это полезное сообщение:

    svofski (16.08.2023)

  11. #39
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,121
    Спасибо Благодарностей отдано 
    803
    Спасибо Благодарностей получено 
    662
    Поблагодарили
    407 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо, теперь кажется понятней. То есть можно сказать, что восстановленый звук весь состоит из кусочков длиной по 8 отсчетов и таких кусочков всего 256. Отсюда и берется соотношение 8:1.

    А стыки между кусочками остаются просто как есть, мы надеемся, что более-менее и так должно стыковаться, потому что более-менее каждый кусочек похож? Может быть можно как-то повлиять на критерий кластеризации, чтобы минимизировать стыки? Или это надуманная проблема?

    Точно, припоминаю про картинки parallelno. Надо будет посмотреть.
    Больше игр нет

  12. #40
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,863
    Спасибо Благодарностей отдано 
    658
    Спасибо Благодарностей получено 
    1,854
    Поблагодарили
    1,059 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    А стыки между кусочками остаются просто как есть, мы надеемся, что более-менее и так должно стыковаться, потому что более-менее каждый кусочек похож? Может быть можно как-то повлиять на критерий кластеризации, чтобы минимизировать стыки? Или это надуманная проблема?
    Можно было бы делать деблокинг по аналогии с MPEG сглаживая переходы между блоками, но в рамках вектора при 22 кГц времени на это совсем нет.

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Воспроизведение YM на ATM 2+
    от POIND в разделе ATM
    Ответов: 8
    Последнее: 25.07.2005, 16:09

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •