способ и система буферизации потоковой информационной среды
Классы МПК: | G06F5/06 для изменения скорости прохождения данных, например устройства для регулирования скорости |
Автор(ы): | ХАННУКСЕЛА Миска (FI), АКСУ Эмре Барис (FI) |
Патентообладатель(и): | НОКИА КОРПОРЕЙШН (FI) |
Приоритеты: |
подача заявки:
2002-02-08 публикация патента:
27.06.2007 |
Изобретение относится к потоковой передаче информационной среды в сетях, основанных на пакетной передаче данных, в частности к механизму буферизации. Техническим результатом является устранение задержек при сетевой пакетной передаче, обусловленных работой сети и функционированием транспортного протокола. Указанный результат достигается за счет того, что устройство-клиент содержит декодер (120) и преддекодерный буфер (110), который принимает передаваемый поток пакетов от сервера-источника через сеть пакетной передачи. Преддекодерный буфер является переменным по размеру и имеет переменное время первоначальной буферизации для приема передаваемых пакетов от сервера-источника перед декодированием в декодере. Время первоначальной буферизации и размер преддекодерного буфера можно динамически адаптировать для улучшения характеристик воспроизведения при помощи сервера-источника. 14 н. и 66 з.п. ф-лы, 2 ил.
Формула изобретения
1. Способ передачи данных информационной среды в виде потока пакетов данных от сервера в устройство-клиент, причем устройство-клиент содержит преддекодерный буфер (110) для временной буферизации данных информационной среды перед декодированием в формат несжатых данных, отличающийся тем, что осуществляют буферизацию данных информационной среды в преддекодерном буфере (110) устройства-клиента в соответствии с алгоритмом буферизации, причем алгоритм буферизации заключается в том, что удаляют заголовки протоколов из пакета данных, принятого в устройстве-клиенте, и добавляют принятый пакет данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохраняют данные в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляют в преддекодерный буфер, запускают таймер воспроизведения, когда время первоначальной буферизации истекло, удаляют порцию данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задают соответствующим минимальному размеру преддекодерного буфера, требуемому для обеспечения, по существу, правильного воспроизведения данных информационной среды в устройстве-клиенте, когда поток пакетов данных передают по сети надежной передачи с постоянной задержкой, и приводят в действие сервер для проверки того, что поток пакетов данных, передаваемый от сервера в устройство-клиент, соответствует алгоритму буферизации.
2. Способ по п.1, отличающийся тем, что дополнительно передают сообщение от устройства-клиента на сервер для указания любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации и минимального размера преддекодерного буфера, приводят в действие сервер для проверки передаваемого потока пакетов данных в соответствии с алгоритмом буферизации с использованием сообщенных времени преддекодерной первоначальной буферизации и/или минимального размера преддекодерного буфера.
3. Способ по п.1, отличающийся тем, что дополнительно задают время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию и приводят в действие сервер для проверки передаваемого потока пакетов данных в соответствии с алгоритмом буферизации с использованием упомянутых значений по умолчанию.
4. Способ по п.3, отличающийся тем, что сообщают от устройства-клиента любой один или оба из следующих параметров: время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию серверу в связи с установлением сеанса потоковой передачи с сервером.
5. Способ по п.3, отличающийся тем, что время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию задают неявным образом.
6. Способ по п.5, отличающийся тем, что сообщают от устройства-клиента информацию о его возможностях преддекодерной буферизации серверу, если они превосходят те, которые заданы упомянутыми значениями по умолчанию.
7. Способ по п.1, отличающийся тем, что извлекают с помощью сервера информацию о возможностях преддекодерной буферизации для устройства-клиента из сервера возможностей.
8. Способ по п.1, отличающийся тем, что регулируют в устройстве-клиенте время его преддекодерной первоначальной буферизации в ответ на указание требуемого времени преддекодерной первоначальной буферизации, принятое от сервера.
9. Способ по п.1, отличающийся тем, что регулируют в устройстве-клиенте размер его преддекодерного буфера в ответ на указание требуемого размера преддекодерного буфера, принятое от сервера.
10. Способ по п.1, отличающийся тем, что передают в сервер множество разных предварительно закодированных потоков информационной среды, характеризующих содержание этой информационной среды, и передают сообщения устройству-клиенту для указания, по меньшей мере, одного параметра из следующих: времени преддекодерной первоначальной буферизации и размера преддекодерного буфера, требуемого в устройстве-клиенте, для гарантии правильного воспроизведения каждого доступного предварительно закодированного потока информационной среды.
11. Способ по п.1, отличающийся тем, что регулируют в устройстве-клиенте любой один или оба из следующих параметров: время его преддекодерной первоначальной буферизации и размер его преддекодерного буфера в ответ на изменение требуемых параметров преддекодерного буфера, сообщенных сервером во время сеанса потоковой передачи.
12. Способ по п.1, отличающийся тем, что регулируют в сервере времена передачи пакетов данных от сервера в устройство-клиент, чтобы гарантировать, что передаваемый поток пакетов данных не превосходит возможности буферизации преддекодерного буфера в устройстве-клиенте.
13. Способ по п.1, отличающийся тем, что регулируют в сервере способ кодирования и пакетирования данных информационной среды, чтобы гарантировать, что передаваемый поток пакетов данных не превосходит возможности буферизации преддекодерного буфера в устройстве-клиенте.
14. Способ по п.1, отличающийся тем, что устройство-клиент также содержит последекодерный буфер для устранения вариаций задержки, связанных с декодированием.
15. Способ по п.1, отличающийся тем, что устройство-клиент является одним из следующих устройств: беспроводным терминалом, настольным компьютером, портативным компьютером или компьютерной приставкой к телевизору.
16. Система для передачи данных информационной среды в виде потока пакетов данных от сервера в устройство-клиент, причем устройство-клиент содержит преддекодерный буфер (110) для временной буферизации данных информационной среды перед декодированием в формат несжатых данных, отличающаяся тем, что устройство-клиент выполнено с возможностью буферизации данных информационной среды в преддекодерном буфере (110) в соответствии с алгоритмом буферизации, причем алгоритм буферизации предназначен для удаления заголовков протоколов из пакета данных, принятого в устройстве-клиенте, и добавления принятого пакета данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохранения данных в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляется в преддекодерный буфер, запуска таймера воспроизведения, когда время первоначальной буферизации истекло, удаления порции данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задан соответствующим минимальному размеру преддекодерного буфера, требуемому для обеспечения, по существу, правильного воспроизведения данных информационной среды в устройстве-клиенте, когда поток пакетов данных передается по сети надежной передачи с постоянной задержкой, и сервер выполнен с возможностью проверки того, что поток пакетов данных, передаваемый от сервера в устройство-клиент, соответствует алгоритму буферизации.
17. Система по п.16, отличающаяся тем, что устройство-клиент дополнительно выполнено с возможностью передачи сообщения на сервер для указания любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации и минимального размера преддекодерного буфера, и сервер дополнительно выполнен с возможностью проверки передаваемого потока пакетов данных в соответствии с алгоритмом буферизации с использованием сообщенных времени преддекодерной первоначальной буферизации и/или минимального размера преддекодерного буфера.
18. Система по п.16, отличающаяся тем, что для преддекодерного буфера устройства-клиента заданы время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию, а сервер выполнен с возможностью проверки передаваемого потока пакетов данных в соответствии с алгоритмом буферизации с использованием упомянутых значений по умолчанию.
19. Система по п.18, отличающаяся тем, что устройство-клиент выполнено с возможностью сообщения любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации по умолчанию и минимального размера преддекодерного буфера по умолчанию серверу в связи с установлением сеанса потоковой передачи с сервером.
20. Система по п.18, отличающаяся тем, что время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию заданы неявным образом.
21. Система по п.20, отличающаяся тем, что устройство-клиент выполнено с возможностью сообщения информации о его возможностях преддекодерной буферизации серверу, если они превосходят те, которые заданы упомянутыми значениями по умолчанию.
22. Система по п.16, отличающаяся тем, что упомянутый сервер выполнен с возможностью извлечения информации о возможностях преддекодерной буферизации для устройства-клиента из сервера возможностей.
23. Система по п.16, отличающаяся тем, что устройство-клиент выполнено с возможностью регулирования времени его преддекодерной первоначальной буферизации в ответ на указание требуемого времени преддекодерной первоначальной буферизации, принятое от сервера.
24. Система по п.16, отличающаяся тем, что устройство-клиент выполнено с возможностью регулирования размера его преддекодерного буфера в ответ на указание требуемого размера преддекодерного буфера, принятое от сервера.
25. Система по п.16, отличающаяся тем, что передают на сервер множество разных предварительно закодированных потоков информационной среды, характеризующих содержание этой информационной среды, при этом сервер выполнен с возможностью сообщения, по меньшей мере, одного параметра из следующих: времени преддекодерной первоначальной буферизации и размера преддекодерного буфера, требуемого в устройстве-клиенте, для гарантии правильного воспроизведения каждого доступного предварительно закодированного потока информационной среды.
26. Система по п.16, отличающаяся тем, что устройство-клиент выполнено с возможностью регулирования любого одного или обоих из следующих параметров: времени его преддекодерной первоначальной буферизации и размера его преддекодерного буфера в ответ на изменение требуемых параметров преддекодерного буфера, сообщенных сервером во время сеанса потоковой передачи.
27. Система по п.16, отличающаяся тем, что сервер выполнен с возможностью регулирования времен передачи пакетов данных от сервера в устройство-клиент, чтобы гарантировать, что передаваемый поток пакетов данных не превосходит возможности буферизации преддекодерного буфера в устройстве-клиенте.
28. Система по п.16, отличающаяся тем, что сервер выполнен с возможностью регулирования способа кодирования и пакетирования данных информационной среды, чтобы гарантировать, что передаваемый поток пакетов данных не превосходит возможности буферизации преддекодерного буфера в устройстве-клиенте.
29. Система по п.16, отличающаяся тем, что устройство-клиент является одним из следующих устройств: беспроводным терминалом, настольным компьютером, портативным компьютером или компьютерной приставкой к телевизору.
30. Устройство-клиент для приема данных информационной среды, при этом данные информационной среды принимаются в устройстве-клиенте в виде потока пакетов данных от сервера, содержащее преддекодерный буфер (110) для временной буферизации данных информационной среды перед декодированием в формат несжатых данных, отличающееся тем, что выполнено с возможностью буферизации данных информационной среды в преддекодерном буфере (110) в соответствии с алгоритмом буферизации, причем алгоритм буферизации предназначен для удаления заголовков протоколов из пакета данных, принятого в устройстве-клиенте, и добавления принятого пакета данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохранения данных в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляется в преддекодерный буфер, запуска таймера воспроизведения, когда время первоначальной буферизации истекло, удаления порции данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задан соответствующим минимальному размеру преддекодерного буфера, требуемому для обеспечения, по существу, правильного воспроизведения данных информационной среды в устройстве-клиенте, когда поток пакетов данных передается по сети надежной передачи с постоянной задержкой.
31. Устройство-клиент по п.30, отличающееся тем, что выполнено с возможностью передачи сообщения на сервер для указания любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации и минимального размера преддекодерного буфера для использования сервером при проверке передаваемого потока пакетов данных в соответствии с алгоритмом буферизации.
32. Устройство-клиент по п.30, отличающееся тем, что для преддекодерного буфера устройства-клиента заданы время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию.
33. Устройство-клиент по п.32, отличающееся тем, что выполнено с возможностью сообщения любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации по умолчанию и минимального размера преддекодерного буфера по умолчанию серверу в связи с установлением сеанса потоковой передачи с сервером.
34. Устройство-клиент по п.32, отличающееся тем, что выполнено с возможностью сообщения информации о его возможностях преддекодерной буферизации серверу, если они превосходят те, которые заданы упомянутыми значениями по умолчанию.
35. Устройство-клиент по п.30, отличающееся тем, что выполнено с возможностью регулирования времени его преддекодерной первоначальной буферизации в ответ на указание требуемого времени преддекодерной первоначальной буферизации, принятое от сервера.
36. Устройство-клиент по п.30, отличающееся тем, что выполнено с возможностью регулирования размера его преддекодерного буфера в ответ на указание требуемого размера преддекодерного буфера, принятое от сервера.
37. Устройство-клиент по п.30, отличающееся тем, что выполнено с возможностью приема сообщения от сервера с указанием, по меньшей мере, одного параметра из следующих: времени преддекодерной первоначальной буферизации и размера преддекодерного буфера, требуемого для обеспечения правильного воспроизведения каждого из некоторого количества разных предварительно закодированных потоков информационной среды, характеризующих содержание этой информационной среды, выбора одного из разных предварительно закодированных потоков информационной среды для воспроизведения в устройстве-клиенте и регулирования времени своей преддекодерной первоначальной буферизации и размера своего преддекодерного буфера в соответствии с требованиями выбранного потока информационной среды.
38. Устройство-клиент по п.30, отличающееся тем, что выполнено с возможностью регулирования любого одного или обоих из следующих параметров: времени его преддекодерной первоначальной буферизации и размера его преддекодерного буфера в ответ на изменение требуемых параметров преддекодерного буфера, сообщенных сервером во время сеанса потоковой передачи.
39. Устройство-клиент по п.30, отличающееся тем, что является одним из следующих устройств: беспроводным терминалом, настольным компьютером, портативным компьютером или компьютерной приставкой к телевизору.
40. Сервер для передачи данных информационной среды в виде потока пакетов данных в устройство-клиент, причем устройство-клиент содержит преддекодерный буфер (110) для временной буферизации данных информационной среды перед декодированием в формат несжатых данных, отличающийся тем, что выполнен с возможностью проверки того, что поток пакетов данных, передаваемый от сервера в устройство-клиент, соответствует алгоритму буферизации, используемому в устройстве-клиенте для буферизации данных информационной среды в преддекодерном буфере, причем алгоритм буферизации предназначен для удаления заголовков протоколов из пакета данных, принятого в устройстве-клиенте, и добавления принятого пакета данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохранения данных в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляется в преддекодерный буфер, запуска таймера воспроизведения, когда время первоначальной буферизации истекло, удаления порции данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задан соответствующим минимальному размеру преддекодерного буфера, требуемому для обеспечения, по существу, правильного воспроизведения данных информационной среды в устройстве-клиенте, когда поток пакетов данных передается по сети надежной передачи с постоянной задержкой.
41. Сервер по п.40, отличающийся тем, что дополнительно выполнен с возможностью приема сообщения от устройства клиента для указания любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации и минимального размера преддекодерного буфера, и с возможностью проверки передаваемого потока пакетов данных в соответствии с алгоритмом буферизации с использованием сообщенных времени преддекодерной первоначальной буферизации и/или минимального размера преддекодерного буфера.
42. Сервер по п.40, отличающийся тем, что для преддекодерного буфера устройства-клиента заданы время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию, а сервер выполнен с возможностью проверки передаваемого потока пакетов данных в соответствии с алгоритмом буферизации с использованием упомянутых значений по умолчанию.
43. Сервер по п.42, отличающийся тем, что выполнен с возможностью сообщения любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации по умолчанию и минимального размера преддекодерного буфера по умолчанию серверу в связи с установлением сеанса потоковой передачи.
44. Сервер по п.42, отличающийся тем, что время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию заданы неявным образом.
45. Сервер по п.40, отличающийся тем, что выполнен с возможностью извлечения информации о возможностях преддекодерной буферизации для устройства-клиента из сервера возможностей.
46. Сервер по п.40, отличающийся тем, что выполнен с возможностью передачи указания требуемого времени преддекодерной первоначальной буферизации в устройство-клиент.
47. Сервер по п.40, отличающийся тем, что выполнен с возможностью передачи указания требуемого размера преддекодерного буфера в устройство-клиент.
48. Сервер по п.40, отличающийся тем, что выполнен с возможностью получения множества разных предварительно закодированных потоков информационной среды, характеризующих содержание этой информационной среды, и выполнен с возможностью сообщения, по меньшей мере, одного параметра из следующих: времени преддекодерной первоначальной буферизации и размера преддекодерного буфера, требуемого в устройстве-клиенте, для гарантии правильного воспроизведения каждого доступного предварительно закодированного потока информационной среды.
49. Сервер по п.40, отличающийся тем, что выполнен с возможностью сообщения об изменении требуемых параметров преддекодерного буфера в устройство-клиент во время сеанса потоковой передачи.
50. Сервер по п.40, отличающийся тем, что выполнен с возможностью регулирования времен передачи пакетов данных от сервера в устройство-клиент, чтобы гарантировать, что передаваемый поток пакетов данных не превосходит возможности буферизации преддекодерного буфера в устройстве-клиенте.
51. Сервер по п.40, отличающийся тем, что выполнен с возможностью регулирования способа кодирования и пакетирования данных информационной среды, чтобы гарантировать, что передаваемый поток пакетов данных не превосходит возможности буферизации преддекодерного буфера в устройстве-клиенте.
52. Способ буферизации данных информационной среды в устройстве-клиенте, при этом данные информационной среды принимают в устройстве-клиенте от сервера в виде потока пакетов данных, причем устройство-клиент содержит преддекодерный буфер (110) для временной буферизации данных информационной среды перед декодированием в формат несжатых данных, отличающийся тем, что осуществляют буферизацию данных информационной среды в преддекодерном буфере (110) устройства-клиента в соответствии с алгоритмом буферизации, причем алгоритм буферизации заключается в том, что удаляют заголовки протоколов из пакета данных, принятого в устройстве-клиенте, и добавляют принятый пакет данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохраняют данные в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляют в преддекодерный буфер, запускают таймер воспроизведения, когда время первоначальной буферизации истекло, удаляют порцию данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задают соответствующим минимальному размеру преддекодерного буфера, требуемому для обеспечения, по существу, правильного воспроизведения данных информационной среды в устройстве-клиенте, когда поток пакетов данных передают по сети надежной передачи с постоянной задержкой.
53. Способ по п.52, отличающийся тем, что дополнительно передают сообщение от устройства-клиента на сервер для указания любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации и минимального размера преддекодерного буфера для использования сервером для проверки передаваемого потока пакетов данных в соответствии с алгоритмом буферизации.
54. Способ по п.52, отличающийся тем, что дополнительно задают время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию для преддекодерного буфера устройства-клиента.
55. Способ по п.54, отличающийся тем, что сообщают от устройства-клиента любой один или оба из следующих параметров: время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию серверу в связи с установлением сеанса потоковой передачи с сервером.
56. Способ по п.54, отличающийся тем, что сообщают от устройства-клиента информацию о его возможностях преддекодерной буферизации серверу, если они превосходят те, которые заданы упомянутыми значениями по умолчанию.
57. Способ по п.52, отличающийся тем, что регулируют в устройстве-клиенте время его преддекодерной первоначальной буферизации в ответ на указание требуемого времени преддекодерной первоначальной буферизации, принятое от сервера.
58. Способ по п.52, отличающийся тем, что регулируют в устройстве-клиенте размер его преддекодерного буфера в ответ на указание требуемого размера преддекодерного буфера, принятое от сервера.
59. Способ по п.52, отличающийся тем, что дополнительно принимают в устройстве-клиенте сообщение от сервера с указанием, по меньшей мере, одного параметра из следующих: времени преддекодерной первоначальной буферизации и размера преддекодерного буфера, требуемого для обеспечения правильного воспроизведения каждого из некоторого количества разных предварительно закодированных потоков информационной среды, характеризующих содержащие этой информационной среды, выбирают один из разных предварительно закодированных потоков информационной среды для воспроизведения в устройстве-клиенте и регулируют время преддекодерной первоначальной буферизации и размер преддекодерного буфера в соответствии с требованиями выбранного потока информационной среды.
60. Способ по п.52, отличающийся тем, что регулируют в устройстве-клиенте любой один или оба из следующих параметров: время его преддекодерной первоначальной буферизации и размер его преддекодерного буфера в ответ на изменение требуемых параметров преддекодерного буфера, сообщенных сервером во время сеанса потоковой передачи.
61. Способ передачи данных информационной среды в виде потока пакетов данных от сервера в устройство-клиент, причем устройство-клиент содержит преддекодерный буфер (110) для временной буферизации данных информационной среды перед декодированием в формат несжатых данных, отличающийся тем, что приводят в действие сервер для проверки того, что поток пакетов данных, передаваемый от сервера в устройство-клиент, соответствует алгоритму буферизации, используемому в устройстве-клиенте для буферизации данных информационной среды в преддекодерном буфере, причем алгоритм буферизации заключается в том, что удаляют заголовки протоколов из пакета данных, принятого в устройстве-клиенте, и добавляют принятый пакет данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохраняют данные в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляют в преддекодерный буфер, запускают таймер воспроизведения, когда время первоначальной буферизации истекло, удаляют порцию данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задают соответствующим минимальному размеру преддекодерного буфера, требуемому для обеспечения, по существу, правильного воспроизведения данных информационной среды в устройстве-клиенте, когда поток пакетов данных передают по сети надежной передачи с постоянной задержкой,
62. Способ по п.61, отличающийся тем, что принимают в сервере сообщение от устройства-клиента для указания любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации и минимального размера преддекодерного буфера, и проверяют в сервере передаваемый поток пакетов данных в соответствии с алгоритмом буферизации с использованием сообщенных времени преддекодерной первоначальной буферизации и/или минимального размера преддекодерного буфера.
63. Способ по п.61, отличающийся тем, что задают время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию для преддекодерного буфера устройства-клиента и проверяют в сервере передаваемый поток пакетов данных в соответствии с алгоритмом буферизации с использованием упомянутых значений по умолчанию.
64. Способ по п.63, отличающийся тем, что принимают в сервере сообщение с указанием любого одного или обоих из следующих параметров: времени преддекодерной первоначальной буферизации по умолчанию и минимального размера преддекодерного буфера по умолчанию серверу в связи с установлением сеанса потоковой передачи.
65. Способ по п.63, отличающийся тем, что время преддекодерной первоначальной буферизации по умолчанию и минимальный размер преддекодерного буфера по умолчанию задают неявным образом.
66. Способ по п.61, отличающийся тем, что извлекают с помощью сервера информацию о возможностях преддекодерной буферизации для устройства-клиента из сервера возможностей.
67. Способ по п.61, отличающийся тем, что передают от сервера информацию о требуемом времени преддекодерной первоначальной буферизации в устройство-клиент.
68. Способ по п.61, отличающийся тем, что передают от сервера информацию о требуемом размере преддекодерного буфера в устройство-клиент.
69. Способ по п.61, отличающийся тем, что передают в сервер множество разных предварительно закодированных потоков информационной среды, характеризующих содержание этой информационной среды, и сообщают от сервера, по меньшей мере, один параметр из следующих: время преддекодерной первоначальной буферизации и размер преддекодерного буфера, требуемый в устройстве-клиенте, для гарантии правильного воспроизведения каждого доступного предварительно закодированного потока информационной среды.
70. Способ по п.61, отличающийся тем, что сообщают от сервера об изменении требуемых параметров преддекодерного буфера в устройство-клиент во время сеанса потоковой передачи.
71. Способ по п.61, отличающийся тем, что регулируют в сервере времена передачи пакетов данных от сервера в устройство-клиент, чтобы гарантировать, что передаваемый поток пакетов данных не превосходит возможности буферизации преддекодерного буфера в устройстве-клиенте.
72. Способ по п.61, отличающийся тем, что регулируют в сервере способ кодирования и пакетирования данных информационной среды, чтобы гарантировать, что передаваемый поток пакетов данных не превосходит возможности буферизации преддекодерного буфера в устройстве-клиенте.
73. Поток пакетов данных, содержащий данные информационной среды, отличающийся тем, что соответствует алгоритму буферизации, используемому в устройстве-клиенте для временной буферизации данных информационной среды в преддекодерном буфере устройства-клиента перед декодированием в формат несжатых данных, причем алгоритм буферизации предназначен для удаления заголовков протоколов из пакета данных, принятого в устройстве-клиенте, и добавления принятого пакета данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохранения данных в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляется в преддекодерный буфер, запуска таймера воспроизведения, когда время первоначальной буферизации истекло, удаления порции данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задан соответствующим минимальному размеру преддекодерного буфера, требуемому для обеспечения, по существу, правильного воспроизведения данных информационной среды в устройстве-клиенте, когда поток пакетов данных передается по сети надежной передачи с постоянной задержкой.
74. Способ передачи данных информационной среды в виде потока пакетов данных от сервера в устройство-клиент, отличающийся тем, что осуществляют временную буферизацию данных информационной среды в преддекодерном буфере устройства-клиента в соответствии с алгоритмом буферизации перед декодированием данных информационной среды в формат несжатых данных, причем алгоритм буферизации заключается в том, что удаляют заголовки протоколов из пакета данных, принятого в устройстве-клиенте, и добавляют принятый пакет данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохраняют данные в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляют в преддекодерный буфер, запускают таймер воспроизведения, когда время первоначальной буферизации истекло, удаляют порцию данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задают соответствующим объему данных, который может быть сохранен в преддекодерном буфере в дополнение к объему буферизованных данных, для согласования вариации задержки передачи, и приводят в действие сервер для проверки того, что поток пакетов данных, передаваемый от сервера в устройство-клиент, соответствует алгоритму буферизации.
75. Система для передачи данных информационной среды в виде потока пакетов данных от сервера в устройство-клиент, отличающаяся тем, что устройство-клиент выполнено с возможностью временной буферизации данных информационной среды в преддекодерном буфере устройства-клиента в соответствии с алгоритмом буферизации перед декодированием данных информационной среды в формат несжатых данных, причем алгоритм буферизации предназначен для удаления заголовков протоколов из пакета данных, принятого в устройстве-клиенте, и добавления принятого пакета данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохранения данных в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляется в преддекодерный буфер, запуска таймера воспроизведения, когда время первоначальной буферизации истекло, удаления порции данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задан соответствующим объему данных, который может быть сохранен в преддекодерном буфере в дополнение к объему буферизованных данных, для согласования вариации задержки передачи, и сервер выполнен с возможностью проверки того, что поток пакетов данных, передаваемый от сервера в устройство-клиент, соответствует алгоритму буферизации.
76. Устройство-клиент для приема данных информационной среды, отличающееся тем, что выполнено с возможностью временной буферизации данных информационной среды в преддекодерном буфере устройства-клиента в соответствии с алгоритмом буферизации перед декодированием данных информационной среды в формат несжатых данных, причем алгоритм буферизации предназначен для удаления заголовков протоколов из пакета данных, принятого в устройстве-клиенте, и добавления принятого пакета данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохранения данных в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляется в преддекодерный буфер, запуска таймера воспроизведения, когда время первоначальной буферизации истекло, удаления порции данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задан соответствующим объему данных, который может быть сохранен в преддекодерном буфере в дополнение к объему буферизованных данных, для согласования вариации задержки передачи.
77. Сервер для передачи данных информационной среды в устройство-клиент, отличающийся тем, что выполнен с возможностью проверки того, что поток пакетов данных, передаваемый от сервера в устройство-клиент, соответствует алгоритму буферизации, используемому в устройстве-клиенте для временной буферизации данных информационной среды в преддекодерном буфере устройства-клиента перед декодированием данных информационной среды в формат несжатых данных, причем алгоритм буферизации предназначен для удаления заголовков протоколов из пакета данных, принятого в устройстве-клиенте, и добавления принятого пакета данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохранения данных в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляется в преддекодерный буфер, запуска таймера воспроизведения, когда время первоначальной буферизации истекло, удаления порции данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задан соответствующим объему данных, который может быть сохранен в преддекодерном буфере в дополнение к объему буферизованных данных, для согласования вариации задержки передачи.
78. Способ буферизации данных информационной среды в устройстве-клиенте, отличающийся тем, что осуществляют буферизацию данных информационной среды в преддекодерном буфере устройства-клиента в соответствии с алгоритмом буферизации перед декодированием в формат несжатых данных, причем алгоритм буферизации заключается в том, что удаляют заголовки протоколов из пакета данных, принятого в устройстве-клиенте, и добавляют принятый пакет данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохраняют данные в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляют в преддекодерный буфер, запускают таймер воспроизведения, когда время первоначальной буферизации истекло, удаляют порцию данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задают соответствующим объему данных, который может быть сохранен в преддекодерном буфере в дополнение к объему буферизованных данных, для согласования вариации задержки передачи.
79. Способ передачи данных информационной среды в виде потока пакетов данных от сервера в устройство-клиент, отличающийся тем, что приводят в действие сервер для проверки того, что поток пакетов данных, передаваемый от сервера в устройство-клиент, соответствует алгоритму буферизации, используемому в устройстве-клиенте для временной буферизации данных информационной среды в преддекодерном буфере устройства-клиента перед декодированием в формат несжатых данных, причем алгоритм буферизации заключается в том, что удаляют заголовки протоколов из пакета данных, принятого в устройстве-клиенте, и добавляют принятый пакет данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохраняют данные в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляют в преддекодерный буфер, запускают таймер воспроизведения, когда время первоначальной буферизации истекло, удаляют порцию данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задают соответствующим объему данных, который может быть сохранен в преддекодерном буфере в дополнение к объему буферизованных данных, для согласования вариации задержки передачи.
80. Поток пакетов данных, содержащий данные информационной среды, отличающийся тем, что соответствует алгоритму буферизации, используемому в устройстве-клиенте для временной буферизации данных информационной среды в преддекодерном буфере устройства-клиента перед декодированием в формат несжатых данных, причем алгоритм буферизации предназначен для удаления заголовков протоколов из пакета данных, принятого в устройстве-клиенте, и добавления принятого пакета данных в преддекодерный буфер, по существу, как только он принят в устройстве-клиенте, причем преддекодерный буфер первоначально пуст, сохранения данных в преддекодерном буфере на протяжении периода времени первоначальной буферизации, который начинается, когда первый пакет данных добавляется в преддекодерный буфер, запуска таймера воспроизведения, когда время первоначальной буферизации истекло, удаления порции данных из преддекодерного буфера при достижении таймером воспроизведения запланированного времени воспроизведения для этой порции данных, при условии, что алгоритм буферизации не разрешает уровню заполнения преддекодерного буфера превышать заданный размер преддекодерного буфера, и при этом минимальный размер преддекодерного буфера задан соответствующим объему данных, который может быть сохранен в преддекодерном буфере в дополнение к объему буферизованных данных, для согласования вариации задержки передачи.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Настоящее изобретение в общем относится к потоковой передаче информационной среды в сетях, основанных на пакетной передаче данных. В частности, данное изобретение относится к механизму буферизации, предназначенному для усовершенствования воспроизведения потоковой информационной среды при вариации задержки передачи пакетов, обусловленной кодированием и пакетированием.
Уровень техники
В обычных мультимедийных системах с коммутацией пакетов, например системах видеоконференций на основе Интернет-протокола (IP), обычно различные типы информационной среды передаются в отдельных пакетах. Кроме того, пакеты в типичном случае передаются в верхнем уровне наиболее подходящего сетевого протокола, что не может гарантировать постоянную задержку передачи, и задержка может меняться от пакета к пакету. Следовательно, пакеты, имеющие одинаковую отметку времени представления (воспроизведения), не могут быть приняты в одно и то же время, и интервал приема двух пакетов может не совпадать с интервалом их представления (с точки зрения времени). Таким образом, для поддержания синхронизации воспроизведения различных типов информационной среды и сохранения правильной скорости воспроизведения мультимедийный терминал в типичном случае буферизует принятые данные на короткий период (например, менее половины секунды), чтобы сгладить вариацию задержки. В данном случае такой тип буфера называется буфером флуктуации времени задержки. В обычных мультимедийных системах с коммутацией пакетов буферизация может происходить до и/или после декодирования данных информационной среды.
Буферизация флуктуации времени задержки также применяется в системах потоковой передачи. Из-за того, что потоковая передача не относится к обычным вариантам применения, требуемый буфер флуктуации времени задержки может быть значительно больше, чем в обычных вариантах применения. Когда устройство воспроизведения потока установило соединение с сервером и запросило загрузку мультимедийного потока, сервер начинает передавать требуемый поток. В типичном случае устройство воспроизведения не начинает сразу же воспроизводить данный поток, а буферизует входящие данные в течение определенного периода, в типичном случае несколько секунд. В данном случае этот тип буферизации называется первоначальной буферизацией. Первоначальная буферизация предоставляет возможность сглаживания вариаций задержки передачи аналогично буферизации флуктуации времени задержки в обычных вариантах применения. Кроме того, это может позволить использовать повторную передачу потерянных протокольных блоков данных (PDU) для связи, транспортировки и/или прикладного уровня. Буферизация дает возможность устройству воспроизведения декодировать и воспроизводить данные из буфера, одновременно позволяя повторно передавать потерянные протокольные блоки данных. Если период буферизации является достаточно длинным, повторно передаваемые протокольные блоки данных принимаются в такое время, чтобы быть декодированными и воспроизведенными в запланированный момент.
Первоначальная буферизация в клиентах потоковой передачи обеспечивает дополнительное преимущество, которое не может быть достигнуто в обычных системах: она позволяет менять скорость передачи данных информационной среды, передаваемой от сервера. Другими словами, пакеты информационной среды могут временно передаваться быстрее или медленнее скорости их воспроизведения до тех пор, пока буфер приемника не переполнится или не опустеет. Флуктуация скорости передачи данных может возникать по двум причинам. Первой причиной флуктуации является то, что эффективность сжатия, достигаемая для некоторых типов информационных сред, например видео, зависит от содержания исходных данных. Следовательно, если требуется стабильное качество, скорость передачи битов результирующего сжатого битового потока меняется. В типичном случае стабильное качество аудиовизуального воспроизведения субъективно лучше воспринимается, чем изменяющееся качество. Таким образом, первоначальная буферизация позволяет достичь более высокого аудиовизуального качества по сравнению с системой без первоначальной буферизации, например системой видеоконференций.
Если рассматривать пример видеоданных более подробно, различные кадры видеопоследовательности могут быть представлены с использованием сильно различающихся объемов данных. Это возникает в результате использования технологий кодирования с предсказанием. В типичном случае стандарты видеокодирования определяют, по меньшей мере, два типа кадра. Основными типами являются INTRA или I-кадры и INTER или P-кадры. INTRA кадр кодируется на основе информации, содержащейся в самом изображении, а P-кадр кодируется с учетом, по меньшей мере, одного другого кадра, обычно кадра, расположенного раньше в видеопоследовательности. Из-за значительного запаса времени между последовательными кадрами цифровой видеопоследовательности можно кодировать INTER кадр с использованием значительно меньшего объема данных, чем требуется для представления INTRA кадра. Поэтому INTRA кадры используются в кодированных видеопоследовательностях сравнительно нечасто.
В типичном случае кодированная последовательность начинается с INTRA кадра (так как отсутствует предыдущий кадр, используемый как эталон при создании INTER кадра). INTRA кадры могут вставляться в данную последовательность периодически, например, через равные интервалы, чтобы компенсировать ошибки, которые могут накапливаться и распространяться в непрерывной совокупности созданных с предсказанием (INTER) кадров. INTRA кадры также обычно используются в сменах эпизодов, в которых изображение, содержащееся в последовательных кадрах, меняется так сильно, что кодирование с предсказанием не обеспечивает эффективного уменьшения объема данных. Поэтому типичный кодированный поток видеоданных в общем случае начинается с INTRA кодированного кадра и содержит последовательность INTER кадров, между которыми время от времени размещают INTRA кадры, при этом объем данных, требуемых для представления INTRA кадра, в несколько раз (например, 5-10) больше, чем требуется для представления INTER кодированного кадра. Объем данных, требуемых для представления каждого INTER кадра, также изменяется в соответствии с уровнем сходства/различия с его эталонным кадром и количеством деталей в изображении.
Это означает, что информация, требуемая для воссоздания кодированной с предсказанием видеопоследовательности, неравномерно распределена по передаваемым пакетам данных. Другими словами, для переноса данных, относящихся к INTRA кадру, требуется большее число пакетов данных, чем для переноса данных для INTER кадра. Кроме того, так как объем данных, требуемых для представления последовательных INTER кадров, также меняется в зависимости от содержания изображения, то число пакетов данных, требуемых для переноса данных INTER кадра, также изменяется.
Второй причиной флуктуации являются потери пакетов в IP-сетях со стационарными абонентами, возникающие при передаче набора пакетов. Чтобы избежать пакетных ошибок и высоких пиковых скоростей передачи битов и пакетов, правильно сконструированные серверы потоковой передачи тщательно планируют передачу пакетов, и пакеты могут не пересылаться точно на той же скорости, с которой они воспроизводятся принимающей стороной. В типичном случае сетевые серверы реализованы таким образом, что они пытаются обеспечить постоянную скорость передачи пакетов. Сервер может также регулировать скорость пакетной передачи в соответствии с преобладающими условиями в сети, например, снижая скорость пакетной передачи, когда сеть становится перегруженной, и, повышая ее, если это позволяют условия в сети. В типичном случае это осуществляется путем регулирования объявленного окна, подтверждающего сообщение, пересылаемого в TCP-протоколе (протокол управления передачей).
С учетом этого неотъемлемого свойства сетевых серверов применительно к ранее описанной системе видеокодирования не только информация, требуемая для воссоздания кодированной с предсказанием видеопоследовательности, неравномерно распределена по передаваемым пакетам данных, но и сами пакеты данных также могут передаваться от сервера с изменяющейся скоростью. Это означает, что декодер, находящийся, например, в принимающем клиентском терминале, имеет дело с переменной задержкой при приеме информации, которая ему требуется для создания последовательных кадров видеопоследовательности, даже если задержка передачи в сети является постоянной. Необходимо отметить, что термин "клиентский терминал" относится к любому электронному устройству конечного пользователя, такому как карманные устройства (PDA, personal digital assistant - персональный цифровой секретарь), беспроводные терминалы, а также настольные и портативные компьютеры и приставки. Эту вариацию задержки, возникающую из-за кодирования, пакетирования и пакетной передачи от сервера, можно назвать вариацией задержки, обусловленной кодированием или зависящей от сервера. Она не зависит от флуктуации времени задержки, возникающей из-за изменений времени передачи внутри сети, или является к ней дополнительной.
Следовательно, первоначальная буферизация позволяет исключить флуктуации скорости передачи данных из перечня вышеупомянутых недостатков, а именно вариацию задержки, обусловленную кодированием или зависящую от сервера, и вариацию задержки, связанную с передачей в сети. Первоначальная буферизация помогает обеспечить более стабильное аудиовизуальное качество и избежать переполнения сети и потери пакетов.
Первоначальная буферизация также может осуществляться после декодирования принятых данных информационной среды. Недостатком этого является то, что буфер должен иметь относительно большие размеры, так как буферизация выполняется применительно к декодированным данным. Совместное влияние вариаций задержки, обусловленной кодированием, зависящей от сервера и возникающей при передаче в сети, также приводит к повышению требований, предъявляемых к первоначальной буферизации.
Кроме того, кодирование данных информационной среды и способ, по которому кодированные данные помещаются в пакеты и передаются от сервера, являются причиной того, что декодер, находящийся в принимающем клиентском терминале, имеет дело с переменной задержкой при приеме информации, требуемой ему для воссоздания этих данных информационной среды, даже если задержка передачи в сети является постоянной. Поэтому последекодерный буфер не обеспечивает средств устранения этого вида вариаций задержки перед декодированием.
Сущность изобретения
Согласно первому аспекту данного изобретения предлагается способ потоковой передачи данных информационной среды путем передачи множества пакетов данных по сети от сервера-источника в устройство-клиент, причем устройство-клиент содержит декодер, предназначенный для декодирования кодированных пакетов. Данный способ отличается тем, что устройство-клиент дополнительно содержит преддекодерный буфер, имеющий переменное время первоначальной буферизации и переменный размер и установленный для приема передаваемых данных от сервера-источника перед декодированием в декодере, и при этом переменное время первоначальной буферизации и переменный размер преддекодерного буфера динамически адаптируют для улучшения характеристик воспроизведения устройством-клиентом.
Согласно второму аспекту данного изобретения предлагается система потоковой передачи данных информационной среды путем передачи множества пакетов данных, при этом упомянутая система содержит сервер-источник, управляющий данными информационной среды, сеть, служащую в качестве передающей среды для упомянутых пакетов данных, и устройство-клиент, выполненное с возможностью воспроизведения данных информационной среды, причем устройство-клиент содержит преддекодерный буфер для приема передаваемых пакетов от сервера-источника через упомянутую сеть, при этом преддекодерный буфер имеет переменное время первоначальной буферизации и переменный размер, декодер для декодирования пакетов, поступающих из преддекодерного буфера, и средства для динамической адаптации переменного времени первоначальной буферизации и переменного размера преддекодерного буфера, предназначенные для улучшения характеристик воспроизведения устройством-клиентом.
Согласно третьему аспекту данного изобретения предлагается устройство-клиент для приема множества пакетов данных, передаваемых по сети от сервера-источника, при этом устройство-клиент содержит преддекодерный буфер для приема передаваемых пакетов данных от сервера-источника через упомянутую сеть, причем преддекодерный буфер имеет переменное время первоначальной буферизации и переменный размер, декодер для декодирования пакетов данных, поступающих из преддекодерного буфера, и средства для динамической адаптации переменного времени первоначальной буферизации и переменного размера преддекодерного буфера, предназначенные для улучшения характеристик воспроизведения устройством-клиентом.
Краткое описание чертежей
Данное изобретение вместе с его дополнительными задачами и преимуществами может быть лучше понято при обращении к последующему описанию, рассмотренному совместно с сопровождающими чертежами, из которых:
фиг.1 изображает упрощенную блок-схему блока преддекодерного буфера в архитектуре терминального устройства, соответствующую одному из вариантов реализации данного изобретения, и
фиг.2 изображает пример прохождения данных в типичной системе потоковой передачи, иллюстрирующий эффект преддекодерной буферизации.
Подробное описание изобретения
Обзор архитектуры
Согласно данному изобретению в архитектуру терминала вводится новый блок буферизации для обеспечения улучшенной буферизации на стороне приемника. Этот блок буферизации называется здесь преддекодерным буфером.
На фиг.1 изображена упрощенная блок-схема блока преддекодерного буфера в архитектуре терминального устройства, соответствующая одному из вариантов реализации данного изобретения. Декодер 100 транспортного кода извлекает поток кода из принятых пакетов данных (например, пакетов данных RTP). Декодер 120 исходного кода декодирует поток кода в формат несжатых данных, которые могут быть воспроизведены. Преддекодерный буфер 110 используется как временное хранилище между операциями декодирования транспортного кода и декодирования исходного кода. В случае потока мультимедийных данных, содержащего более одного типа данных, обычный преддекодерный буфер преимущественно используется для всех передаваемых типов информационной среды реального времени. Однако в альтернативных вариантах реализации данного изобретения для каждого типа информационной среды предоставляется отдельный преддекодерный буфер, при этом этот преддекодерный буфер для каждого типа информационной среды находится между декодером транспортного кода и соответствующим декодером исходного кода для рассматриваемого типа информационной среды. Операции декодирования предпочтительно реализованы в виде программного обеспечения, хранящегося в памяти устройства-клиента, которое запускается и управляется центральным блоком управления (ЦБУ, MCV), управляющим работой устройства-клиента, часть которого показана на фиг.1. Центральный блок управления принимает управляющие сигналы от сервера-источника и управляет адаптацией времени первоначальной буферизации и размера буфера в соответствии с сигналами, принятыми от сервера-источника. Управление различными блоками, осуществляемое ЦБУ, проиллюстрировано на фиг.1 стрелками управления, идущими от ЦБУ к каждому блоку.
В предпочтительном варианте реализации данного изобретения преддекодерный буфер обеспечивается в дополнение к последекодерному буферу, расположенному после декодера в клиенте потоковой передачи. Преимущественно последекодерный буфер устанавливается для устранения вариаций задержки при сетевой передаче. Кроме того, последекодерный буфер может также устранять вариации задержки, связанные с декодированием. Это особенно выгодно в случае, когда в потоке одновременно передается более одного типа данных информационной среды. Использование последекодерного буфера в этой ситуации позволяет сглаживать вариации задержки при декодировании, внесенные декодерами различных информационных сред. В альтернативном варианте реализации данного изобретения отдельный декодерный буфер также обеспечивается в принимающем клиенте. Декодерный буфер находится между декодером и последекодерным буфером и используется для временного хранения данных информационной среды по мере их декодирования. В ситуации, когда в потоке одновременно передается более одного типа данных информационной среды, для каждого типа информационной среды преимущественно обеспечивается отдельный декодерный буфер для соответствующего декодера исходного кода.
Алгоритм буферизации
Алгоритм буферизации, используемый согласно данному варианту реализации настоящего изобретения, служит для буферизации принятых данных в клиенте потоковой передачи и управления кодированием и обслуживанием потоков, поступающих от находящегося в сети сервера потоковой передачи. Этот алгоритм предполагает, что в клиенте потоковой передачи имеется преддекодерный буфер, соответствующий данному изобретению.
Существует два основных фактора, влияющих на характер работы алгоритма буферизации, а именно: время первоначальной буферизации и минимальный размер преддекодерного буфера. Время первоначальной буферизации в типичном случае представляет собой промежуток времени между моментом приема первого пакета данных информационной среды и моментом воспроизведения первого образца информационной среды. Минимальный размер преддекодерного буфера в типичном случае соответствует тому объему данных (например, количеству байт данных), который клиент потоковой передачи способен сохранять в дополнение к буферизации, производимой для устранения вариации задержки при передаче. Другими словами, минимальный размер преддекодерного буфера определяется для сетей с надежной передачей, имеющих нулевую задержку.
Алгоритм буферизации похож на алгоритмы, описанные в Н.263 Приложение В (гипотетический эталонный декодер) и MPEG-4 (алгоритм сжатия подвижных изображений) Приложение D по визуальной информации (верификатор буферизации видеосигнала). Эти алгоритмы определяют механизм буферизации для видеокодеков. Необходимо отметить, что эти алгоритмы не могут быть использованы вместо предлагаемых алгоритмов преддекодерной буферизации, так как они применимы только для видео. Кроме того, гипотетический эталонный декодер по стандарту Н.263 не поддерживает первоначальную буферизацию или хранение множества (не относящихся к типу В) кадров в буфере. Также необходимо отметить, что предлагаемый алгоритм преддекодерной буферизации полностью совместим с вышеупомянутыми алгоритмами буферизации видеосигнала. При реализации на практике преддекодерный буфер и буфер видеодекодера могут быть объединены.
Согласно предпочтительному варианту реализации данного изобретения алгоритм буферизации накладывает ограничения на поток передаваемых пакетов данных с целью его соответствия требованиям, предъявляемым преддекодерным буфером, которые являются следующими.
1. Преддекодерный буфер первоначально пуст.
2. Каждый принятый пакет данных добавляется в преддекодерный буфер по существу сразу же при приеме. Все заголовки протоколов на уровне протокола передачи (например, уровень RTP) или любом низшем уровне удаляются.
3. Данные не удаляются из преддекодерного буфера на протяжении периода, называемого временем первоначальной буферизации, который начинается с добавления в буфер первого пакета данных.
4. Когда время первоначальной буферизации истекло, запускается таймер воспроизведения.
5. Порция данных удаляется из преддекодерного буфера по существу сразу же при достижении таймером воспроизведения значения запланированного времени воспроизведения для рассматриваемой порции данных.
6. Когда данные пересылаются по сети с надежной передачей, имеющей нулевую задержку, уровень заполнения преддекодерного буфера не должен превышать определенной величины, называемой размером преддекодерного буфера.
Необходимо отметить, что приведенные выше требования описывают работу без запросов на использование промежуточных пауз. Каждый новый запрос воспроизведения (например, после паузы) будет следовать тем же требованиям.
Кроме того, приведенные выше требования основаны на предположении о наличии сети надежной передачи с нулевой задержкой. Поэтому при реализации на практике преддекодерная буферизация на стороне клиента, вероятно, будет объединена с буферизацией флуктуации времени сетевой задержки. Следовательно, реальный размер преддекодерного буфера в клиенте потоковой передачи, по всей вероятности, будет больше минимального размера преддекодерного буфера, рассмотренного выше, а реальное время первоначальной буферизации, по всей вероятности, будет продолжительнее времени первоначальной буферизации, рассмотренного выше.
Преддекодерная буферизация
На фиг.2 изображен пример прохождения данных в типичной системе потоковой передачи, иллюстрирующий эффект преддекодерной буферизации. Полоски представляют собой кадры или пакеты информационной среды, например, темные полоски являются пакетами видеоданных (например, кодированными в соответствии с рекомендацией Н.263 Сектора стандартизации связи Международного союза электросвязи ITU-T, International Telecommunication Union - Telecommunication Standardization Sector), а светлые полоски являются пакетами аудиоданных (например, кодированные с использованием Адаптивного многоскоростного (AMR) речевого кодека). Высота полосок отражает размер кадра (или пакета) в байтах. Обработка потока происходит сверху вниз, а шкала времени направлена слева направо.
Если более подробно рассматривать фиг.2, то сначала кодируются входные данные. В результате поток видеоданных имеет изменяющиеся скорость передачи кадров и размер кадра, а поток аудиоданных имеет постоянную скорость передачи кадров, но меняющийся размер кадра. Затем сжатые потоки информационной среды размещаются в пакеты и передаются в сеть. Во время этого размещения сервер распределяет большие видеокадры по нескольким пакетам и объединяет некоторое число маленьких аудиокадров в один пакет. Сервер передает пакеты через равные интервалы. Предполагается наличие постоянной задержки передачи в сети вне зависимости от размера пакетов или любых других факторов. Поэтому относительное хронирование принятых пакетов идентично хронированию пакетов при их посылке. Принятые пакеты сохраняются в преддекодерном буфере. По истечении определенного времени первоначальной буферизации кадры извлекаются из буфера, и скорость удаления кадров идентична скорости их воспроизведения. Максимальный уровень заполнения буфера определяет минимальный размер преддекодерного буфера.
Оповещение о характеристиках преддекодерного буфера
Чтобы обеспечить некоторые минимальные возможности буферизации в клиентах потоковой передачи, задаются определенные характеристики буфера по умолчанию. Как описано ранее, характеристики буфера могут определяться в основном двумя факторами, а именно: временем первоначальной буферизации и минимальным размером преддекодерного буфера. В качестве примера, значение по умолчанию для времени первоначальной буферизации составляет приблизительно одну секунду, а минимальный размер преддекодерного буфера по умолчанию составляет приблизительно 30720 байт. Необходимо отметить, что эти значения являются всего лишь иллюстративными и могут быть изменены с целью достижения подходящей производительности для конкретного типа задержек, имеющихся в сети в данный момент времени. Предложенные значения по умолчанию получены при проведении экспериментов в обобщенной среде, которые ни в коей мере не учитывают конкретики, а принимают во внимание наиболее часто имеющие место сценарии пакетной передачи. Также необходимо отметить, что в данной системе потоковой передачи время преддекодерной первоначальной буферизации по умолчанию и размер преддекодерного буфера по умолчанию могут быть заданы не точно (предположительно). Другими словами, сервер-источник и клиенты потоковой передачи в сети работают таким образом, что предполагается наличие определенных параметров преддекодерного буфера по умолчанию (например, времени преддекодерной первоначальной буферизации и/или размера преддекодерного буфера). В альтернативных вариантах используется точное оповещение о параметрах преддекодерного буфера.
Чтобы дать возможность клиенту потоковой передачи сообщить о своих возможностях преддекодерной буферизации по умолчанию серверу-источнику и позволить этому клиенту принимать потоки информационной среды, требующие больших возможностей буферизации, чем возможности по умолчанию, в данном изобретении используется оповещение, основанное на способе SET_PARAMETER Протокола потоковой передачи в реальном времени (RTSP).
В качестве примера, терминальное устройство-клиент может запросить у сервера установку либо одного, либо обоих из следующих параметров.
1. InitialBufferingTimeInMSec (время первоначальной буферизации в миллисекундах).
2. PreDecoderBufferSizeInBytes (минимальный размер преддекодерного буфера в байтах).
Не допускается, чтобы терминальное устройство-клиент сообщало значения параметров, меньшие значений по умолчанию, определенных или предположительно закрепленных в системе потоковой передачи. Сервер, который принимает запрос, указывающий значение, меньшее одного из значений по умолчанию, может создать сигнал "Неправильный запрос". Если переданные значения больше или равны определенным или предположительным значениям по умолчанию, сообщенные значения принимаются к использованию по существу сразу же при приеме запроса, и сервер-источник верифицирует передаваемый пакетный поток, используя сообщенные значения в соответствии с ранее описанным алгоритмом буферизации. Другими словами, и как более подробно описано ниже, сервер передает пакетный поток таким образом, что он может быть воспроизведен по существу правильным образом принимающим клиентом. Если говорить более конкретно, сервер-источник передает пакетный поток таким образом, чтобы гарантировать, что в принимающем клиенте не произойдет переполнения преддекодерного буфера, и что все порции данных (например, кадры) информационной среды будут доступны для воспроизведения в принимающем клиенте в соответствующие запланированные моменты времени.
Согласно преимущественному варианту реализации данного изобретения, когда терминальное устройство-клиент впервые устанавливает связь с сетевым сервером и начинает настройку сеанса потоковой передачи с сервером путем запроса некоторой части информационной среды, которая должна быть передана в потоке, он сообщает серверу свои параметры преддекодерной буферизации по умолчанию. Как рассмотрено выше, согласно данному изобретению терминальное устройство-клиент может указать либо свое время преддекодерной буферизации по умолчанию, либо минимальный размер своего преддекодерного буфера, или оба упомянутых параметра. В альтернативном варианте, в котором терминальное устройство-клиент снабжено также последекодерным буфером, серверу-источнику может быть указан размер последекодерного буфера. В вариантах реализации данного изобретения, в которых параметры преддекодерного буфера заданы предположительно в системе потоковой передачи, первоначальное сообщение параметров преддекодерного буфера устройством-клиентом не является строго обязательным. Однако, если конкретное устройство-клиент обладает возможностями преддекодерной буферизации, превосходящими предположительно заданные значения по умолчанию, принятые в системе потоковой передачи, это устройство может сообщить их серверу. В дополнительном альтернативном варианте сервер-источник извлекает параметры преддекодерного буфера для заданного устройства-клиента с сервера возможностей, связанного с данной системой потоковой передачи.
Затем сервер указывает терминальному устройству-клиенту характеристики потоков информационной среды, которые он может обеспечить. Как хорошо известно специалистам в данной области техники, во многих реализованных на практике системах потоковой передачи сервер потоковой передачи обеспечивает множество предварительно кодированных потоков информационной среды, представляющих одно и то же ее содержание. Каждый из предварительно кодированных потоков кодируется с использованием различных параметров кодирования. Такая организация позволяет передавать поток информационной среды в множество различных терминальных устройств-клиентов, имеющих различные свойства и/или возможности, и/или через сети, имеющие различные характеристики (например, максимальную доступную скорость передачи в битах).
Согласно преимущественному варианту реализации данного изобретения, как только сервер принял сообщение, указывающее время преддекодерной первоначальной буферизации клиентского терминала и/или минимальный размер его преддекодерного буфера по умолчанию, сервер информирует клиентский терминал посредством оповещения по сети о различных предварительно кодированных потоках информационной среды, которые он может обеспечить. Например, если сервер имеет 4 различно кодированных потока информационной среды, относящихся к запрашиваемому содержанию, а клиент указал как свое время преддекодерной первоначальной буферизации по умолчанию, так и размер своего преддекодерного буфера по умолчанию, то сервер сообщает время преддекодерной первоначальной буферизации и размер преддекодерного буфера, требуемые для обеспечения правильного (например, без пауз) воспроизведения для 4 различных потоков информационной среды. Клиентский терминал затем выбирает для воспроизведения один из 4 предварительно кодированных потоков информационной среды и регулирует свои время преддекодерной первоначальной буферизации и размер преддекодерного буфера согласно соответствующим требованиям выбранного потока информационной среды. Регулировкой в клиентском терминале предпочтительно управляет ЦБУ клиентского терминала. Если сервер указывает только время преддекодерной первоначальной буферизации или размер преддекодерного буфера, требуемые различными кодированными потоками информационной среды, то клиентский терминал выбирает, исходя из этого, поток информационной среды и регулирует соответственно либо свое время преддекодерной первоначальной буферизации, либо размер своего преддекодерного буфера. В этом случае тому параметру, который не был указан, присваивается значение по умолчанию.
Клиентский терминал затем сообщает о своем выборе потока информационной среды серверу так, чтобы могла начаться потоковая загрузка содержания информационной среды. На этом этапе также происходит информирование сервера о предположительно установленном времени преддекодерной первоначальной буферизации и/или размере преддекодерного буфера, ставших достоверными на данный момент в клиентском терминале, и предоставляется возможность серверу правильно верифицировать передаваемый поток информационной среды в соответствии с ранее описанным алгоритмом буферизации, в результате чего не возникает переполнения преддекодерного буфера, и все порции данных информационной среды становятся доступными для воспроизведения в принимающем клиенте в соответствующие запланированные моменты времени.
Давая возможность клиентскому терминалу регулировать его время преддекодерной первоначальной буферизации и/или размер преддекодерного буфера, соответствующий данному изобретению, способ позволяет терминалу принимать и правильно воспроизводить потоки информационной среды, кодированные таким образом, чтобы их нельзя было правильно воспроизвести, используя параметры преддекодерного буфера по умолчанию.
Согласно предпочтительному варианту реализации данного изобретения время преддекодерной первоначальной буферизации и/или размер преддекодерного буфера в клиенте адаптируются в соответствии с ранее описанным процессом в любое время, когда инициируется потоковая передача новой информационной среды. Если во время данного процесса определено, что новый поток информационной среды может быть правильно воспроизведен в клиенте с использованием достоверных в настоящий момент параметров преддекодерной буферизации, никакой регулировки не требуется. Кроме того, клиент может регулировать свои время преддекодерной первоначальной буферизации и/или размер преддекодерного буфера в ситуации, когда сервер сообщает об изменении в требуемых параметрах преддекодерного буфера во время существующего сеанса потоковой передачи. Эта ситуация может возникнуть, например, если различные последовательные части содержания информационной среды, которое должно передаваться, кодируются различным образом, приводя к возникновению необходимости различной преддекодерной буферизации в клиенте, чтобы обеспечить правильное воспроизведение потока.
В итоге настоящее изобретение рассматривает преддекодерный буфер как составную часть клиента потоковой передачи. Клиент потоковой передачи работает, соблюдая алгоритм буферизации, при этом сервер потоковой передачи проверяет, что передаваемый поток данных соответствует определенному алгоритму буферизации. Кроме того, данное изобретение предлагает механизмы определения возможностей буфера клиента потоковой передачи и сообщения о них серверу потоковой передачи. При этом сервер потоковой передачи может получить информацию о возможностях буферизации данного клиента потоковой передачи, и можно позволить скорости передачи кодированных данных/информационной среды изменяться в соответствии с границами параметров преддекодерного буфера принимающей стороны. Необходимо отметить, что верификатор буферизации в сервере может быть использован для гарантирования того, что передаваемый пакетный поток соответствует возможностям буферизации приемника. Это может быть осуществлено, например, путем регулирования времени передачи пакетов от сервера, в результате чего возможности буферизации преддекодерного буфера клиента не превышаются. В ином случае сервер может регулировать способ кодирования и пакетирования данных информационной среды. На практике верификатор буферизации может представлять собой буфер, расположенный в сервере после кодера транспортного кода.
Хотя данное изобретение описано в некоторых отношениях со ссылкой на конкретный вариант реализации, его изменения и модификации очевидны для специалистов в данной области техники. Таким образом, подразумевается, что пункты приведенной ниже формулы изобретения не ограничивают сущности, но должны рассматриваться как охватывающие изменения и модификации, вытекающие из новаторской сущности описанного изобретения.
Класс G06F5/06 для изменения скорости прохождения данных, например устройства для регулирования скорости