СИСТЕМА ДЛЯ РАННЕГО ОБНАРУЖЕНИЯ ОШИБОК ДЕКОДИРОВАНИЯ
SYSTEM FOR EARLY DETECTION OF DECODING ERRORS

Область техники, к которой относится изобретение
Притязания на приоритет в соответствии с §119 раздела 35 Кодекса законов США
По данной заявке испрашивается приоритет предварительной заявки №60/721824 под названием “METHOD FOR EARLY DETECTION OF DECODE FAILURES” («Способ раннего обнаружения отказов декодирования»), поданной 28 сентября 2005 г., переуступленной правопреемнику по настоящей заявке и включенной в настоящее описание посредством ссылки.
Предшествующий уровень техники
Настоящая заявка на патент относится в основном к системам связи, а более конкретно - к системе для раннего обнаружения ошибок декодирования, предназначенной для использования в системе связи.
В типичных системах беспроводной передачи контент доставляется в портативные устройства по каналу многоадресной передачи. Этот контент представлен в форме пакетов данных, которые закодированы для преодоления проблемы потери пакетов, которая может возникнуть, когда пакеты передаются по каналу передачи. Кодер в передатчике принимает начальные пакеты данных и формирует кодированные пакеты, которые передаются в одно или несколько устройств. Ввиду наличия шума или других ухудшающих передачу эффектов в любом конкретном устройстве происходит прием некоторого подмножества кодированных пакетов. Принятые кодированные пакеты декодируются для восстановления начальных пакетов данных.
Успех процесса декодирования зависит от количества принятых кодированных пакетов. Вообще говоря, если количество пакетов данных равно «k», то количество принятых кодированных пакетов должно составлять, по меньшей мере, k(1+ε), где эпсилон (ε) - показатель коммуникационных издержек (например, составляющий 10% от k). Выбор большего значения ε снижает вероятность отказа декодирования, но может увеличить время декодирования и/или расход энергии батарейки устройства.
Как правило, в обычных системах значение ε фиксируют с тем, чтобы достичь выбранных рабочих параметров декодирования при допущении условий передачи, соответствующих наихудшему случаю. Однако в общем случае работа канала передачи в соответствии с допущениями наихудшего случая нетипична. В результате, принимающее устройство принимает много необязательных пакетов. Например, допущение условий передачи, соответствующих наихудшему случаю, приводит к фиксации очень большого значения ε. Это обуславливает необходимость приема многих дополнительных и необязательных пакетов с целью декодирования данных. Это накладывает тяжкое бремя на ресурсы принимающего устройства, так как требует дополнительной электроэнергии, времени работы центрального процессора, памяти и ресурсов файловой системы для приема и обработки необязательных пакетов.
Поэтому было бы желательно иметь систему, которая работает, регулируя количество принятых пакетов на основе качества канала передачи с целью получения выбранных рабочих параметров декодера. Эта система также должна работать, осуществляя раннее обнаружение ошибок таким образом, чтобы можно было регулировать количество принятых пакетов, получая выбранные рабочие параметры декодера без необходимости дожидаться результатов процесса декодирования.
Краткое изложение сущности изобретения
В одном или нескольких вариантах осуществления предложена декодирующая система, которая работает, регулируя количество принятых пакетов на основе качества канала передачи с целью получения выбранных рабочих параметров декодера. В одном варианте осуществления эта система регулирует количество принятых пакетов на основе одного или нескольких инициирующих событий. Например, одно инициирующее событие связано с отказом процесса декодирования. Одно или несколько других инициирующих событий связаны с ранним обнаружением ошибок таким образом, что можно регулировать количество принятых пакетов, достигая выбранных рабочих параметров декодера без необходимости дожидаться результатов процесса декодирования. Эта система пригодна, в частности, для использования в системах беспроводной связи с целью обеспечения приема и восстановления данных с помощью портативного устройства при минимизации влияния на такие ресурсы устройства, как расход электроэнергии, память, время работы центрального процессора и возможности доступа к файлам и т.д.
В одном варианте осуществления предложен способ обнаружения отказа декодирования. Способ предусматривает прием начального количества кодированных пакетов, обнаружение инициирующего события, которое указывает отказ декодирования, связанный с начальным количеством кодированных пакетов, и прием одного или нескольких дополнительных кодированных пакетов.
В одном варианте осуществления предложено устройство для обнаружения отказа декодирования. Устройство включает в себя приемные логические, сконфигурированные для приема начального количества кодированных пакетов и приема одного или нескольких дополнительных кодированных пакетов при обнаружении инициирующего события, и обрабатывающие логические средства, сконфигурированные для обнаружения упомянутого инициирующего события, при этом упомянутое инициирующее событие указывает отказ декодирования, связанный с начальным количеством кодированных пакетов.
В одном варианте осуществления предложено устройство для обнаружения отказа декодирования. Устройство включает в себя средство для приема начального количества кодированных пакетов, средство для обнаружения инициирующего события, которое указывает отказ декодирования, связанный с начальным количеством кодированных пакетов, и средство для приема одного или нескольких дополнительных кодированных пакетов.
В одном варианте осуществления предложен считываемый компьютером носитель информации, содержащий команды, при исполнении которых, по меньшей мере, одним процессором происходит обнаружение отказа декодирования. Считываемый компьютером носитель информации содержит команды для приема начального количества кодированных пакетов, команды для обнаружения инициирующего события, которое указывает отказ декодирования, связанный с начальным количеством кодированных пакетов, и команды для приема одного или нескольких дополнительных кодированных пакетов.
В одном варианте осуществления предложен, по меньшей мере, один процессор, который сконфигурирован для осуществления способа обнаружения отказа декодирования. Способ предусматривает прием начального количества кодированных пакетов, обнаружение инициирующего события, которое указывает отказ декодирования, связанный с начальным количеством кодированных пакетов, и прием одного или нескольких дополнительных кодированных пакетов.
Другие аспекты вариантов осуществления станут яснее после рассмотрения нижеследующих разделов «Перечень чертежей», «Подробное описание» и «Формула изобретения».
Перечень чертежей
Вышеуказанные аспекты описываемых здесь вариантов осуществления станут яснее при обращении к нижеследующему подробному описанию изобретения, если рассматривать его совместно с прилагаемыми чертежами, при этом:
фиг.1 - тракт связи, который представляет собой один вариант осуществления декодирующей системы;
фиг.2 - график, который иллюстрирует зависимость между вероятностью отказа декодирования и параметром эпсилон;
фиг.3 - один вариант осуществления декодера для использования в вариантах осуществления декодирующей системы;
фиг.4 - один вариант осуществления древовидной структуры для использования в вариантах осуществления декодирующей системы;
фиг.5 - один вариант осуществления способа для использования в вариантах осуществления декодирующей системы;
фиг.6 - один вариант осуществления декодера для использования в вариантах осуществления декодирующей системы.
Подробное описание
В нижеследующем описании приведены один или более вариантов осуществления декодирующей системы. Декодирующая система работает, регулируя количество принятых пакетов на основе качества канала передачи для получения выбранных рабочих параметров декодера. В частности, эта система весьма удобна для использования в портативных устройствах, обладающих ограниченными ресурсами, но может быть использована с устройством любого типа. Эту систему также удобно использовать в устройствах, работающих в сетевой среде любого типа, включая - но не в ограничительном смысле - сети связи, сети общественного пользования, такие как Internet, частные сети, такие как виртуальные частные сети (VPN), локальные сети, глобальные сети, сети дальней связи либо сеть передачи данных или связи любого другого типа.
На фиг.1 показан тракт 100 связи, который представляет собой один вариант осуществления декодирующей системы. Например, тракт 100 связи можно использовать для доставки контента в одно или несколько портативных устройств. Тракт 100 связи содержит кодер 102, канал 104 передачи и декодер 106.
В одном варианте осуществления кодер 102 осуществляет кодирование сообщений в отношении пакетов данных, передаваемых по каналу 104 передачи. Кодирование сообщений осуществляется потому, что канал 104 связи может быть каналом с потерями (или каналов со стиранием), что обуславливает утрату передаваемых пакетов. Кодирование сообщений обеспечивает избыточность, которая позволяет восстанавливать утраченные пакеты данных. В одном варианте осуществления кодирование сообщений осуществляется по технологии кодирования, называемой технологией матрицы генератора низкой плотности (LDGM). Вместе с тем, в других вариантах осуществления можно использовать и другие типы кодирования сообщений.
В одном варианте осуществления кодер 102 принимает (что обозначено позицией 108) пакеты данных, ПД, и кодирует их, получая кодированные пакеты КП. Кодированные пакеты КП представляют собой пакеты двух типов. Кодированный пакет первого типа содержит заголовок пакета и данные из выбранного пакета данных. Кодированный пакет второго типа содержит заголовок пакета и данные из одного или нескольких пакетов данных, которые объединены с помощью любого известного алгоритма, такого как алгоритм исключающего «ИЛИ». Заголовок пакета в случае кодированного пакета второго типа указывает, какие пакеты данных объединены и тип алгоритма объединения.
Кодированные пакеты КП передаются по каналу 104 передачи в одно или несколько принимающих устройств. Например, передача кодированных пакетов происходит в пределах длительности контактного окна, имеющего выбранную длительность. Декодер 106, находящийся в одном из принимающих устройств, принимает подмножество кодированных пакетов КП'. Декодер 106 действует, обрабатывая принятые кодированные пакеты КП' с целью восстановления (что обозначено позицией 110) начальных пакетов данных, ПД.
Процесс декодирования зависит от количества принятых кодированных пакетов КП'. Вообще говоря, если количество передаваемых пакетов данных, ПД, равно «k», то количество принятых кодированных пакетов КП' должно составлять, по меньшей мере, k(1+ε). Выбор большего значения ε снижает вероятность отказа декодирования, но может увеличить время декодирования и/или расход электроэнергии в декодере 106.
В одном варианте осуществления кодирующая система работает, регулируя количество принятых кодированных пакетов КП' на основе одного или нескольких инициирующих событий. Во время работы декодер 106 инициализируется начальным минимальным значением для ε. Затем декодер пытается принять k(1+ε) кодированных пакетов в пределах длительности контактного окна, в котором происходит широковещание. Во время или после приема кодированных пакетов возможно наступление одного или нескольких инициирующих событий. Например, инициирующие события могут происходить, если качество канала передачи является очень низким. Если происходит инициирующее событие, то система увеличивает количество кодированных пакетов КП', которые она принимает для декодирования данных. Таким образом, система работает, регулируя количество принятых кодированных пакетов КП' на основе качества канала передачи. Подробное описание различных инициирующих событий представлено в следующем разделе этого документа.
В одном варианте осуществления декодер 106 принимает k(1+ε) кодированных пакетов. Затем эти кодированные пакеты декодируются для восстановления начальных пакетов данных, ПД. Инициирующее событие, связанное с ошибкой декодирования, происходит, если возникает отказ процесса декодирования. Например, отказ процесса декодирования может произойти потому, что при передаче утрачено слишком много кодированных пакетов из-за низкого качества канала передачи. В этом случае значение ε увеличивают, и декодер 106 работает, принимая больше кодированных пакетов в пределах длительности контактного окна. В результате, декодирующая система регулирует декодер 106 для приема кодированных пакетов КП', количество которых достаточно для получения выбранных технических параметров декодирования. Это обеспечивает весьма эффективную работу декодера 106, поскольку можно использовать малое начальное значение для ε. Если канал передачи обеспечивает адекватные рабочие параметры, то не нужно увеличивать ε, вследствие чего не требуется принимать большие количества необязательных кодированных пакетов КП'. Таким образом, декодирующая система работает, сберегая ресурсы устройств, такие как расход электроэнергии, время обработки центральным процессором, память и возможности доступа к файлам, и т.д.
В одном варианте осуществления декодирующая система работает, выполняя одну или несколько следующих функций.
1. Задание начального значения для ε.
2. Прием выбранного количества кодированных пакетов КП', определяемого значением ε.
3. Декодирование принятых кодированных пакетов КП'.
4. Определение того, произошло ли инициирующее событие, связанное с ошибкой декодирования.
5. Если инициирующее событие, связанное с ошибкой декодирования, произошло, увеличение значения ε и прием дополнительных кодированных пакетов КП'.
6. Декодирование данных из всех принятых кодированных пакетов КП'.
В другом варианте осуществления декодер 106 пытается принять k(1+ε) кодированных пакетов в пределах длительности контактного окна, в котором происходит трансляция. По мере приема кодированных пакетов КП' поддерживается информация о количестве правильно принятых пакетов. Эта информация сохраняется в декодере 106 и используется для определения одного или нескольких инициирующих событий, которые показывают, насколько успешно происходит прием кодированных пакетов. Например, в одном варианте осуществления упомянутая информация используется для определения соотношения приема, которое показывает, сколько принято качественных пакетов по сравнению с общим количеством пакетов. В одном варианте осуществления эту информацию поддерживают в древовидной структуре, что требует поддержки выбранного объема памяти. Инициирующее событие, связанное с ранним обнаружением, относимое к первому типу, определяется, если соотношение приема падает ниже выбранного порогового значения. Инициирующее событие, связанное с ранним обнаружением, относимое к другому типу, определяется, если объем памяти, необходимой для древовидной структуры, превышает выбранное пороговое значение. Когда происходит инициирующее событие, связанное с ранним обнаружением, значение ε увеличивают таким образом, что декодер принимает все остальные кодированные пакеты в контактном окне. Затем декодер обрабатывает все принятые кодированные пакеты, чтобы восстановить начальные данные.
В одном варианте осуществления, декодирующая система работает, выполняя одну или несколько следующих функций.
1. Задание начального значения для ε.
2. Начало приема кодированных пакетов КП'.
3. Определение того, произошло ли инициирующее событие, связанное с ошибкой декодирования.
4. Если инициирующее событие, связанное с ошибкой декодирования, произошло, увеличение ε для приема всех кодированных пакетов КП', остающихся в контактном окне.
5. Декодирование данных из всех принятых кодированных пакетов КП'.
Таким образом, декодирующая система работает, эффективно регулируя количество принятых кодированных пакетов на основании качества канала передачи. В результате, декодирующая система работает, минимизируя количество необязательных кодированных пакетов, принимаемых, когда канал передачи обеспечивает выбранные рабочие параметры.
-6
На фиг.2 показан график 200, который иллюстрирует зависимость «вероятности отказа декодирования» от параметра ε. Как показывает график 200, вероятность отказа декодирования составляет примерно 0,01 для значения ε, составляющего приблизительно 0,2. Вероятность отказа декодирования снижается до примерно 10 для значения ε, составляющего приблизительно 0,5. В одном или нескольких вариантах осуществления декодирующей системы малые начальные значения ε можно использовать для достижения тех же или лучших рабочих параметров декодирования по сравнению с обычными системами, в которых используются большие значения ε. В результате, происходит прием меньшего количества необязательных кодированных пакетов, и поэтому требуется меньше ресурсов декодирующего устройства.
На фиг.3 показан один вариант осуществления декодера 300 для использования в вариантах осуществления декодирующей системы. Например, декодер 300 пригоден для использования в качестве декодера 106, показанного на фиг.1. Декодер 300 содержит обрабатывающие логические средства 302 и приемопередающие логические средства 304, которые подключены к внутренней шине 306 данных. Декодер 300 также содержит устройство 308 для хранения данных, устройство 310 для хранения кодов и логические средства 312 LDGM, которые также подключены к внутренней шине 306 данных.
В одном или нескольких вариантах осуществления обрабатывающие логические средства 302 могут представлять собой центральный процессор, процессор, матрицу логических элементов, аппаратную логику, запоминающие элементы, виртуальную машину, программные средства и/или любую комбинацию аппаратных средств и программных средств. Таким образом, обрабатывающие логические средства 302 в общем случае представляют собой логические средства, исполняющие машиночитаемые команды и управляющие одним или несколькими функциональными элементами декодера 300 через посредство внутренней шины 306 данных, или осуществляющие связь с такими элементами.
Приемопередающие логические средства 304 содержат аппаратную логику и/или программные средства, которые работают, позволяя декодеру 300 передавать и принимать данные и/или иную информацию при обмене информацией с удаленными устройствами или системами с помощью канала 314 связи. Например, в одном варианте осуществления канал 314 связи представляет собой канал 314 связи любого подходящего типа, позволяющий декодеру 300 осуществлять связь с некоторой информационной сетью. Например, в одном варианте осуществления, приемопередающие логические средства 304 работают, принимая кодированные пакеты из удаленного сервера по каналу 314 связи. Затем декодер 300 действует, обрабатывая принятые кодированные пакеты для восстановления начальных данных, переданных из удаленного сервера.
Устройство 308 для хранения данных представляет собой любое подходящее запоминающее устройство, выполненное с возможностью хранения данных. Например, устройство 308 для хранения данных может представлять собой оперативное запоминающее устройство (ОЗУ), флэш-память, электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), жесткий диск и/или запоминающее устройство любого другого типа. В одном варианте осуществления устройство 308 для хранения данных работает, сохраняя данные, которые декодированы из кодированных пакетов, принятых приемопередающей логикой 304.
Устройство 310 для хранения кодов представляет собой любое подходящее запоминающее устройство, выполненное с возможностью хранения информации кодированных пакетов. Например, устройство 310 для хранения кодов может представлять собой оперативное запоминающее устройство (ОЗУ), флэш-память, электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), жесткий диск и/или запоминающее устройство любого другого типа. В одном варианте осуществления устройство 310 для хранения кодов работает, сохраняя информацию кодов, которая включена в кодированные пакеты, принятые приемопередающей логикой 304. Например, в одном варианте осуществления информация кодов содержит информацию, связанную с кодированным пакетом вышеописанного второго типа.
Логические средства 312 LDGM представляют собой центральный процессор, процессор, матрицу логических элементов, аппаратную логику, запоминающие элементы, виртуальную машину, программные средства и/или любую комбинацию аппаратных средств и программных средств. Таким образом, логические средства 312 LDGM в общем случае представляет собой логические средства, исполняющие машиночитаемые команды и управляющие одним или несколькими функциональными элементами декодера 300 через посредство внутренней шины 306 данных, или осуществляющие связь с такими элементами.
В одном или нескольких вариантах осуществления обрабатывающие логические средства 302 содержат логические средства 316 определения доли, которые работают, определяя некоторое соотношение для принятых кодированных пакетов. Например, это соотношение описывает количество качественных кодированных пакетов по сравнению с общим количеством пакетов. Таким образом, если передаются сто кодированных пакетов и лишь девяносто пакетов принимаются успешно, логические средства 316 определения доли определяют, что упомянутое соотношение должно составлять 90/100 или 90%. Если это соотношение падает ниже некоторого выбранного порогового значения доли, то логические средства 316 определения доли генерируют инициирующее событие 318, связанное с ранним обнаружением ошибки, относимое к первому типу. В одном варианте осуществления пороговое значение доли передается в логические средства 316 определения доли из удаленного сервера, а в другом варианте осуществления пороговое значение доли заранее сохраняется в логических средствах 316 определения доли во время изготовления устройства.
В одном варианте осуществления логические средства 312 LDGM содержат логические средства 320 древовидной структуры, сконфигурированные для обработки принятых кодированных пакетов для генерирования древовидной структуры или базы данных, которая описывает зависимости между принятыми и восстановленными кодированными пакетами. В одном варианте осуществления сгенерированная древовидная структура сохраняется в памяти в логических средствах 312 LDGM. Более подробное описание древовидной структуры представлено в другом разделе этого документа. В одном варианте осуществления логические средства 320 древовидной структуры работают, генерируя инициирующее событие 322, связанное с ранним обнаружением ошибки, относимое ко второму типу, когда объем памяти, необходимой для древовидной структуры, превышает некоторое выбранное пороговое значение объема памяти. В одном варианте осуществления пороговое значение объема памяти заранее сохраняется в логических средствах 320 древовидной структуры во время изготовления устройства.
В одном варианте осуществления обрабатывающие логические средства 302 содержат декодирующие логические средства 324, которые работают, декодируя принятые кодированные пакеты для обнаружения отказов декодирования. Например, декодер 300 принимает k(1+ε) кодированных пакетов через посредство приемопередающих логических средств 304 и декодирует эти принятые пакеты, определяя начальные данные. Если обнаруживаются какой-либо выбранный тип или какое-то выбранное количество ошибок декодирования, то декодирующие логические средства 324 работают, выдавая инициирующее событие 326, связанное с ошибкой декодирования, которое показывает, что произошла ошибка декодирования.
Во время работы в соответствии с одним или несколькими вариантами осуществления посредством приемопередающих логических средств 304 загружают начальное значение для ε из удаленного сервера. В другом варианте осуществления начальное значение ε заранее сохраняют в декодере во время его изготовления.
В одном варианте осуществления декодер 300 работает, регулируя количество принятых кодированных пакетов в результате инициирующего события ошибки декодирования, выполняя одну или несколько следующих функций.
1. Задание начального значения для ε.
2. Прием и сохранение в общей сложности k(1+ε) кодированных пакетов в устройстве 310 для хранения кодов и устройстве 308 для хранения данных.
3. Декодирование принятых кодированных пакетов посредством декодирующих логических средств 324.
4. Генерирование инициирующего события 326, связанного с ошибкой декодирования, если имеется отказ декодирования, на основе любых заранее выбранных критериев декодирования.
5. Обнаружение обрабатывающими логическими средствами 302 инициирующего события 326, связанного с ошибкой декодирования, и придание приращения значению ε.
6. Использование увеличенного значения ε приемопередающими логическими средствами для сбора дополнительных кодированных пакетов.
7. Последующее декодирование всех принятых кодированных пакетов декодирующими логическими средствами 324.
8. Сброс значения ε в его начальное значение для следующего сеанса передачи данных.
В одном варианте осуществления декодер 300 работает, регулируя количество принятых кодированных пакетов в результате инициирующего события, связанного с ранним обнаружением ошибки декодирования, выполняя одну или несколько следующих функций.
1. Задание начального значения ε.
2. Прием кодированных пакетов.
3. Обеспечение работы логических средств 320 древовидной структуры с целью построения дерева принятых кодированных пакетов.
4. Генерирование инициирующего события, связанного с ранним обнаружением ошибки декодирования, с помощью логических средств 316 определения доли, если соотношение принятых и переданных кодированных пакетов падает ниже некоторого выбранного порогового значения доли.
5. Генерирование инициирующего события, связанного с ранним обнаружением ошибки, логическими средствами 320 древовидной структуры, если объем памяти, необходимой для древовидной структуры, превышает выбранное пороговое значение объема памяти.
6. Увеличение значения ε для обеспечения приема некоторых или всех передаваемых в контактном окне дополнительных кодированных пакетов, если генерируется событие, связанное с обнаружением ошибки.
7. Декодирование всех принятых кодированных пакетов декодирующей логикой 324.
8. Сброс значения ε в его начальное значение для следующего сеанса передачи данных.
В одном варианте осуществления декодер 300 содержит одну или более команд программы («команды программы»), хранящихся на считываемом компьютером носителе информации, исполнение которых, по меньшей мере, одним процессором, например - обрабатывающими логическими средствами 302, обеспечивает описываемые здесь функции. Например, команды программы можно загружать в декодер 300 со считываемого компьютером носителя информации, такого как флоппи-диск, CD-ROM, карточка с памятью, запоминающее устройство типа флэш-памяти, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ) или запоминающее устройство любого другого типа, либо со считываемого компьютером носителя информации, взаимодействующего с декодером 300. В другом варианте осуществления команды можно загружать в декодер 300 из внешнего устройства, которое взаимодействует с декодером 300 через посредство приемопередающих логических средств 304. При исполнении их обрабатывающими логическими средствами 302 команды программы воплощают описываемые варианты осуществления декодирующей системы.
В результате, декодирующая система в вариантах ее осуществления действует, обрабатывая принятые кодированные пакеты для восстановления данных, переданных по каналу передачи с потерями. Система работает, регулируя количество кодированных пакетов, которые принимаются на основе одного или нескольких инициирующих событий. Таким образом, декодирующая система в вариантах ее осуществления работает, минимизируя количество необязательных пакетов, вследствие чего можно эффективно использовать ресурсы устройства.
На фиг.4 показан один вариант осуществления древовидной структуры 400 для использования в вариантах осуществления декодирующей системы. В одном варианте осуществления древовидная структура 400 генерируется и поддерживается в логических средствах 312 LDGM. Древовидная структура 400 содержит данные 402 и комбинированные данные 404, которые получены из принятых кодированных пакетов. Например, комбинированные данные 404 предоставляются в вышеописанном кодированном пакете второго типа. Древовидная структура 400 также содержит краевые структуры 406, которые описывают зависимость между данными 402 и комбинированными данными 404.
Во время работы декодирующей системы приемопередающие логические средства 304 принимают кодированные пакеты, а данные и комбинированные данные, которые в этих пакетах содержатся, сохраняются в устройстве 308 для хранения данных и устройстве 310 для хранения кодов соответственно. Логические средства 312 LDGM обрабатывают информацию, содержащуюся в устройстве 308 для хранения данных и устройстве 310 для хранения кодов, чтобы построить древовидную структуру 400 таким образом, что можно будет отследить, сколько пакетов данных успешно приняты и какие пакеты подлежат восстановлению. Таким образом, древовидная структура 400 представляет собой указатель рабочих параметров, в котором можно определить, сколько пакетов утрачено и сколько пакетов успешно принято.
В одном варианте осуществления при генерировании древовидной структуры 400 части древовидной структуры 400 складываются, и части древовидной структуры 400 обрезаются. Например, сразу же после успешного приема данных отсекаются краевые структуры, что обозначено позициями 408 и показано пунктирными линиями. Когда происходит прием дополнительных пакетов и некоторые пакеты утрачиваются, наращиваются дополнительные краевые структуры, что обозначено позицией 410 и показано сплошными линиями. Проводимое наращивание и отсечение древовидной структуры 400 приводит к выделению некоторого объема памяти для хранения древовидной структуры 400. Объем памяти, который выделяется для древовидной структуры 400, является индикатором, который описывает количество пакетов, утрачиваемых при передаче.
Таким образом, древовидная структура 400 обеспечивает несколько индикаторов, имеющих отношение к работе декодирующей системы. Например, древовидная структура 400 указывает, какие пакеты восстановлены успешно, а какие - нет. Древовидная структура 400 также указывает количество утраченных пакетов. Например, если древовидная структура большая, то это указывает безуспешный прием большого количества пакетов.
Инициирующие события
В одном или нескольких вариантах осуществления декодирующая система работает, регулируя количество принятых кодированных пакетов на основе одного или нескольких инициирующих событий. В данной заявке описаны инициирующие события двух типов, хотя в рамках объема притязаний, соответствующего вариантам осуществления, возможно большее количество типов. Инициирующим событием одного типа является инициирующее событие, связанное с ранним обнаружением ошибки. Инициирующее событие, связанное с ранним обнаружением ошибки, происходит перед процессом декодирования или во время него, указывая, что декодирование принятых пакетов окажется безуспешным. Инициирующее событие, связанное с ранним обнаружением ошибки, происходит перед завершением декодирования, так что оказывается возможным останов процесса декодирования для оказания корректирующего воздействия и тем самым - сбережения ресурсов устройства и сокращения времени обработки.
Инициирующим событием другого типа является инициирующее событие, связанное с отказом декодирования. Инициирующее событие, связанное с отказом декодирования, происходит сразу же после завершения и указывает, что произошел отказ декодирования.
Ниже приводится подробное описание различных инициирующих событий. Следует отметить, что система не ограничивается лишь теми инициирующими событиями, которые описаны ниже, и что в рамках объема притязаний согласно вариантам осуществления можно охарактеризовать другие инициирующие события.
Инициирующие события, соответствующие раннему обнаружению ошибок
Ниже приводится описание инициирующих событий, связанных с ранним обнаружением ошибок, относимых к двум типам. Эти события обнаруживаются до завершения процесса декодирования, так что декодирующая система сможет оказать корректирующее воздействие, и ей при этом не нужно ждать результата процесса декодирования.
Инициирующее событие, связанное с использованием памяти
В одном варианте осуществления декодирующая система работает, обнаруживая инициирующее событие, связанное с использованием памяти. Например, если древовидная структура, поддерживаемая логическими средствами 320 древовидной структуры, превышает выбранное пороговое значение объема памяти, то генерируется инициирующее событие, связанное с использованием памяти.
Инициирующее событие, связанное с соотношением приема
В одном варианте осуществления декодирующая система работает, обнаруживая инициирующее событие, связанное с соотношением приема. Например, если логические средства 316 определения доли определяют, что доля успешно принятых пакетов падает ниже выбранного порогового значения, генерируется инициирующее событие, связанное с соотношением приема.
Инициирующее событие, связанное с отказом декодирования
Ниже приводится описание инициирующего события, связанного с отказом декодирования. Это событие обнаруживается при завершении процесса декодирования, так что декодирующая система может оказать корректирующее воздействие, относящееся к следующему сеансу приема.
Инициирующее событие, связанное с отказом декодирования, генерируется, если процесс декодирования принятых кодированных пакетов в пределах длительности выбранного сеанса оказывается безуспешным. Например, декодер 300 работает, принимая k(1+ε) кодированных пакетов, передаваемых в пределах выбранного контактного окна. Если при декодировании принятых кодированных пакетов возникает отказ, то генерируется инициирующее событие, связанное с отказом декодирования. В одном варианте осуществления логические средства 324 декодирования работают, декодируя принятые кодированные пакеты и генерируя инициирующее событие 326, связанное с отказом декодирования.
На фиг.5 показан один вариант осуществления способа 500 для использования в вариантах осуществления декодирующей системы. Для ясности, способ 500 описывается здесь со ссылками на декодер 300, показанный на фиг.3. Например, в одном варианте осуществления обрабатывающие логические средства 302 исполняют машиночитаемые команды для выполнения описываемых ниже функций.
На этапе 502 значение ε инициализируется и устанавливается равным минимальному значению для системы декодирования. Например, в одном варианте осуществления значение ε загружается в декодер 300 из удаленного сервера через посредство приемопередающих логических средств 304 и сохраняется в обрабатывающей логике 302. В одном варианте осуществления значение ε составляет приблизительно 0,1.
На этапе 504 осуществляется прием одного или нескольких кодированных пакетов. Например, можно передавать кодированные пакеты в декодер 300 по каналу многоадресной передачи в пределах выбранного контактного окна и принимать с помощью приемопередающих логических средств 304. По мере приема кодированных пакетов информация, которую они содержат, сохраняется в устройстве 308 для хранения данных и устройстве 310 для хранения кодов по мере необходимости. Кроме того, логические средства 312 LDGM осуществляют построение древовидной структуры, показанной на фиг.4.
На этапе 506 проводится тест, чтобы определить, приняты ли все желаемые кодированные пакеты. Например, декодер 300 пытается принять k(1+ε) кодированных пакетов. Если приняты все кодированные пакеты, осуществление способа переходит на этап 514. Если приняты не все кодированные пакеты, осуществление способа переходит на этап 508.
На этапе 508 проводится тест, чтобы определить, произошло ли инициирующее событие, связанное с ранним обнаружением ошибки. Например, в одном варианте осуществления логические средства 316 определения доли и логические средства 320 древовидной структуры работают, определяя, произошли ли инициирующие события 318, 322, связанные с ранним обнаружением ошибок. Если инициирующее событие, связанное с ранним обнаружением ошибки, не произошло, способ возвращается на этап 504, и при этом происходит прием большего количества кодированных пакетов. Если инициирующее событие, связанное с ранним обнаружением ошибки, произошло, осуществление способа переходит на этап 510.
На этапе 510 происходит прием всех остающихся кодированных пакетов или их части в пределах контактного окна. Например, обрабатывающие логические средства 302 оповещаются о длительности контактного окна, в котором передаются кодированные пакеты. Обрабатывающие логические средства 302 работают, управляя приемопередающими логическими средствами 304 с целью приема кодированных пакетов в пределах длительности остающейся части контактного окна, вследствие чего декодер 300 может принимать любое большее количество кодированных пакетов, которые передаются. В одном варианте осуществления значение ε увеличивают с тем, чтобы оно распространялось на все остающиеся кодированные пакеты.
На этапе 512 происходит декодирование принятых кодированных пакетов. Например, обрабатывающие логические средства 302 декодируют все принятые кодированные пакеты для восстановления как можно большего количества переданных данных. Принятые данные сохраняются в запоминающем устройстве 308 для хранения данных. Затем осуществление способа заканчивается на этапе 524.
На этапе 514 происходит декодирование принятых k(1+ε) кодированных пакетов. Например, обрабатывающие логические средства 302 декодируют k(1+ε) принятых кодированных пакетов для восстановления как можно большего количества переданных данных.
На этапе 516 проводится тест, чтобы определить, произошло ли инициирующее событие, связанное с ошибкой декодирования. Например, в одном варианте осуществления инициирующее событие 326, связанное с ошибкой декодирования, происходит, если декодирующие логические средства 324 обнаруживают отказ (как описано выше) при декодировании принятых кодированных пакетов. Если процесс декодирования оказался успешным, то осуществление способа заканчивается в модуле 524. Если обнаружена ошибка декодирования, то обнаруживается и инициирующее событие, связанное с ошибкой декодирования, а осуществление способа переходит к модулю 518.
На этапе 518 происходит увеличение значения ε. Например, в одном варианте осуществления обрабатывающие логические средства 302 увеличивают значения ε на любую выбранную величину.
На этапе 520 проводится тест, чтобы определить, есть ли еще пакеты, которые нужно принять. Например, кодированные пакеты передаются в пределах длительности контактного окна. Упомянутый тест определяет, открыто ли еще контактное окно, вследствие чего можно принять больше пакетов. В одном варианте осуществления, обрабатывающие логические средства 302 определяют, открыто ли еще контактное окно. Если контактное окно закрылось и больше нет пакетов, которые нужно принять, то осуществление способа заканчивается на этапе 524. Если контактное окно все еще открыто и есть еще пакеты, которые нужно принять, то осуществление способа переходит на этап 522.
На этапе 522 происходит прием дополнительных кодированных пактов. В одном варианте осуществления обрабатывающие логические средства 302 управляют приемопередающими логическими средствами 304, чтобы принять больше кодированных пакетов. По мере приема этих пакетов информация, которую они содержат, сохраняется в устройстве 308 для хранения данных и устройстве 310 для хранения кодов по мере необходимости. После этого осуществление способа переходит на этап 514, на котором происходит декодирование всех принятых кодированных пакетов.
Таким образом, при реализации способа 500 обеспечивается один вариант осуществления декодирующей системы для использования в устройстве. Следует отметить, что способ 500 представляет собой лишь одно воплощение и что в рамках объема притязаний согласно вариантам осуществления возможны другие воплощения.
На фиг.6 показан один вариант осуществления декодера 600 для использования в вариантах осуществления декодирующей системы. Декодер 600 содержит средство 602 для приема начального количества кодированных пакетов. Например, в одном варианте осуществления средство 602 содержит обрабатывающие логические средства 302, управляющие приемопередающими логическими средствами 304 для приема k(1+ε) кодированных пакетов.
Декодер 600 также содержит средство 612 для обнаружения инициирующего события. Средство 612 содержит средство 604 для обнаружения ошибки декодирования, средство 606 для обнаружения ошибки порогового значения объема памяти и средство 608 для обнаружения ошибки соотношения приема. Например, в одном варианте осуществления средство 604 содержит логические средства 324 декодирования, средство 606 содержит логические средства 320 древовидной структуры, а средство 608 содержит логические средства 316 определения доли.
Декодер 610 также содержит средство 610 для приема одного или нескольких дополнительных кодированных пакетов. Например, в одном варианте осуществления средство 610 содержит обрабатывающие логические средства 302, управляющие приемопередающими логическими средствами 304 для приема дополнительных кодированных пакетов в пределах длительности контактного окна. Таким образом, декодер 600 обеспечивает один вариант осуществления декодирующей системы.
Различные иллюстративные варианты логики, логические блоки, модули и схемы, описанные в связи с приведенными здесь вариантами осуществления, можно воплотить или осуществить с помощью процессора общего назначения, цифрового процессора сигналов (DSP), специализированной интегральной схемы (ASIC), вентильной матрицы, программируемой во время эксплуатации (FPGA) или другого программируемого логического устройства, дискретной вентильной или транзисторной логики, дискретных аппаратных компонентов или любой их комбинации, предназначенной для выполнения описываемых здесь функций. Процессор общего назначения может быть микропроцессором, но в альтернативном варианте процессор может быть любой обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также можно воплотить как комбинацию вычислительных устройств, например комбинацию DSP и микропроцессора, множества микропроцессоров, одного или нескольких микропроцессоров в связи с ядром на основе DSP или любой другой такой конфигурацией.
Этапы способа или алгоритма, описанного в связи с приведенными здесь вариантами осуществления, можно воплотить непосредственно в аппаратных средствах, в программном модуле, исполняемом процессором, или в виде комбинации этих двух вариантов. Программный модуль может быть размещен в памяти типа ОЗУ, флэш-памяти, памяти на основе ПЗУ, памяти типа EPROM, памяти типа EEPROM, в регистрах, на жестком диске, сменном диске, CD-ROM или на носителе информации в любой другой форме, известной в данной области техники. Возможный носитель информации подключен к процессору, так что процессор может считывать информацию с носителя информации и записывать информацию на него. В альтернативном варианте носитель информации может быть выполнен как единое целое с процессором. Процессор и носитель информации могут быть размещены на ASIC. Эта ASIC может быть размещена в оконечном устройстве пользователя. В альтернативном варианте процессор и носитель информации могут быть размещены в виде дискретных компонентов в оконечном устройстве пользователя.
Это описание предлагаемых вариантов осуществления предназначено для того, чтобы дать любому специалисту в данной области техники возможность реализовать или использовать настоящее изобретение. Для специалистов в данной области техники будет совершенно очевидно, что в эти варианты осуществления можно внести различные изменения и что в рамках существа или объема притязаний изобретения можно применить общие принципы, охарактеризованные в данном описании, к другим вариантам осуществления, например, в случае предоставления услуги мгновенного сообщения или в любых других приложениях беспроводного обмена данными общего характера. Таким образом, не следует считать, что настоящее изобретение ограничивается продемонстрированными здесь вариантами осуществления, а следует толковать его в самом широком смысле в соответствии с описанными здесь принципами и новыми признаками. Слово «возможный» употребляется здесь исключительно в значении «служащий в качестве примера, варианта или иллюстрации». Любой вариант осуществления, описанный здесь как «возможный», не обязательно является предпочтительным или преимущественным по сравнению с другими вариантами осуществления.
Соответственно, хотя здесь проиллюстрирован и описан один или несколько вариантов осуществления системы декодирования, следует понять, что в рамках существа или существенных характеристик изобретения в упомянутые варианты осуществления можно внести различные изменения. Поэтому приводимые здесь характеристики и описания иллюстрируют, а не ограничивают объем притязаний изобретения, который охарактеризован в прилагаемой формуле изобретения.