реклама на сайте
подробности

 
 
> Формирование пакетов из RAW потока вокодера, Обнаружение выпадений байтов(CRC?)
sigmaN
сообщение Jan 10 2009, 20:50
Сообщение #1


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Имеется вокодер(Speex), выдаёт он по 20байт на каждый фрейм.
Необходимо обеспечить передачу по низкоскоростному каналу и защититься от выпадения байтов.
Достаточно просто определения самого факта выпадения и отбрасывания всего 20ти байтового пакета(скормив декодеру вместо него предыдущий правильный).
Проблема у меня с созданием метки, по которой определялись бы границы пакетов - ведь данные идут в RAW и там могут встречаться(теоретически) любые последовательности! Избыточность должна быть минимально возможной(канал не резиновый).

Что делать? Допустим, прикрутить CRC16 не проблема, но меня смущает возможность такого сценария:
Передатчик передаёт, а приёмник принимает данные в буфер(20байт) до его заполнения.
По заполнению буфера, приёмник считает, что фрейм вокодера принят и отправляет его на декодинг
НО ведь на самом деле к этому моменту передатчик мог передать уже 21байт и к премеру где-то посередине байт выпал и последний байт буфера приёмника уже будет содержать первый байт следующего фрейма.
Точно такая-же проблема может возникнуть при использовании CRC.

Нужны какие-то признаки начала фрейма.
Чтобы приёмник мог отреагировать, если наткнётся на признак начала пакета ДО заполнения буфера.
Как быть??

Может быть есть какие-то особенности Speex, о которых я не знаю(может быть какие-то коды он не использует).
Была мысль для уменьшения вероятности собрать статистику по кодам(двух байтовым комбинациям) и использовать самую редко попадающуюся, но решение, мягко говоря тупое.
Также думал о замене некой последовательности на другую(заранее определённую) для того, чтобы "освободить" эту последовательность под код начала фрейма(но вот та заранее определённая,опять таки встретится в потоке и всё).Но тоже всё это как-то не очень красиво...

Нет идей больше, а это самое плохое, что может быть:-)


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 05:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016