Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];

Вниз

Логическая задачка (не могу справиться)   Найти похожие ветки 

 
REL   (2001-11-12 16:16) [3]

Привет, savva. Огромное спасибо, что откликнулся. Смотря что ты подразумеваешь под протоколом.

У меня есть возможность через равные моменты времени отправлять данные в порт, я также могу предварительно накапливать данные в буфере, а уж затем оттправлять. Что ты подразумеваешь под идентификатором пакета: начало и конец каждого массива у меня, конечно, отмечается.

Давай я поясню суть проблемы, чтобы тебе стало понятнее.

Представь: оцифровываю данные со звуовухи и, скажем, в интервале времени (условно) 1 сек. получаю массив данных из 200 знач. Затем я сжимаю данный массив и из 200 значений получаю, скажем, 100 зн., но могу получить и 190 и 50 и т.д. (смотря как сожмётся). Именно эти данные я и пересылаю по модему (естественно отметив начало и конец каждого уже сжатого массива). На приёмном конце я эти данные принимаю, восстанавливаю до 200 значений и воспроизвожу (понятно, что тоже в равные промежутки времени - как иначе?).
Так вот мне необходимо придумать такой алгоритм, чтобы скорость передачи определять не длиной самого длиннго (плохо сжатого в моём случае) массива, а длиной среднесжатого массива. Т.е., чтобы избыток времени при передаче малых массивов компенсировал недостачу времени при передаче больших массивов.

Я пробовал реализовать сл. алгоритм: перед посылкой накапливал буфер фиксированной длины, затем отсылал, а на приёмном конце разбирал буфер, восстанавливал массивы и воспроизводил их. Но здесь возникла вполне объяснимая ситуация: из-за различной степени сжатия в буфер могло попадать, например, от 2 до 10 массивов. Соответственно, такой буфер мог воспроизводиться звуковухой от 2 до 10 сек (в зависимости от кол-ва содержащихся в нём массивов), что приводило к сл: пусть вначале отослался буфер, в который попало 2 массива (на приёмном конце он восстанавливается и воспроизводится 2 сек). В это время на источнике накапливается новый буфер, в который попало 10 массивов (т.к. они хорошо сжались)- данный буфер будет накапливаться 10 сек. Т.е. получется, что из-за разности длин сжатых массивов и, следовательно, из-за разности в кол-ве массивов, попавших в буфер (в приведённом выше случае) приёмник будет вынужден 8 сек ждать, пока 2-ой буфер заполнится и отошлётся.

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

Ещё раз спасибо, Евгений.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
3-56973
Илья Лу.
2002-01-22 13:43
2002.02.18
trigger в Oracle


3-56988
xmapa
2002-01-23 16:20
2002.02.18
Можно ли в QuickReport выводить текст вертикально?


6-57176
Victor
2001-11-30 12:42
2002.02.18
Socket


7-57230
guliver
2001-11-16 07:25
2002.02.18
Как написать Virtual CD?


1-57126
Lotus
2002-02-03 12:01
2002.02.18
индекс строки в TMEMO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский