Извлечение секций данных из транслируемого потока данных
Реферат
Изобретение относится к телевидению и предназначено для хранения видео- и аудиоданных. Технический результат состоит в обеспечении гибкости использования системы пользователей. Предлагается способ сохранения, по крайней мере, одной из множества MPEG секций транслируемого потока данных MPEG, причем MPEG секция имеет хотя бы один признак MPEG секции. Поток данных MPEG принимается, и эта одна MPEG секция отфильтровывается из потока данных MPEG согласно, по крайней мере, одному признаку MPEG секции. Затем MPEG секция сохраняется. 2 с. и 18 з.п. ф-лы, 17 ил.
Изобретение относится к устройству и способу хранения одной или нескольких секций транслируемого потока данных, такого как поток битов 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, номер по