Форум: "Система";
Текущий архив: 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