Код документа: RU2181929C2
Изобретение относится к устройству и способу хранения одной или нескольких секций транслируемого потока данных, такого как поток битов MPEG, содержащий, кроме секций данных, телевизионные видео- и аудиоданные.
Появление систем передачи цифровых данных, предназначенных в первую очередь для сигналов телевизионного вещания, в особенности, но не исключительно систем спутникового телевидения, открыло возможность использования таких систем для других целей. Одной из них является предоставление пользователю интерактивного режима работы.
Одним из способов его обеспечения является выполнение приложения в приемнике/декодере, с помощью которого принимается телевизионный сигнал. Код этого приложения можно было бы постоянно хранить в приемнике/декодере. Однако это было бы ограничивающим фактором. Предпочтительно приемник/декодер должен быть в состоянии загружать код для требуемого приложения. Таким образом, может быть обеспечена большая гибкость и приложение может быть при необходимости обновлено без какого-либо участия пользователя.
В компьютерных системах, в частности системах, где компьютерная система является частью некоторой большей системы, такой как приемник/декодер для системы цифрового телевидения или радио, размер памяти часто ограничен. Это означает, что память должна быть организована таким образом, чтобы использование пространства памяти различными функциями, запрашиваемыми системой, было минимизировано. Кроме этого, может также потребоваться минимизировать время, необходимое для доступа хотя бы к некоторым частям памяти.
Соответственно, настоящее изобретение относится особенно, но не исключительно к загрузке в память приемника/декодера только тех данных, которые необходимы конкретно для данного приложения.
В первом аспекте данного изобретения предлагается способ сохранения по крайней мере одной из множества секций транслируемого потока
данных, причем упомянутая одна секция имеет хотя бы один признак секции, где упомянутый способ содержит следующие операции:
прием потока данных;
отфильтровывание упомянутой одной
секции упомянутого потока данных в соответствии с хотя бы одним упомянутым признаком секции и
сохранение упомянутой одной секции.
Операция фильтрации позволяет загружать в память приемника/декодера только те секции, которые необходимы для данного приложения.
В предпочтительной реализации операция фильтрации включает следующие операции:
задание
хотя бы одного признака фильтрации, причем каждый признак содержит критерий фильтрации и значение для этого критерия фильтрации;
сравнение одного или каждого признака секции с
соответствующим
признаком фильтрации и
отфильтровывание упомянутой одной секции из упомянутого потока данных, когда каждый признак секции отвечает соответствующему признаку фильтрации.
Во втором аспекте данного изобретения предлагается способ сохранения множества секций транслируемого потока данных с использованием описанного выше способа, причем каждая из секций сохраняется в соответствующем участке памяти.
Предпочтительно способ содержит дополнительно следующие операции:
задание хотя бы одного признака фильтрации данных, причем
каждый признак
фильтрации данных содержит критерий фильтрации и значение для этого критерия фильтрации данных;
сравнение данных, сохраненных в каждой сохраненной секции, с соответствующим
признаком
фильтрации данных и
разрешение замены упомянутой сохраненной секции в упомянутой памяти, когда упомянутые данные, сохраненные в этой сохраненной секции, не отвечают
соответствующему признаку
фильтрации данных.
Предпочтительно способ дополнительно содержит операцию подачи сигнала идентификации секции в приложение, когда упомянутые данные, сохраненные в упомянутой сохраненной секции, отвечают упомянутому соответствующему признаку фильтрации данных.
Предпочтительно сигнал идентификации секции содержит адрес хранения упомянутой одной секции.
В третьем аспекте данного изобретения предлагается способ сохранения группы секций в соответствии с описанным выше способом, при этом упомянутые секции
циклически транслируются в упомянутом
потоке данных, и каждая группа содержит первую секцию и последнюю секцию; упомянутый способ содержит операции:
сохранения первой секции;
последовательной загрузки секций,
транслируемых последовательно непосредственно за упомянутой первой секцией, каждая секция последовательно сохраняется в соответствующем участке памяти, пока не будет
загружена упомянутая последняя
секция или не будет сохранено заранее заданное число секций.
В четвертом аспекте данного изобретения предлагается способ сохранения группы секций в
соответствии с описанным выше
способом, при этом упомянутые секции циклически транслируются в упомянутом потоке данных, и каждая группа содержит первую секцию и последнюю секцию; упомянутый способ
содержит операции:
сохранения первой секции;
последующей загрузки секций, транслируемых последовательно непосредственно за упомянутой первой секцией, каждая секция последовательно
сохраняется в соответствующем
участке памяти, пока либо не будет загружена упомянутая последняя секция, либо не будет сохранено заранее заданное число секций, после чего секции, хранящиеся в участках
памяти, последовательно
перезаписываются загружаемыми впоследствии секциями, пока не будет загружена упомянутая последняя секция; и
сохранения упомянутой последней секции в упомянутой
памяти.
В пятом
аспекте данного изобретения предлагается способ сохранения группы секций, циклически транслируемых в упомянутом потоке данных, и упомянутая группа содержит первую
секцию и последнюю секцию; упомянутый
способ содержит операции:
приема потока данных;
загрузки первой секции и сохранения ее в памяти;
последовательной загрузки секций,
транслируемых последовательно
непосредственно за упомянутой первой секцией, каждая секция последовательно сохраняется в соответствующем участке памяти, пока не будет загружена упомянутая последняя
секция или не будет сохранено
заранее заданное число секций в упомянутой памяти.
В шестом аспекте данного изобретения предлагается способ сохранения группы секций, циклически
транслируемых в упомянутом потоке
данных, причем упомянутая группа содержит первую секцию и последнюю секцию, упомянутый способ содержит операции:
приема потока данных;
загрузки
первой секции;
последовательной загрузки секций, транслируемых последовательно непосредственно за упомянутой первой секцией, каждая секция последовательно сохраняется в соответствующем
участке памяти, пока либо не
будет загружена упомянутая последняя секция, либо не будет сохранено заранее заданное число секций, после чего секции, хранящиеся в участках памяти, последовательно
перезаписываются загружаемыми
впоследствии секциями, пока не будет загружена упомянутая последняя секция; и
сохранения упомянутой последней секции в упомянутой памяти.
Благодаря описанным выше аспектам данного изобретения с третьего по шестой в памяти приемника/декодера сохраняются только необходимые секции из группы секций. Например, при просмотре списка, скажем, трех телевизионных программ, запланированных для трансляции в конкретное время, при помощи третьего и пятого аспектов только первые четыре секции группы загружаются из потока данных, позволяя конечному пользователю быстро просматривать список сверху вниз, начиная с первой программы, указанной в это время. При помощи четвертого и шестого аспектов только последние четыре секции группы загружаются из потока данных, позволяя конечному пользователю быстро просматривать список снизу вверх, начиная с последней программы, указанной в это время, и позволяя минимизировать объем памяти приемника/декодера.
В седьмом аспекте данного изобретения предлагается устройство для сохранения по крайней мере одной из множества секций транслируемого потока данных, причем
упомянутая одна секция имеет хотя бы один
признак секции, содержащее:
средство приема потока данных;
средство отфильтровывания упомянутой одной секции из упомянутого потока данных в
соответствии с хотя бы одним упомянутым
признаком секции и
средство хранения упомянутой одной секции.
Предпочтительно упомянутое средство отфильтровывания содержит:
средство задания хотя бы одного признака
фильтрации, причем каждый признак содержит критерий фильтрации и значение для этого критерия фильтрации;
средство сравнения каждого признака секции с
соответствующим признаком фильтрации и
средство отфильтровывания упомянутой одной секции из упомянутого потока данных, когда каждый признак секции отвечает соответствующему признаку
фильтрации.
В восьмом аспекте данного изобретения предлагается устройство, как описано выше, для загрузки множества таких секций и упомянутое средство хранения содержит множество участков памяти для сохранения соответствующих секций.
Предпочтительно устройство содержит дополнительно:
средство задания хотя бы одного признака фильтрации данных, причем
каждый признак фильтрации данных содержит
критерий фильтрации и значение для этого критерия фильтрации данных;
средство сравнения каждого признака секции с соответствующим признаком
фильтрации данных и
средство разрешения
замены упомянутой сохраненной секции в упомянутой памяти, когда упомянутые данные, находящиеся в этой сохраненной секции, не отвечают соответствующему
признаку фильтрации данных.
Устройство может также содержать:
средство подачи сигнала идентификации секции в приложение, когда упомянутые данные в упомянутой сохраненной
секции отвечают упомянутому соответствующему
признаку фильтрации данных.
Описанные выше способ или устройство могут быть применены с потоком данных в форме потока битов MPEG, который содержит, кроме упомянутых секций, телевизионные видео- и аудиоданные.
Предпочтительные характеристики предлагаемого изобретения будут описаны ниже, исключительно в виде примера, со
ссылкой на прилагаемые фигуры, на
которых:
на фиг. 1 представлена общая архитектура системы цифрового телевидения согласно предпочтительной реализации настоящего изобретения;
на
фиг.2 показана архитектура
интерактивной системы в системе цифрового телевидения;
фиг. 3 иллюстрирует расположение файлов в загружаемом в приемник/декодер модуле;
на фиг.4 показана
структура секции;
на фиг. 5 показано расположение томов памяти в памяти интерактивного приемника/декодера;
на фиг.6 схематически показаны интерфейсы приемника/декодера;
на
фиг. 7 показана архитектура
программного обеспечения приемника/декодера;
на фиг. 8 показана архитектура системы приемника для загрузки секций из потока данных MPEG;
на фиг. 9
показана структура байтов в секции,
используемая аппаратным префильтром;
на фиг. 10 приведен пример массива маски аппаратного фильтра и массива значений аппаратного фильтра;
на фиг.
11 показано расположение байтов в
секции, которая используется программным фильтром;
на фиг.12 приведен пример загрузки таблицы;
на фиг.13 приведен пример расположения секций в
группе секций;
на фиг.14
приведен пример загрузки группы секций в режиме следования;
на фиг.15 приведен пример загрузки группы секций в режиме предшествования;
на фиг.16
приведено размещение полей в
дескрипторе группы секций;
на фиг.17 приведено размещение полей в дескрипторе таблицы секций.
Общая структура системы вещания и приема цифрового телевидения 1000 согласно данному изобретению приведена на фиг.1. Изобретение включает самую обычную систему цифрового телевидения 2000, которая использует известную систему сжатия MPEG-2 для передачи сжатых цифровых сигналов. Более подробно, устройство сжатия MPEG-2 2002 в центре вещания принимает поток цифровых сигналов (обычно поток видеосигналов). Устройство сжатия 2002 подключается к мультиплексору и скремблеру 2004 с помощью канала 2006. Мультиплексор 2004 принимает множество входных сигналов, собирает один или несколько несущих потоков и передает сжатые цифровые сигналы в передатчик 2008 центра вещания через канал 2010, тип которого, естественно, может быть различным, включая каналы телекоммуникаций. Передатчик 2008 передает электромагнитные сигналы через канал "земля-спутник" 2012 на спутниковый ретранслятор 2014, где выполняется их обработка электронными средствами и вещание через виртуальный канал "спутник-земля" 2016 на наземный приемник 2018, обычно имеющий форму тарелки, принадлежащий конечному пользователю или арендуемый им. Сигналы, принимаемые приемником 2018, передаются в совмещенный приемник/декодер 2020, принадлежащий конечному пользователю или арендуемый им, и подключенный к телевизору 2022 конечного пользователя. Приемник/декодер 2020 декодирует сжатый MPEG-2 сигнал в телевизионный сигнал для телевизора 2022.
Система условного доступа 3000 подключается к мультиплексору 2004 и приемнику/декодеру 2020 и располагается частично в центре вещания и частично в декодере. Она позволяет конечному пользователю осуществлять доступ к вещательным передачам цифрового телевидения от одного или нескольких операторов вещания. В приемник/декодер 2020 может устанавливаться смарт-карта, которая может декодировать сообщения, относящиеся к коммерческим предложениям (одна или несколько телевизионных программ, продаваемых оператором вещания). С использованием декодера и смарт-карты пользователь может покупать передачи в режиме подписки или оплаты за просмотр (PPV).
Интерактивная система 4000, также подключенная к мультиплексору 2004 и приемнику/декодеру 2020 и также располагающаяся частично в центре вещания и частично в декодере, позволяет конечному пользователю взаимодействовать с различными приложениями через модемный обратный канал 4002.
На фиг. 2 приведена общая структура телевизионной интерактивной системы 4000 системы цифрового телевидения 1000 в соответствии с настоящим изобретением.
Например, интерактивная система 4000 позволяет конечному пользователю покупать товары по экранным каталогам, просматривать локальные новости и карты погоды по запросу и играть в игры, используя свой телевизор.
Интерактивная система 4000 содержит четыре основных элемента:
- средство разработки 4004 в центре вещания или в другом месте, позволяющее оператору вещания создавать, разрабатывать,
отлаживать и тестировать приложения;
- сервер приложений и данных 4006
в центре вещания, соединенный со средством разработки 4004, для предоставления оператору вещания возможности
подготавливать, удостоверять подлинность и форматировать приложения и данные для
отправления в мультиплексор и скремблер 2004 для вставки его в несущий поток MPEG-2 (обычно в его приватную секцию),
подлежащий вещанию для конечного пользователя;
- виртуальную машину,
содержащую подсистему реального времени (RTE-Real Time Engine) 4008, которая представляет собой исполняемый код,
инсталлированный в приемнике/декодере 2020, принадлежащем конечному пользователю или
арендуемом им, для обеспечения конечному пользователю возможности принимать, удостоверять подлинность,
разворачивать и загружать приложения в рабочую память декодера 2020 для выполнения; подсистема
4008 также выполняет резидентные приложения общего назначения; подсистема 4008 не зависит от аппаратного
обеспечения и операционной системы; и
- обратный модемный канал 4002 между
приемником/декодером 2020 и сервером приложений и данных 4006 для подачи сигналов, указывающих серверу 4006
вставлять данные и приложения в несущий поток MPEG-2 по требованию конечного
пользователя.
Телевизионная интерактивная система работает с использованием т.н. "приложений", которые управляют функционированием приемника/декодера и различными устройствами, входящими в его состав. Приложения представлены в подсистеме 4008 как т.н. "файлы ресурсов". "Модуль" - это набор файлов ресурсов и данных. Для формирования одного приложения могут использоваться несколько модулей. "Том памяти" приемника/декодера - это пространство для хранения модулей. Для загрузки модулей используют "интерфейсы". Модули могут загружаться в приемник/декодер 2020 из несущего потока MPEG-2.
Понятия, упомянутые в предыдущем абзаце, ниже будут описаны подробнее.
Применительно к данному описанию приложение - это фрагмент компьютерного кода для управления высокоуровневыми операциями приемника/декодера 2020. Например, когда конечный пользователь позиционирует фокус устройства дистанционного управления 2026 (подробно показанный на фиг.4) на объекте кнопки, видимом на экране телевизора 2022, и нажимает клавишу подтверждения, выполняется последовательность инструкций, соответствующая этой кнопке.
Интерактивное приложение обеспечивает меню и исполняет команды по соответствующему запросу конечного пользователя и предоставляет данные в соответствии с назначением данного приложения. Приложения могут быть либо резидентными приложениями, т. е. хранящимися в ПЗУ (либо в FLASH памяти, либо другой энергонезависимой памяти) приемника/декодера 2020, либо передающимися путем вещания и загружаемыми в ОЗУ (или FLASH) декодера 2020.
Примерами приложений являются:
- Приложение инициализации.
Приемник/декодер 2020 снабжен резидентным приложением инициализации, которое является адаптируемым набором
модулей (более подробно этот термин поясняется ниже) и позволяет приемнику/декодеру 2020
быть непосредственно готовым к работе в среде MPEG-2. Это приложение предоставляет базовые функции, которые
могут быть при необходимости модифицированы оператором вещания. Оно предоставляет также
интерфейс между резидентными приложениями и загружаемыми приложениями.
- Приложение запуска. Приложение запуска позволяет выполняться в приемнике/декодере 2020 любому приложению, либо загружаемому, либо резидентному. Это приложение работает как программа начальной загрузки, выполняемая при поступлении услуги для того, чтобы запустить приложение. Приложение запуска загружается в оперативную память и, следовательно, может быть легко обновлено. Оно может быть сконфигурировано таким образом, что интерактивные приложения, доступные по разным каналам, могут быть выбраны и выполнены либо сразу же после загрузки, либо после предварительной загрузки. В случае предварительной загрузки приложение загружается в память 2024 и активируется приложением запуска по необходимости.
- Руководство по программам. Руководство по программам - это интерактивное приложение, которое предоставляет полную информацию по программам. Например, оно может содержать информацию, скажем, о программе телевизионных передач на неделю, предоставляемых каждым каналом из пакета ("букета") каналов цифрового телевидения. Нажатием на клавишу устройства дистанционного управления 2026 конечный пользователь получает доступ к добавочному экрану, который с перекрытием накладывается на передачу, которая демонстрируется в данный момент на экране телевизора 2022. Этот добавочный экран представляет собой средство просмотра, предоставляющее информацию о текущих и последующих передачах каждого канала букета цифрового ТВ. С помощью нажатия на другую клавишу устройства дистанционного управления 2026 конечный пользователь получает доступ к приложению, которое выдает на экран информацию о программе передач на неделю. Конечный пользователь может также производить поиск и сортировку программ по простым и индивидуальным критериям. Конечный пользователь может также получать доступ непосредственно к выбранному каналу.
- Приложение PPV (PPV-Pay Per View, оплата производится за каждую просмотренную передачу). Приложение PPV - это интерактивная услуга, имеющаяся на каждом PPV канале букета цифрового ТВ с системой условного доступа 3000. Конечный пользователь может получать доступ к указанному приложению с использованием ТВ меню или броузера каналов. Кроме того, это приложение запускается автоматически, как только на PPV канале обнаруживается PPV передача. Затем конечный пользователь может купить текущую программу либо с помощью его дочерней смарт-карты 3020, либо с помощью сервера связи 3022 (с использованием модема, телефона и DTMF кодов (кодов тонового набора), MINITEL или другим подобным образом). Это приложение может быть резидентным в ПЗУ приемника/декодера 2020 или загружаться в оперативную память приемника/декодера 2020.
- Приложение загрузки в ПК. Конечный пользователь может по запросу загружать компьютерное программное обеспечение с использованием приложения загрузки в ПК.
- Приложение просмотра журнала. Приложение просмотра журнала обеспечивает периодическое вещание видео изображений с обеспечением пользователю возможности навигации с помощью кнопок на экране.
- Приложение телевикторины. Приложение телевикторины предпочтительно синхронизируется с вещаемой программой телевикторины. Например, на экран телевизора 2022 выдаются несколько возможных ответов и пользователь может выбрать ответ с помощью устройства дистанционного управления 2026. Приложение телевикторины может информировать пользователя, правилен его ответ или нет, и может подсчитывать набранные пользователем очки.
- Приложение дистанционных покупок. В одном из примеров приложения дистанционных покупок предложения товаров к продаже транслируются на приемник/декодер 2020 и затем выдается на экран телевизора 2022. С помощью устройства дистанционного управления пользователь может выбрать для покупки какой-либо конкретный товар. Заказ на этот товар передается через обратный модемный канал 4002 в сервер приложений и данных 4006 или в отдельную систему продаж, номер телефона которой был загружен в приемник/декодер, возможно с поручением дебетовать счет кредитной карты, которая установлена в одном из устройств считывания карты 4036 приемника/декодера 2020.
- Приложение дистанционных банковских услуг. В одном из примеров приложения дистанционных банковских услуг пользователь устанавливает банковскую карту в одно из устройств считывания карты 4036 приемника/декодера 2020. Приемник/декодер 2020 звонит банку пользователя с использованием номера телефона, записанного в банковской карте пользователя или хранящегося в приемнике/декодере, и затем приложение предоставляет набор средств, которые могут быть выбраны с помощью устройства дистанционного управления 2026, например, для загрузки по телефонной линии отчета о состоянии счета, перевода средств с одного счета на другой, запрашивания чековой книжки и т.д.
- Приложение Интернет-броузера. В одном примере приложения Интернет-броузера инструкции от пользователя, такие как запрос просмотра веб-страницы, имеющей конкретный URL, вводятся с использованием устройства дистанционного управления 2026, и они пересылаются по обратному модемному каналу 4002 в сервер приложений и данных 4006. Соответствующая веб-страница затем включается в транслируемые из центра вещания данные, принимаемые приемником/декодером 2020 через канал "земля-спутник" 2012, ретранслятор 2014 и канал "спутник-земля" 2016, и затем выдается на экран телевизора 2022.
Приложения сохраняются в ячейки памяти приемника/декодера 2020 и представляются в виде файлов ресурсов. Под файлами ресурсов понимают файлы библиотек описаний графических объектов, файлы библиотек блоков переменных, файлы последовательностей команд, файлы приложений и файлы данных.
Файлы библиотек описаний графических объектов описывают экраны, человеко-машинный интерфейс приложения. Файлы библиотек блоков переменных описывают структуры данных, которыми оперирует приложение. Файлы последовательностей команд описывают функциональные действия, выполняемые приложением. Файлы приложений предоставляют точки входа для приложений.
Приложения, составляемые таким способом, могут использовать файлы данных, такие как файлы библиотек пиктограмм, файлы изображений, файлы шрифтов, файлы таблиц цветов и файлы текстов ASCII. Интерактивное приложение может также получать оперативные данные, задействуя входы и/или выходы.
Подсистема 4008 загружает в свою память только те файлы ресурсов, которые необходимы ей в данное время. Эти файлы ресурсов считываются из файлов библиотек описаний графических объектов, файлов последовательностей команд и файлов приложений; файлы библиотек блоков переменных записываются в память после вызова процедуры загрузки модулей и остаются там до тех пор, пока не будет произведен специальный вызов процедуры выгрузки модулей.
Со ссылкой на фиг.3, модуль 4010, как например модуль дистанционных
покупок, представляет собой набор файлов ресурсов и данных, содержащий следующее:
один файл приложения 4012;
неопределенное количество файлов библиотек описаний графических объектов
4014;
неопределенное количество файлов библиотек блоков переменных 4016;
неопределенное количество файлов последовательностей команд 4018; и
если необходимо, файлы данных
4020, такие как файлы библиотек пиктограмм, файлы изображений, файлы шрифтов, файлы таблиц цветов и файлы текстов ASCII.
В потоке данных MPEG каждый модуль образует группу MPEG таблиц. Каждая MPEG таблица может быть отформатирована в виде некоторого числа секций. В потоке данных MPEG каждая секция имеет размер до 4 кбайт. Для данных, передаваемых, например, через последовательный или параллельный порт, модули точно также разделяются на таблицы и секции, и размер секции варьируется в зависимости от среды передачи.
Модули передаются в потоке данных MPEG в форме пакетов данных обычно размером 188 байт, в потоках данных соответствующего типа, например потоках видеоданных, потоках аудиоданных и потоках данных телетекста. Каждому пакету предшествует идентификатор пакета (PID) из 13 битов, по одному PID для каждого пакета, передаваемого в потоке данных MPEG. Таблица распределения программы (РМТ - Programme Map File) содержит список различных потоков данных и определяет содержимое каждого потока данных согласно соответствующему PID. Благодаря PID устройство может узнавать о наличии приложений в потоке данных, указанный PID идентифицируется с использованием РМТ.
Как показано на фиг. 4, каждая секция 4300 обычно содержит следующие поля:
идентификатор таблицы (TID) 4302, обычно размером 1 байт,
расположенный в
начале секции 4300;
идентификатор размера секции 4304, обычно размером 2 байта;
номер секции (SN) 4306 (например, 1) для данной секции в таблице; SN обычно имеет
размер 1 байт;
общее число секций (LSN) 4308 (например, 3) в таблице; LSN обычно имеет размер 1 байт;
расширение TID 4310, обычно имеющее размер 2 байта;
приватные данные
4312 и
CRC
4314 секции 4300. Назначением CRC 4314 является проверка всех байтов секции 4300; если CRC 4314 соответствует всем предшествующим данным, то секция принимается
приемником/декодером 2020. Подобным
образом поле приватных данных 4312 может содержать подпись MD5 в конце поля, вычисленную на основе всего предшествующего содержимого этого поля 4312.
Что касается данных, принимаемых через последовательный или параллельный интерфейсы, поля секций могут быть несколько иными; обычно секции, принимаемые через любой из упомянутых выше интерфейсов, содержат уменьшенное количество данных в полях от 4302 до 4310 и не содержат CRC 4314.
Для каждого модуля/таблицы все секции, из которых состоит эта таблица, имеют одинаковый TID 4302 и одинаковое расширение TID 4310. Для каждого приложения все таблицы, из которых состоит это приложение, имеют одинаковый TID, но разные соответствующие расширения TID.
Для получения модуля 4010, например, из потока битов MPEG требуется PID как модуля, так и каталога модулей. В этом каталоге просто перечислены модули 4010, которые могут быть загружены из несущего сигнала. Как только этот каталог загружен, приложение получает возможность загружать один или несколько модулей 4010.
Идея использования модулей 4010 вместе с идеей загрузки небольших фрагментов кода обеспечивают легкость наращивания приложений. Они могут загружаться в постоянную флэш-память декодера 2020 как резидентное программное обеспечение или вещаться с целью загрузки в оперативную память декодера 2020 только в случае возникновения потребности в них у пользователя.
Том памяти - это участок памяти для модулей 4010. Такие участки памяти располагаются в памяти 2024 приемника/декодера 2020. Как показано на фиг.5, память 2024 обычно разделяется на том оперативной памяти 4022, том флэш-памяти 4024 и том ПЗУ 4026. Память может быть дополнительно разделена на тома памяти, ассоциированные с различными интерфейсами, через которые модули загружаются в приемник/декодер 2020, например том MPEG для сохранения модулей, загружаемых из потока битов MPEG, и последовательный том для сохранения модулей, принимаемых через последовательный интерфейс.
Том оперативной памяти, в свою очередь, разделяется на зону, предназначенную для встроенных программ (firmware), рабочее пространство для подсистемы 4008 и буферов. Доступ к флэш-памяти и другой энергонезависимой памяти могут иметь как приложения, так и сама подсистема, с помощью менеджера устройств.
Каждый том содержит список модулей 4010, каждый модуль 4010 содержит список файлов 4012, 4014, 4016, 4018, 4020. Могут существовать два файла с одним именем, но располагающиеся в разных модулях. Например, одна версия приложения обычно хранится в томе ПЗУ 4026, и с целью замены ее последующие версии загружаются в том флэш-памяти 4024. Содержимое файлов может быть сжато в формате LZW, однако так как декомпрессия файлов занимает определенное время, файлы могут приниматься в несжатом формате.
Для загрузки данных используются физические интерфейсы приемника/декодера 2020. Как показано на фиг.6, приемник/декодер 2020 содержит, например, шесть средств загрузки: тюнер потока MPEG 4028, последовательный интерфейс 4030, параллельный интерфейс 4032, модем 4034 и два устройства считывания карты 4036.
При наличии множества источников приложений и множества изготовителей приемников/декодеров 2020 важно, чтобы приложение работало одинаково в каждом приемнике/декодере и каждый приемник/декодер выполнял любое приложение одинаково и правильно. Как показано на фиг.7, приемник/декодер 2020 содержит подсистему реального времени 4008, работающую под управлением микропроцессора, и общий программный интерфейс приложений 4054. Они устанавливаются в каждом приемнике/декодере 2020, так что все приемники/декодеры 2020 с точки зрения приложения одинаковы.
На фиг. 7 показана архитектура приемника/декодера 2020 для выполнения приложений 4056. Виртуальная машина 4007 выполняет приложения 4056, к которым относятся приложения 4056', связанные непосредственно с виртуальной машиной, или приложения 4056", загруженные в приемник/декодер 2020, например, из потока данных MPEG. Подсистема реального времени 4008 также выдает на экран графику и текст, вызывает устройства для реализации каких-либо действий, принимает "события" и использует функции библиотеки 4058 для специальных вычислений.
Как показано на фиг.7, с точки зрения приложения функция декодера 2000 представляется в виде устройства 4060. Могут быть также такие функции приемника/декодера 2000, которые не могут быть "видны" приложениям.
Устройство 4060 содержит блок логического устройства, который может соответствовать компоненту 4062 или физическому интерфейсу 4064 аппаратных средств 4066. Такие устройства относят к "устройствам низкого уровня" 4068. Выход такого устройства 4068 может быть подключен к по меньшей мере одному драйверу устройства 4070 для преобразования логических сигналов, выдаваемых устройством 4068, в сигналы, необходимые, например, для управления аппаратным интерфейсом 4064. В альтернативном варианте, устройство 4068 может само управлять компонентом или интерфейсом приемника/декодера 2020, то есть выход устройства может быть подключен непосредственно к аппаратным средствам 4066.
Примеры устройств низкого уровня 4068 описываются ниже.
Устройство LCARD позволяет программе обмениваться информацией со смарт-картой, находящейся в одном устройстве считывания карты 4036, и устройство RCARD позволяет программе обмениваться информацией со смарт-картой, находящейся в другом устройстве считывания карты 4036. Например, эти устройства позволяют программе считывать состояние карты, считывать историю карты и посылать карте входные сообщения. Упомянутые устройства также информируют программу об установке карты в устройство считывания, об извлечении карты из устройства считывания и переустановке карты, если не запрашивалось программой. Устройства LCARD и RCARD соответствуют стандарту, используемому для выполнения карты. Обычно используется стандарт IS07816.
Устройство SCTV позволяет программе проверять и конфигурировать скарт-разъем к телевизору 2022. Например, это устройство позволяет программе запрашивать информацию о звуковой характеристике скарт-разъема, выполнять подавление звука ("MUTE") и динамически программировать уровни цветов (RGB).
Устройство TUNER (тюнер) позволяет программе использовать тюнер 4028. Например, это устройство позволяет программе выполнять сканирование либо с минимальной частоты, либо с текущей частоты тюнера, считывать параметры тюнера и программировать тюнер.
Устройство SERIAL (последовательный порт) позволяет программе обмениваться информацией с оборудованием через последовательный канал, и устройство PARALLEL (параллельный порт) позволяет программе обмениваться информацией с оборудованием через параллельный канал. Например, эти устройства позволяют программе посылать сообщение через соответствующий канал и информировать программу о приеме сообщения через этот канал.
Устройство MODEM (модем) позволяет приемнику/декодеру обмениваться информацией с сервером данных через встроенный полудуплексный модем, поддерживающий V32. Устройство MODEM запрашивает набор номера, отсылку сообщения серверу данных и отключение модема, а также сигнализирует о приеме сообщения, обнаружении ошибок и потере или обнаружении несущего сигнала.
Удаленными устройствами, работающими дистанционно, могут быть любые локальные устройства, при условии что указан порт и протокол.
В дополнение к "устройствам низкого уровня" приемник/декодер 2020 может также содержать "устройства высокого уровня" 4072, которые управляют работой приемника/декодера 2020.
Что касается секций, загружаемых из потока данных MPEG, устройство 4072, называемое "устройство MLOAD", позволяет приложению загружать секцию MPEG, полную MPEG таблицу или группу MPEG секций, соответствующие критериям аппаратной и программной фильтрации.
Как показано на фиг.8, электромагнитный сигнал принимается приемником 2018 и передается в MPEG тюнер 4028. Тюнер обычно сканирует диапазон частот, останавливаясь только тогда, когда обнаруживает несущую частоту в этом диапазоне. Обнаруженные таким образом сигналы передаются в демодулятор 4500, который демодулирует сигналы и передает их в демультиплексор 4502. Демультиплексор 4502 соединен с микросхемой MPEG 4504, которая, в свою очередь, соединена с телевизором 2022. Демультиплексор 4502 соединен также с аппаратным фильтром 4506, который обычно имеет до 32 выходов, подключенных к тому оперативной памяти 4022 приемника/декодера 2020.
Электромагнитные сигналы, принимаемые демультиплексором 4502, содержат несколько потоков пакетов данных, в число которых для обеспечения предоставления услуги оператором вещания обычно входят поток видеопакетов, поток аудиопакетов, поток пакетов телетекста и поток пакетов субтитров. Эти пакеты данных демультиплексируются демультиплексором 4502 и передаются в микросхему MPEG 4504 для декодирования в сигналы для телевизора 2022.
Пакеты данных, относящихся к приложениям, передаются в аппаратный фильтр 4506. Как показано на фиг. 9, аппаратный фильтр, или префильтр, 4506 использует один или несколько из, как правило, 8 байтов секции 4508 потока данных, обычно байта по смещению 0 (4510) и байтов по смещениям с 3 по 9 (4512), для отфильтровывания секций из потока данных. Эти байты содержат TID 4302, номер секции 4306, номер последней секции 4308 и расширение TID 4310 секции MPEG 4508.
Для определения характеристик аппаратного префильтра приложение указывает, какие биты секции 4508 должны приниматься во внимание и ожидаемое значение каждого выбранного бита. Соответственно, аппаратный префильтр 4506 содержит массив фильтрующей маски 4514 и массив фильтрующих значений 4516 соответственно, пример каждого из массивов приведен на фиг.10. На фиг.10 биты выбираются 4518, 4520 и 4522 с использованием фильтрующей маски 4514, и значения каждого из этих битов, 0, 1 и 0 соответственно, выбираются с использованием фильтрующих значений 4516. При таких критериях фильтрации секция MPEG 4524 будет подана в буферы оперативной памяти 4022 приемника/декодера 2020, в то время как секция MPEG 4526 не будет подана в буферы.
Аппаратный префильтр 4506 реализован посредством микросхемы демультиплексора, не потребляя вычислительных ресурсов главного процессора.
Микропроцессор может использовать оперативную память 4022 приемника/декодера 2020, в которой хранятся секции, в качестве программного фильтра 4526. С помощью программного фильтра 4526 можно выбирать, какие из секций, загруженных в буферы тома оперативной памяти 4022, будут переданы в приложение.
Принципы программной фильтрации сходны с принципами аппаратной фильтрации. Программный фильтр 4526 использует, как правило, 8 последовательных байтов 4528 в данных MPEG секции 4508. Как показано на фиг.11, позиция первого байта 4530 из этих восьми последовательных байтов определяется с помощью смещения 4532 от первого байта 4510 в секции 4508.
Если после загрузки через аппаратный фильтр данные, находящиеся в MPEG секции, не соответствуют критериям программной фильтрации, буфер, в котором хранится MPEG секция, может использоваться для загрузки другой секции MPEG.
Для
загрузки секции MPEG из потока данных MPEG устройство MLOAD обычно
снабжают следующей информацией:
PID в потоке данных, в котором должна быть обнаружена данная MPEG секция;
массив
информации дескремблирования, содержащий ряд ЕСМ для
дескремблирования идентификаторов PID;
ссылка оператора, которая обнаруживает конкретное ЕСМ, которое должно использоваться для
дескремблирования данного PID;
массив значений
аппаратного фильтра, подлежащий применению;
массив маски аппаратного фильтра, подлежащий применению;
значение смещения
программного фильтра, подлежащее применению;
массив
значений программного фильтра, подлежащий применению;
максимальный размер секции (до 4096 байтов) и
функция истечения
времени ожидания, определяющая, как долго устройство должно
ожидать загрузки секции, группы секций или таблицы.
Когда указано, что максимальный размер секции составляет 512 байтов, размер секции не может превышать 512 байтов.
Секция загружается вся целиком в буфер тома оперативной памяти 4022, выделяемый устройством. После того как секция загружена и если она соответствует критериям программной фильтрации, устройство должно освободить тракт демультиплексирования и информировать приложение с помощью "события", которое содержит отчет о выполнении и адрес буфера, содержащего секцию. После загрузки секция идентифицируется адресом буфера, в котором она хранится.
Когда необходимо загрузить таблицу, в устройство передается также TID 4302. Каждая секция таблицы загружается в соответствующий буфер, выделенный для нее целиком. При этом не требуется, чтобы таблицы загружались путем размещения секций непрерывно и по порядку. По мере загрузки каждой секции таблицы устройство может информировать приложение о том, что эта секция таблицы загружена. В альтернативном варианте либо в дополнение устройство может информировать приложение с помощью события о том, что вся таблица успешно загружена в выделенные буферы.
Как показано на фиг. 12, таблица обычно загружается следующим образом (описание программной фильтрации
опущено исключительно из соображений
простоты изложения):
шаг 1: задать массив маски аппаратного фильтра 4534 и массив значений аппаратного фильтра 4536;
шаг 2: загрузить первую
секцию 4538, соответствующую аппаратному
(и программному) фильтру;
шаг 3: прочесть значение LSN 4540 секции 4538 для определения количества секций, подлежащих загрузке (=LSN+1), и изменить
массив маски аппаратного фильтра 4534 и
массив значений аппаратного фильтра 4536 в соответствии со значением LSN 4540;
шаги с 4 по 6: загрузить оставшиеся секции 4542, 4544 и 4546 в
соответствии со значениями TID и LSN и послать
событие в приложение.
Загрузка таблицы завершена только тогда, когда событие, сообщающее об успешной загрузке, вводится в очередь подсистемы реального времени 4008. Перед тем как это событие помещается в очередь подсистемы, возможно успешное прерывание загрузки таблицы.
После того как таблица была загружена, она идентифицируется именем, присваиваемым ей приложением при запрашивании загрузки таблицы.
Доступ к информации о том, каким образом таблица хранится в памяти приемника/декодера 2020, обеспечивается путем вызова, который возвращает дескриптор таблицы. Пример такого дескриптора приведен на фиг. 17. Дескриптор 4700 содержит поле 4702, содержащее общее число секций (LSN+1) в таблице, и список 4704 буферов, содержащих секции 4538, 4542, 4544 и 4546, которые образуют таблицу, начиная с секции 4544, имеющей SN "0", затем идет секция 4546 с SN "1" и т.д. до секции 4542, имеющей SN, соответствующий LSN.
Группа секций включает все секции, которые соответствуют критериям аппаратной и программной фильтрации. В потоке данных MPEG секции появляются циклически.
Как показано на фиг.13, группа 4548 ограничена двумя секциями; первой секцией (SDG) 4550 и последней секцией (SFG) 4552, каждая из которых удовлетворяет соответствующим критериям фильтрации, а остальные секции (SG) 4554 располагаются между ними.
Загрузка секций в группе может производиться в одном из двух различных режимов загрузки.
В "режиме следования" загружается заранее заданное число секций 4554, которые следуют непосредственно за SDG 4550. Для каждого типа секций (SDG, SG, SFG) приложение указывает TID, аппаратный фильтр, программный фильтр и максимальную длину секции.
Как показано на фиг. 14, предпочтительно устройство сначала применяет критерии аппаратной и программной фильтрации, чтобы позволить загрузку и сохранение только SDG 4550. Это позволяет избежать загрузки избыточных SG 4554 в буферы тома оперативной памяти 4022 приемника/декодера 2020 перед загрузкой SDG 4550. После обнаружения SDG 4550 сохраняется в участке памяти или буфере 4556. Затем устройство применяет критерии аппаратной и программной фильтрации, чтобы разрешить загрузку желаемых SG и SFG из группы секций MPEG данных.
В примере, приведенном на фиг.14, из потока данных MPEG необходимо загрузить три SG 4554 из группы MPEG секций, содержащей одну SDG, семь SG и одну SFG. После сохранения SDG 4550 в буфер 4556 первая SG 4558 из группы секций MPEG, подлежащих передаче после SDG 4550, сохраняется в буфере 4560. Точно так же вторая SG 4562 из группы секций MPEG, подлежащих передаче после SDG 4550, сохраняется в буфере 4564 и третья SG 4566 из группы секций MPEG, подлежащих передаче после SDG 4550, сохраняется в буфере 4568.
Сохранение SG продолжается до тех пор, пока либо не будет сохранено требуемое число секций 4554, либо не будет загружена SFG 4552. Если SFG 4552 загружается, то она не сохраняется в участке памяти.
По мере загрузки каждой секции из группы устройство может информировать приложение с помощью события, что данная секция из группы загружена. В альтернативном варианте либо в дополнение устройство может информировать приложение только или о завершении сохранения секций MPEG, или о загрузке SFG 4552 путем отсылки события в приложение.
В "режиме предшествования" в участках памяти сохраняется заранее заданное количество секций, которые непосредственно предшествуют SFG. Для каждого типа секций (SDG, SG, SFG) приложение указывает PID, TID, аппаратный фильтр, программный фильтр и максимальную длину секции.
При загрузке в данном режиме для сохранения секций MPEG требуется использование кольцевого буфера.
Как показано на фиг. 15, предпочтительно устройство сначала применяет критерии аппаратной и программной фильтрации, чтобы позволить загрузку и сохранение только SDG 4570. Это позволяет избежать загрузки избыточных SG 4554 в буферы тома оперативной памяти 4022 приемника/декодера 2020 перед загрузкой SDG 4570. При обнаружении SDG 4550 не сохраняется. Затем устройство применяет критерии аппаратной и программной фильтрации, чтобы разрешить загрузку желаемых SG и SFG из группы секций MPEG данных.
В примере, приведенном на фиг.15, из потока данных MPEG необходимо загрузить три SG 4544 из группы MPEG секций, содержащей одну SDG, семь SG и одну SFG. После загрузки SDG 4570 первая SG 4572 из группы секций MPEG, подлежащих передаче после SDG 4570, сохраняется в буфере 4574. Точно так же вторая SG 4576 из группы секций MPEG, подлежащих передаче после SDG 4550, сохраняется в буфере 4578, и третья SG 4580 из группы секций MPEG, подлежащих передаче после SDG 4570, сохраняется в буфере 4582.
Четвертая SG 4584 из группы секций MPEG, подлежащих передаче после SDG 4550, сохраняется в буфере 4574, то есть в буфере, в котором была сохранена первая SG 4572. Точно так же каждая из последовательно передаваемых SG 4586, 4588 и 4590 сохраняется в буферах 4578, 4582 и 4574 соответственно.
Сохранение SG таким циклическим способом продолжается до тех пор, пока устройством не будет обнаружена SFG 4592. Так происходит даже в том случае, когда желаемое число SG еще не было загружено до обнаружения SFG. При обнаружении SFG 4592 сохраняется в буфере и в приложение отсылается событие, указывающее на успешную загрузку группы.
Доступ к информации о том, каким образом группа хранится в оперативной памяти 4022 приемника/декодера 2020, обеспечивается путем специального вызова, который возвращает дескриптор группы. Пример такого дескриптора приведен на фиг. 16. Дескриптор 4600 содержит поле 4602, содержащее общее число секций в группе, и список 4604 буферов, содержащих SDG либо SFG (в зависимости от режима загрузки), и секции SG, которые образуют группу, в порядке загрузки.
После того как группа была загружена, она идентифицируется именем, присваиваемым ей приложением при запрашивании загрузки группы.
Имеется возможность добавлять секцию в группу или удалять секцию из группы. Одна секция может принадлежать более чем одной группе.
Когда приложение запрашивает добавление секции в группу, адрес буфера, содержащего новую секцию, помещается в конец дескриптора 4604, и поле 4602 обновляется. Когда приложение запрашивает удаление секции из группы, адрес буфера, содержащего эту секцию, в дескрипторе 4600 стирается и поле 4602 обновляется. Если эта секция не является последней секцией в группе, дескриптор реорганизуется с целью удаления пустых участков памяти. Таким образом, после удаления всех секций можно получить "пустую группу".
Устройства обозначаются уникальными идентификаторами, например "LCARD_ DEVICE_ ID" обозначает устройство LCARD и "RCARD_DEVICE_ID" обозначает устройство RCARD.
Когда создается новое устройство 4062, оно может быть инсталлировано в существующих декодерах 2020 путем загрузки соответствующего приложения 4056" из центра вещания. Обычно максимальное число устройств, поддерживаемых одним менеджером, равно 256.
Эта загрузка выполняется в приемнике/декодере 2020 приложением 4056, которое проверяет версии программного обеспечения и аппаратного обеспечения и, если результат положителен, загружает модуль программного обеспечения, представляющий собой новое устройство 4062, и запрашивает процедуру из библиотеки 4058 для инсталляции кода нового устройства среди других встроенных программ (во флэш-памяти). Таким образом обеспечивается гибкое и безопасное добавление новых функций в приемнике/декодере 2020 без влияния на остальное программное обеспечение.
Очевидно, что настоящее изобретение было описано выше исключительно в виде примера и возможны различные модификации в пределах данного изобретения.
Каждая особенность, изложенная в описании, а также (где это уместно) пункты формулы и фигуры могут быть предоставлены независимо или в соответствующем сочетании.
В вышеупомянутых предпочтительных вариантах реализации некоторые средства предлагаемого изобретения реализованы с использованием программного обеспечения. Однако опытному специалисту, конечно, понятно, что любые эти средства могут быть реализованы аппаратно. Далее, понятно, что функции, выполняемые аппаратными средствами, программное обеспечение компьютера и тому подобное выполняются на или с использованием электрических и им подобных сигналов.
Перекрестные ссылки выполнены на наши совместно рассматриваемые заявки с той же самой датой подачи и озаглавленные как "Генерирование сигналов и вещание" (номер дела поверенного PC/ASD/19707), "Смарт-карта для использования в приемнике зашифрованных вещательных сигналов и приемник" (номер дела поверенного PC/ASD/19708), "Система вещания и приема и система условного доступа для нее" (номер дела поверенного PC/ASD/19710), "Загрузка компьютерного файла из передатчика через приемник/декодер в компьютер" (номер дела поверенного PC/ASD/19711), "Трансляция и прием телевизионных программ и других данных" (номер дела поверенного PC/ASD/19712), "Загрузка данных" (номер дела поверенного PC/ASD/19713), "Организация памяти компьютера" (номер дела поверенного PC/ASD/19714), "Разработка системы управления телевидением и радио" (номер дела поверенного PC/ASD/19715), "Извлечение разделов данных из потока транслируемых данных" (номер дела поверенного PC/ASD/19716), "Система управления доступом" (номер дела поверенного PC/ASD/19717), "Система обработки данных" (номер дела поверенного PC/ASD/19718), "Система вещания и приема, а также приемник/декодер и удаленный контроллер для нее" (номер дела поверенного PC/ASD/19720). Раскрытие содержимого этих документов включено сюда посредством ссылок. Список заявок включает и предлагаемое изобретение.
Изобретение относится к телевидению и предназначено для хранения видео- и аудиоданных. Технический результат состоит в обеспечении гибкости использования системы пользователей. Предлагается способ сохранения, по крайней мере, одной из множества MPEG секций транслируемого потока данных MPEG, причем MPEG секция имеет хотя бы один признак MPEG секции. Поток данных MPEG принимается, и эта одна MPEG секция отфильтровывается из потока данных MPEG согласно, по крайней мере, одному признаку MPEG секции. Затем MPEG секция сохраняется. 2 с. и 18 з.п. ф-лы, 17 ил.