CITKIT.ru
3 терабайта свободного софта!
Logo    
IT-рынок Новости мира IT Океан(!) софта на CITKIT.ru Форумы Поступления в библиотеку Учебный центр Курилка
CitForum    CITForum на CD Море(!) аналитической информации! :: CITFORUM.RU
IT-консалтинг Software Engineering Программирование Open Source СУБД Безопасность Internet Сети Операционные системы Hardware

16.05.2005

Google
WWW CITForum.ru

Новости мира IT:

  • 11.05 - Intel создает свою группу по Open Source
  • 11.05 - Банк контролирует использование USB устройств при помощи DeviceLock
  • 11.05 - Microsoft устранила опасную дыру в Windows
  • 11.05 - "Корпорация ОСС" создает антимонопольный альянс операторов IP-телефонии
  • 11.05 - В Mac OS X найдены множественные уязвимости
  • 11.05 - "Билайн" запускает услугу "Мобильная почта"
  • 11.05 - Две критические уязвимости в браузере Firefox 1.0.3
  • 11.05 - IBM покупает начинающую Open Source-компанию Gluecode
  • 11.05 - Microsoft готова к битве с Open Source за школы
  • 11.05 - Sun завершит "открытие" Solaris в ближайшие 45 дней
  • 11.05 - Создатели браузера Firefox выпускают юбилейные монеты в честь 50 миллионов скачанных копий
  • 11.05 - Вышла пятая версия мобильной ОС от Microsoft
  • 11.05 - Поисковые движки умнеют быстрее, чем люди
  • 11.05 - Фишеры постоянно совершенствуются
  • 11.05 - Специалисты прогнозируют появление аналога Google Adsense от "Яндекс"
  • 06.05 - ICANN озаботилась проблемой торговых марок
  • 06.05 - Google патентует сортировку новостей
  • 06.05 - Intel готовит двуядерные процессоры второго поколения
  • 06.05 - Schoolforge-UK и OSC продвигают Open Source в школы
  • 06.05 - Новая версия рекламной программы подстрекает пользователей купить ПО для своего лечения
  • 06.05 - Microsoft продает ряд своих закрытых разработок
  • 06.05 - Google Labs анонсировал ускоритель интернета
  • 06.05 - Microsoft подвешивает пиратам "морковку"
  • 06.05 - В США входят в обиход "интеллектуальные" тележки для супермаркетов
  • 06.05 - Microsoft работает над аналогом PDF
  • 05.05 - Yahoo video search теперь доступен массам
  • 05.05 - Алмазы помогут бороться с хакерами
  • 05.05 - Интернет-охоту хотят запретить
  • 05.05 - Microsoft привлекает блоггеров для теста Longhorn
  • 05.05 - Основатель Red Hat предложил Стиву Джобсу помощь в решении проблемы с торговой маркой
  • 05.05 - Компьютерная система оргкомитета Кубка мира по футболу 2006 года пострадала от червя Sober
  • 04.05 - Cisco Systems представила многофункциональный продукт Adaptive Security Appliance 5500
  • 04.05 - Администрация Евросоюза поддержала идею всеевропейской интернет-библиотеки
  • 04.05 - Компьютерный вирус дарит билеты на чемпионат мира по футболу
  • 04.05 - Лаборатория Касперского: Обзор вирусной активности - апрель 2005
  • 04.05 - Microsoft хочет отсудить у россиянина два домена
  • 04.05 - Сделка между Lenovo и IBM завершена
  • 04.05 - Эпидемия червя Sober.p зафиксирована в Западной Европе
  • 04.05 - Panda Software публикует отчет о вирусной активности за апрель
  • 03.05 - Институт SANS обновил список наиболее опасных уязвимостей

    Архив новостей >>>


  • 2005 г

    Передача звука с адаптацией к пропускной способности канала

    Александр Симаков, Сыктывкарский государственный университет
    Cайт автора - http://entropyware.info

    Введение

    Всем кому когда-либо доводилось слушать музыку или радио через Интернет знакома ситуация при которой из-за падения скорости передачи опустошается буфер и воспроизведение начинает "заикаться". Это происходит даже не смотря на то, что пользователю как правило предлагается на выбор несколько потоков, закодированных с разными битрейтами.

    Дело в том, что мы не можем гарантировать, что определенный пакет, пройдя через десяток маршрутизаторов дойдет до нас в нужное время. А для воспроизведения фрейма в классических схемах (mp3, ogg и т.д.) необходимо получить его целиком. В данной статье обсуждается система для прогрессивной передачи аудио через Интернет, которая будет лишена указанного недостатка.

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

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

    Очевидно, что поскольку прогрессивно закодированный фрейм можно урезать до любого размера, мы с легкостью сможем управлять общим битрейтом с точностью до бита! При этом мы не будем привязаны к стандартным значениям: 128 Kbps, 64 Kbps и т.д.

    И наконец, подобный подход позволяет хранить на сервере всего один закодированный файл, вместо нескольких для разных битрейтов. Действительно, каждый клиент получит и воспроизведет его с тем качеством, насколько ему позволит канал связи.

    Программная реализация описанного в данной статье аудио кодера свободно доступна с сайта автора http://entropyware.info и распространяется на условиях лицензии GNU GPL. Также файлы можно скачать с сайта CITForum.ru.

    Цифровой звук

    Цифровой звук можно охарактеризовать тремя главными параметрами: частотой дискретизации, количеством бит на сэмпл (или иначе отсчет или дискрет) и количеством каналов. От величины этих параметров зависит качество звучания и размер файла. К примеру, секунда музыки на аудио-CD занимает 16 бит * 2 канала * 44100 Гц = 176400 байт. Отсюда и вытекает необходимость в эффективных методах для сжатия звуковой информации, которая по природе своей весьма избыточна.

    Как правило, вначале исходный файл делится на небольшие фрагменты - фреймы, которые затем и подвергаются кодированию. Типичная протяженность фрейма по времени составляет порядка 10-20 миллисекунд.

    Рис.1
    Рис. 1

    На рис. 1 показан фрейм размера 1024 сэмпла. На частоте 44100 Гц его протяженность по времени составляет порядка 1024 / 44100 = 23.22 миллисекунд. Каждый сэмпл занимает по 16 бит, что обеспечивает допустимый диапазон значений [-32768...32767]. Именно на этом примере и будут производиться все дальнейшие эксперименты.

    Вейвлетное преобразование

    Вейвлетное преобразование служит для выделения высоко- и низко-частотной составляющей сигнала (далее НЧ и ВЧ). Уже давно установлено, что НЧ составляющая намного важнее для человеческого восприятия чем ВЧ. Отсюда и возникает идея выделения НЧ и ВЧ составляющих с последующим приоритетным подавлением последней. Для этой цели в данной работе было использовано известное вейвлетное преобразование Добеши 9/7 [1, 2]. На рис. 2 изображен результат его применения к исходному сигналу.

    Рис.2
    Рис. 2

    Из рисунка видно, что коэффициенты вейвлетного разложения отвечающие за НЧ составляющую (ближе к началу координат) сигнала доминируют над ВЧ коэффициентами, а большие по абсолютной величине коэффициенты несут больше информации об исходном сигнале.

    Прогрессивное кодирование

    После того как получены коэффициенты вейвлетного разложения необходимо их прогрессивно закодировать. В качестве алгоритма кодирования в этой работе был использован известный алгоритм SPIHT (Set Partitioning in Hierarchical Trees) [3, 4]. Для большей эффективности его комбинируют с арифметическим кодированием [5]. Не смотря на то, что изначально SPIHT был разработан для кодирования изображений, его с таким же успехом можно применить и к аудио сигналам.

    Стоит особо подчеркнуть, что основная задача алгоритма SPIHT не заключается в непосредственном сжатии данных. Используя особенности структуры вейвлетных коэффициентов, SPIHT переупорядочивает их биты. При этом первые биты будут нести наиболее важную информацию (НЧ), в то время как последующие - лишь незначительные, уточняющие детали (ВЧ). Такое упорядочение данных часто называют прогрессивным.

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

    Рис.3
    Рис. 3

    На рис. 3 хорошо видно как при увеличении количества получаемых декодером битов растет качество восстановленного сигнала и на определенном уровне он практически неотличим от оригинала.

    Передача аудио через Интернет

    Для того чтобы извлечь все преимущества, полученные при прогрессивном кодировании аудио данных, необходимо разработать специальный протокол прикладного уровня для взаимодействия клиента и сервера по сети. В качестве протокола транспортного уровня в данной ситуаци наиболее подходящим является протокол TCP.

    Ключевой момент клиент-серверного взаимодействия заключается в том, что клиент имеет возможность указать, а также изменять во время работы максимальный размер закодированного фрейма. Клиент выбирает это значение таким образом, чтобы минимизировать, а в лучшем случае вообще исключить возможные обрывы воспроизведения.

    Увеличивая и уменьшая размер фрейма клиент может адаптироваться к изменяющейся скорости передачи: когда скорость падает - размер фрейма необходимо уменьшить, когда скорость возрастает - размер фрейма можно увеличить. Сервер, со своей стороны, должен присылать от каждого фрейма не больше байтов чем попросил клиент.

    Заключение

    Аудио кодер, описанный в этой статье, не использует психоаккустическое моделирование, сложные фильтры для обработки сигналов и другие полезные оптимизции. Он намеренно упрощен и является скорее демонстрацией концепции: прогрессивной передачи аудио по низкоскоростным каналам связи. Несмотря на это, его полные исходные тексты доступны для скачивания, изучения, экспериментов и улучшения.

    Скачать

    Кодер доступен для скачивания как в виде архива исходных кодов, так и в виде RPM/SRPM пакета для ОС ALT Linux. Программа распространяется в соответствии с лицензией GNU GPL. Для корректной сборки программы необходима библиотека glib версии не ниже 2.4. Работоспособность собранной программы проверялась на glib 2.3, про более старые неизвестно.

    Тестовые образцы

    Для тестирования можно скачать уже закодированные файлы. Воспроизвести их можно при помощи утилиты agplay, которая идет вместе с кодеком AGRESS.

    Список литературы

    [1] I. Daubechies, W. Sweldens. Factoring Wavelet Transforms Into Lifting Steps // J. Fourier Anal. Appl. 1998. V. 4. N 3. P. 245-267.

    [2] A. Cohen, I. Daubechies, J. Feauveau. Biorthogonal Bases of Compactly Supported Wavelets // Comm. on Pure and Appl. Mathematics. 1992. V. 45. N 5. P. 485-560.

    [3] Amir Said, William A. Pearlman. A New Fast and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees // IEEE Trans. on Circuits and Systems for Video Technology. 1996. V. 6. P. 243-250.

    [4] J. M. Shapiro, Embedded image coding using zerotrees of wavelet coefficients // IEEE Transactions on Signal Processing. 1993. V. 41. N 12. P. 3445-3462.

    [5] I. H. Witten, R. M. Neal, J. H. Cleary. Arithmetic coding for data compression // CACM. 1987. V. 30. N 6. P. 520-540.


     


    ХАЙВЕЙ - лучший российский хостинг-провайдер: хостинг, регистрация доменов, услуга Ваша@почта, поддержка 24 часа


    NetPromoter - единственный российский профессиональный комплекс программ и сервисов для раскрутки сайта и интернет-статистики


    STSS - известный поставщик надежных серверных решений различного назначения на платформе Intel (Xeon) и AMD.


    5-55: the ITIL company. Практический опыт и теоретические знания на лучших семинарах по ITIL и процессам ITSM.


    Подписка на новости IT-портала CITForum.ru
    (библиотека, ftp-архив CITKIT.ru)

    Новые поступления в on-line библиотеку:

    28 апреля

  • Выбор первого дистрибутива Linux: Пособие для начинающих
  • Обфускация и защита программных продуктов
  • Анализ и оптимизация циклов с помощью производящих функций
  • Стратегии объектно-реляционного отображения: систематизация и анализ на основе паттернов

    26 апреля

  • Business Intelligence обещает значительный рост в 2005 году
  • Десять основных тенденций 2005 года в области Business Intelligence и Хранилищ данных
  • Управление эффективностью бизнеса и предсказуемость
  • Увеличение эффективности бизнеса: пять ошибок управления, которых следует избегать
  • Потребность в организационных данных: модель комплексного управления эффективностью бизнеса
  • Технология Хранилищ данных для государственных учреждений
  • Оцените, насколько совершенно ваше Хранилище данных

    21 апреля

  • Исполнение моделей при помощи виртуальной машины
  • Параллельные алгоритмы компьютерной алгебры
  • От стандарта до стандарта (о стандартизации оптических разъемов)
  • За штурвалом IP-станции

    Продолжение дискуссии читателей:

  • Линукс и пользователи, или что мне не нравится в Linux
  • Еще один взгляд на альтернативные ОС (и софт для них)
  • О некомпетентности пользователя Windows
  • Переписка Долгачева В.С. и Монахова В.В.

    19 апреля

  • Межпротокольный шлюз NAT-PT с функциями DNS-ALG и FTP-ALG для обеспечения взаимодействия между сетями IPv4 и IPv6
  • Рефакторинг архитектуры программного обеспечения: выделение слоев
  • Комбинаторика слов и построение тестовых последовательностей
  • Функциональное тестирование Web-приложений на основе технологии UniTesK

    14 апреля

  • Как организовать двойную парольную защиту данных в Oracle
  • Деревянный интерфейс

    Продолжение дискуссии читателей:

  • Microsoft против мира
  • Впечатления от прочитанного

    12 апреля

  • Крупные проблемы и текущие задачи исследований в области баз данных
  • Глава 2 из книги Т.Кайта "Oracle для профессионалов"Архитектура

    Дискуссия читателей о Linux и Windows:

  • Деньги правят миром, и у кого их больше, тот и прав!
  • О злокозненности некомпетентных пользователей, или почему я не люблю ограниченных пользователей Windows

    7 апреля

  • О доблести Билла Гейтса, или почему Windows лучше, чем LINUX или Mac OS
  • Витая пара - все ли так просто?!
  • Выбираем сервер печати
  • Один слой хорошо, а два - лучше (о пишущих DVD-приводах)

    5 апреля

  • Использование Caché SQL Gateway
  • Глава 19 из книги Т.Кайта "Oracle для профессионалов"Хранимые процедуры на языке Java
  • Что такое PostgreSQL?
  • Обновлен PostgreSQL FAQ

    31 марта

  • Использование Веб-сервисов в Caché
  • Защита на уровне строк (Oracle)
  • Секции в реальном мире

    29 марта

  • Разработка успешных приложений для Oracle - первая глава из книги Тома Кайта "Oracle для профессионалов"
  • Web-сервисы: растущие опасения (мнение аналитиков IDC)
  • Технология OLAP - мощная альтернатива электронным таблицам
  • Какой модной стала подготовка отчетности

    24 марта

  • Многоверсионность данных и управление параллельными транзакциями
  • Исключение из правил. Опыт разработки и внедрения финансовой корпоративной системы
  • Обнаружение компрометаций ядра Linux с помощью gdb
  • Корпоративная сервисная шина - "бюджетный" подход к решению задач интеграции
  • Сервис-ориентированная архитектура
  • Бизнес-процессы и XML

    22 марта

  • Доступно. И точка! (обзор точек беспроводного доступа)
  • Коммутаторы Fast/Gigabit Ethernet для "большой" сети
  • Push to Talk: нажми на кнопку и ...говори
  • Сети нового поколения и технология softswitch

    17 марта

  • Часто задаваемые вопросы о proxy (proxy FAQ)
  • Самонастраивающаяся база данных: управляемые приложения и настройка SQL
  • Еще раз о волоконных трассах
  • Настраиваем русский Unicode в FreeBSD-5.3.

    10 марта

  • Еще не сказанное о волоконной оптике
  • Wi-Fi на службе оператора
  • Пора менять платформу?
    (о сокетах LGA775 и PGA478)

    Oracle:

  • Детальный аудит для практических целей
  • Шифруем свои ресурсы данных

    3 марта

  • Требования к проекту. Классификация - первый шаг к пониманию
  • Gtk vs. Qt: драки не будет
  • Управление бизнесом "по максимуму": BPM для финансовых учреждений
  • Реализация решения по управлению эффективностью бизнеса
  • Новые SerialATA-винчестеры
  • Карман для сервера

    1 марта

  • Выбрать корпус - нет ничего проще?
  • Создание виртуальной сети с удаленной загрузкой узлов
  • Текущее состояние и перспективы развития рынка интеграционных технологий
  • Интеграция корпоративной информации: новое направление
  • Архитектурные подходы к консолидации

    24 февраля

  • Каждому проекту своя методология
  • Императив интеграции
  • Безопасность IP-телефонии - полевые зарисовки
  • О злокозненности Билла Гейтса, или почему я не люблю Windows

    22 февраля

  • Oracle10: шифруем данные
  • В версии Oracle10 "виртуальные частные базы данных" данных стали избирательнее
  • Каждому (пользователю) свое (данное в таблице)
    Часть 1
    Часть 2
  • Ускоряем интернет
  • Сетевая аутентификация на практике
  • В фокусе Microsoft Virtual Server 2005

    17 февраля

    Открыт новый раздел
    Все об Open Source

    Все новости >>>



  • IT-консалтинг Software Engineering Программирование Open Source СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей PR-акции, размещение рекламы - pr@citforum.ru, тел. +7 095 4119920 Пресс-релизы - manager@citforum.ru
    Послать комментарий
    Информация для авторов
    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2004 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...