МНОГОРЕЖИМНОЕ КАНАЛЬНОЕ КОДИРОВАНИЕ
MULTI-MODE CHANNEL CODING

Настоящая заявка относится к многорежимному канальному кодированию.
В цифровой связи канальное кодирование (также называемое кодированием с коррекцией ошибок) используется для управления ошибками в данных по ненадежным или зашумленным каналам связи, и в силу этого канальное кодирование становится существенной частью в цифровой связи. Цель канального кодирования состоит в защите информации от возмущений во время передачи. В силу этого для коррекции ошибок и для обнаружения ошибок добавляется избыточность, т.е. избыточность добавляется в последовательность пакетов данных, например, в кадры аудио/видеокодера, которые отправляются по подверженному ошибкам каналу, чтобы обеспечить возможность определенной величины коррекции ошибок при передаче на стороне приёмника. Способность к коррекции ошибок коррелирует с коэффициентом избыточности, что означает, что улучшенные характеристики коррекции ошибок обычно сопровождаются более высокой величиной избыточности.
В контексте кадров аудиоданных, должны рассматриваться три эффекта:
1. Один и тот же кадр аудиоданных может обычно кодироваться с гибким числом битов, когда качество звучания масштабируется со скоростью передачи битов.
2. Потерянные кадры могут маскироваться, поскольку передаваемые данные демонстрируют временную структуру, которая сопровождается определенной величиной ухудшения качества, которое растет с частотой ошибок по кадрам (FER).
3. Способы на основе маскировки потерь пакетов (PLC) обычно обеспечивают гораздо лучшие результаты, чем декодирование необнаруженных плохих кадров.
Следовательно, канальное кодирование в силу этого является очень практически полезным для аудиоданных, поскольку оно позволяет может повышать качество звучания за счет:
- обнаружения плохих кадров (PLC вместо декодирования плохих кадров),
- коррекции плохих кадров (уменьшения FER).
Тем не менее, положительные эффекты наблюдаются только в присутствии ошибок, в то время как отрицательное влияние меньшей скорости передачи данных присутствует в любой момент времени. Кроме того, интенсивность сигнала беспроводных сетей, к примеру, системы на основе DECT (усовершенствованного стандарта цифровой беспроводной связи), обычно изменяется в течение длительности соединения, т.е. для телефонного вызова, при котором динамик перемещается при разговоре или вследствие внешних временных возмущений. В силу этого субоптимально применять фиксированную схему прямой коррекции ошибок (FEC) в течение соединения. Вместо этого, очень желательно иметь гибкий канальный кодер, обеспечивающий множество режимов FEC, изменяющихся от низкой степени защиты и высокой скорости передачи данных до высокой степени защиты и низкой скорости передачи данных (при условии, что полная скорость, т.е. сумма скорости передачи данных и коэффициента избыточности является фиксированной).
С точки зрения аудиокодека, такая переключаемая система не представляет собой сложную задачу, поскольку современные аудиокодеки обычно поддерживают переключение скорости передачи битов «в реальном времени» для речевых и аудиосигналов. Но это обуславливает техническую проблему передачи в служебных сигналах режима FEC на основе кадров. Для простой интеграции в существующие системы, режим FEC должен передаваться в служебных сигналах внутриполосно. Если это осуществляется явно, это также уменьшает скорость передачи данных. Кроме того, передача в служебных сигналах информации режима также должна быть подвержена ошибкам при передаче и не должна защищаться посредством кодов с коррекцией ошибок, поскольку канальный декодер требует знания режима до способности декодировать кодированные данные. В силу этого необходимо защищать режим FEC отдельно, чтобы не допустить наличия ахиллесовой пяты в схеме FEC, что снова снижает скорость передачи данных для аудиокадра.
Известный канальный кодер для аудиоданных представляет собой инструментальное средство EP (защиты от ошибок), указываемое в стандарте MPEG-4 Part 3 ("Information technology - Coding of audio-visual objects - Part 3: Audio Standard, International Organization for Standardization, Geneva, CH, 2009 год). Он содержит множество классов защиты в диапазоне от обнаружения ошибок до схем FEC различных интенсивностей. Он также содержит гибкие архитектуры кадра и неравномерную защиту от ошибок (UEP). Базовая идея UEP состоит в том, чтобы разделять кадр на подкадры согласно чувствительностям к битовым ошибкам и защищать эти подкадры с соответствующей интенсивностью FEC и/или контроля циклическим избыточным кодом (CRC). Чтобы применять UEP к аудиокадрам, требуется информация по меньшей мере a) число классов, b) число битов, которое содержит каждый класс, c) код CRC, который должен применяться для каждого класса, которая может представляться в качестве числа битов CRC, и d) код FEC, который должен применяться для каждого класса в качестве конфигурационных параметров кадра. Как пояснено выше, UEP требует как внеполосной передачи служебных сигналов базовой конфигурации, так значительного количества конфигурационных параметров, которые передаются в служебных сигналах внутриполосно. Кроме того, внутриполосные конфигурационные параметры защищаются отдельно от данных, поскольку они необходимы до декодирования данных.
В силу этого, задача настоящего изобретения состоит в создании концепции эффективного и устойчивого к ошибкам канального кодирования.
Данная задача решается объектами изобретения - канальным кодером по пункту 1 формулы, канальным декодером по пункту 14 формулы, способом кодирования кадра по пункту 43 формулы, способом канального декодирования по меньшей мере одного передаваемого кодового слова по пункту 46 формулы, компьютерной программой по пункту 52 формулы и потоком данных по пункту 53 формулы настоящей заявки.
Согласно настоящему изобретению, канальный кодер содержит модуль окрашивания для применения окрашивающей последовательности по меньшей мере к одному кодовому слову, т.е. кодовое слово включает в себя информацию/указатель режима кодирования. Следовательно, передаваемые биты, используемые для указания режима кодирования в канальный декодер, не требуются, и за счет этого скорость передачи повышается, и можно эффективно передавать кодовое слово. Помимо этого, информация/указатель режима кодирования включается в кодовое слово посредством применения окрашивающей последовательности, которая выбирается в соответствии с режимом кодирования, и за счет этого можно обеспечить устойчивую к ошибкам передачу в служебных сигналах информации режима.
Согласно настоящему изобретению, канальный декодер принимает по меньшей мере одно передаваемое кодовое слово, т.е. кодовое слово, включающее в себя информацию/указатель режима кодирования (режим декодирования). Таким образом, информация/указатель режима кодирования распределяется в кодовом слове посредством применения окрашивающей последовательности, и в силу этого информация/указатель режима кодирования принимается в канальном декодере устойчивым к ошибкам способом. Помимо этого, канальный декодер содержит детектор режима декодирования для формирования указателя режима декодирования, указывающего определенный режим декодирования, который должен использоваться для избыточного декодирования, и указатель режима декодирования ассоциирован по меньшей мере с одной окрашивающей последовательностью в качестве конкретной окрашивающей последовательности, используемой для окрашивания передаваемого кодового слова. Следовательно, можно обнаруживать режим декодирования посредством определения конкретной окрашивающей последовательности, т.е. канальный декодер имеет возможность определять режим декодирования без отдельного приема конкретной информации режима декодирования. Следовательно, коэффициент передачи данных улучшается.
В соответствии с вариантами осуществления настоящей заявки, канальный кодер для кодирования кадра, содержащий: многорежимный избыточный кодер для избыточного кодирования кадра в соответствии с определенным режимом кодирования из набора различных режимов кодирования, при этом режимы кодирования отличаются друг от друга относительно величины избыточности, добавляемой в кадр, при этом многорежимный избыточный кодер выполнен с возможностью вывода кодированного кадра, включающего в себя по меньшей мере одно кодовое слово; и модуль окрашивания для применения окрашивающей последовательности по меньшей мере к одному кодовому слову; при этом окрашивающая последовательность является такой, что по меньшей мере один бит кодового слова изменяется посредством применения по меньшей мере одной из окрашивающей последовательности, при этом конкретная окрашивающая последовательность выбирается в соответствии с определенным режимом кодирования.
В соответствии с вариантами осуществления настоящей заявки, канальное кодирование может изменяться каждый кадр на основе указателя выбора режима. Указатель включает в себя выбор режима и окрашивающую последовательность, которая должна применяться, или указатель обхода окрашивающей последовательности.
В соответствии с вариантами осуществления настоящей заявки, канальный кодер дополнительно содержит модуль разбиения данных для разбиения кадра на множество слов данных, при этом многорежимный избыточный кодер выполнен с возможностью кодирования каждого из множества слов данных согласно определенному режиму кодирования для получения множества кодовых слов, при этом модуль окрашивания выполнен с возможностью применения конкретной окрашивающей последовательности к каждому кодовому слову в предварительно заданном поднаборе множества кодовых слов. Таким образом, коэффициент избыточности может отличаться для различных слов данных, т.е. коэффициент избыточности может отличаться для каждого слова данных. Помимо этого, длина слова данных, включенного в кодовое слово, изменяется на основе вычисленного числа кодовых слов, а также на основе индекса кодового слова.
В соответствии с вариантами осуществления настоящей заявки, канальный декодер для канального декодирования по меньшей мере одного передаваемого кодового слова, содержащий: модуль окрашивания для применения по меньшей мере одной окрашивающей последовательности по меньшей мере к одному передаваемому кодовому слову или по меньшей мере к одному передаваемому кодовому слову с коррекцией ошибок, с тем чтобы получать по меньшей мере одно окрашенное кодовое слово, при этом окрашивающая последовательность является такой, что по меньшей мере один бит кодового слова изменяется посредством применения по меньшей мере одной окрашивающей последовательности, и при этом по меньшей мере одна окрашивающая последовательность ассоциирована с определенным режимом декодирования в качестве конкретной окрашивающей последовательности; избыточный декодер для избыточного декодирования по меньшей мере одного окрашенного кодового слова для получения декодированного выходного кодового слова; и детектор режима декодирования для формирования указателя режима декодирования, указывающего определенный режим декодирования, который должен использоваться посредством избыточного декодера для получения декодированного выходного кодового слова, при этом указатель режима декодирования ассоциирован по меньшей мере с одной окрашивающей последовательностью в качестве конкретной окрашивающей последовательности, используемой для окрашивания передаваемого кодового слова. Таким образом, ко множеству передаваемых кодовых слов применяются различные окрашивающие последовательности (обесцвечивание), и окрашенные (обесцвеченные) слова декодируются посредством использования различных режимов декодирования, и один из используемых режимов декодирования выбирается в качестве определенного режима декодирования на основе результата проверки.
В соответствии с вариантами осуществления настоящей заявки, избыточный декодер содержит модуль уменьшения числа битов для уменьшения числа битов окрашенного кодового слова и модуль коррекции ошибок для коррекции ошибки окрашенного слова, или канальный декодер дополнительно содержит модуль коррекции ошибок для коррекции ошибки передаваемого кодового слова.
Таким образом, в случае если существует ошибка в передаваемых кодовых словах, процесс коррекции ошибок работает в части процесса декодирования в избыточном декодере, или процесс коррекции ошибок работает до применения окрашивания (обесцвечивания) независимо от избыточного декодера.
В соответствии с вариантами осуществления настоящей заявки, модуль окрашивания выполнен с возможностью использования в дополнение к окрашивающей последовательности по меньшей мере дополнительной окрашивающей последовательности, или при этом канальный декодер выполнен с возможностью обхода модуля окрашивания в дополнительном режиме декодирования без окрашивания, например, окрашивающая последовательность имеет только нуль в качестве значений; при этом избыточный декодер выполнен с возможностью избыточного декодирования дополнительного по меньшей мере одного окрашенного кодового слова, окрашенного с использованием дополнительной окрашивающей последовательности, получения дополнительного декодированного кодового слова, дополнительного окрашенного кодового слова, которое получено из передаваемого кодового слова с использованием дополнительной окрашивающей последовательности или кодового слова передачи без окрашивания, для получения другого дополнительного декодированного кодового слова, и при этом избыточный декодер выполнен с возможностью вывода показателя надежности для декодированного кодового слова, дополнительного показателя надежности для дополнительного декодированного кодового слова или другого дополнительного показателя надежности для другого дополнительного кодового слова, например, показатель надежности вычисляется для каждого декодированного кодового слова с использованием различной окрашивающей последовательности и режима декодирования, при этом детектор режима декодирования выполнен с возможностью определения на основании показателей надежности указателя режима декодирования, и при этом избыточный декодер выполнен с возможностью приёма указателя режима декодирования и вывода, в качестве декодированного выходного кодового слова, либо декодированного кодового слова, либо дополнительного декодированного кодового слова, либо другого дополнительного декодированного кодового слова. Таким образом, в случае если существует ошибка в передаваемом кодовом слове, то показатель надежности, например, значение риска (показатель надежности) вычисляется, и декодированный режим, используемый для декодированного кодового слова, имеющего наименьшее значение риска, выбирается в качестве определенного режима декодирования.
В соответствии с вариантами осуществления настоящей заявки, детектор режима декодирования выполнен с возможностью сохранения списка возможных вариантов, указывающего заданное число возможных вариантов режимов декодирования, при этом один возможный вариант режима декодирования может указываться без окрашивающей последовательности, или все возможные варианты режимов декодирования ассоциированы с окрашивающей последовательностью, и выбора одного возможного варианта режима декодирования в качестве определенного режима декодирования, который должен использоваться посредством избыточного декодера для получения декодированное выходное кодовое слово, которое должно использоваться, при этом детектор режима декодирования выполнен с возможностью выполнения первой операции в режиме декодирования и второй операции в режиме декодирования, при этом детектор режима декодирования для выполнения операции в первом режиме декодирования выполнен с возможностью оценки определенного режима декодирования, представляющего собой возможный вариант режима декодирования без окрашивающей последовательности, т.е. до того, как хэш оценивается на предмет того, является ли первое кодовое слово неокрашенным, чтобы вычислить синдромы кодового слова, проверить, имеют ли вычисленные синдромы значение, равное нулю, и когда вычисленные синдромы имеют значение, равное нулю, вычислить хэш-значение передаваемого кодового слова, сравнивать вычисленное хэш-значение и хэш-значение, включенное в передаваемое кодовое слово, если вычисленное хэш-значение равно включенному хэш-значению, формирования указателя режима декодирования для указания возможного варианта режима кодирования без окрашивающей последовательности в качестве определенного режима декодирования, либо, если вычисленное хэш-значение отличается от включенного хэш-значения, исключения возможного варианта режима декодирования без окрашивающей последовательности из списка возможных вариантов и продолжения работы со операцией во втором режиме декодирования. Таким образом, детектор режима декодирования выполняет две операции, например, детектор режима декодирования содержит первый детектор режима декодирования для выполнения операции в первом режиме декодирования и второй детектор режима декодирования для выполнения операции во втором режиме декодирования, и в случае, если определенный режим декодирования не выбирается в операции в первом режиме декодирования, процесс выбора продолжается дальше со операцией во втором режиме декодирования. Следовательно, если отсутствуют ошибки в передаваемых кодовых словах, и режим, ассоциированный без окрашивающей последовательности, использован в кодере, не обязательно продолжать дальше, и в силу этого эффективно выбирается определенный режим декодирования.
В соответствии с вариантами осуществления настоящей заявки, во операции во втором режиме декодирования, ошибка передаваемого кодового слова обнаруживается посредством использования синдрома, ошибочный символ вычисляется с использованием полинома локатора ошибок, и ошибочный символ корректируется. Во время процедуры, в случае если обнаруженные ошибки не являются корректируемыми, то режим декодирования, ассоциированный с окрашивающей последовательностью, применяемой к передаваемому слову, включающему в себя некорректируемую ошибку, исключается из списка возможных вариантов. Помимо этого, в случае, если полином локатора ошибок для передаваемого слова, имеющего корректируемую ошибку, не может быть определен, то дополнительный режим декодирования исключается из списка возможных вариантов. Таким образом, перечисленные возможные варианты режимов декодирования исключаются пошагово, и оставшийся режим декодирования в списке выбирается в качестве определенного режима декодирования в завершение. Следовательно, определенный режим декодирования надежно выбирается с учетом риска возникновения ошибки.
mode
target
В предпочтительных вариантах осуществления настоящей заявки, режим FEC передается в служебных сигналах посредством модификации известных линейных кодов таким образом, что коэффициент избыточности является эффективным, в то время как декодер имеет возможность определять режим FEC посредством частичного пробного декодирования. Эта неявная передача в сигналах нулевых байтов является детерминированной, если ошибки при передаче не возникают, и иначе находит корректный режим с высокой вероятностью, т.е. потери кадров вследствие ошибок при передаче служебных сигналов являются пренебрежимо малыми по сравнению с потерями кадров вследствие некорректируемых кадров. Более конкретно, она относится к схеме (FEC), которая обеспечивает множество N режимов для последовательностей данных кодирования в кодовые последовательности данной длины N. Здесь, для простоты предполагаются двоичные последовательности, но аналогичная схема также должна применяться к общему случаю, в котором символы данных представляют собой элементы в любом поле, например, в конечном поле Галуа.
Предпочтительные аспекты настоящей представляют собой предмет зависимых пунктов формулы изобретения. Предпочтительные варианты осуществления настоящей заявки описаны ниже с обращением к чертежам, на которых:
Фиг. 1 показывает блок-схему, иллюстрирующую пример канального кодера для кодирования кадра, который должен передаваться согласно вариантам осуществления настоящей заявки;
Фиг. 2 показывает блок-схему, иллюстрирующую пример другого канального кодера для кодирования кадра, который должен передаваться согласно вариантам осуществления настоящей заявки;
Фиг. 3 показывает блок-схему, иллюстрирующую пример кодера, включающего в себя канальный кодер для кодирования кадра, который должен передаваться согласно вариантам осуществления настоящей заявки;
Фиг. 4 показывает блок-схему, иллюстрирующую пример дополнительного канального кодера, показанного на фиг. 3;
Фиг. 5A, 5B показывают блок-схему, иллюстрирующую примеры канального декодера для канального декодирования по меньшей мере одного передаваемого кодового слова согласно вариантам осуществления настоящей заявки;
Фиг. 6 показывает блок-схему для примера операции канального декодирования, реализованной посредством заявленного канального декодера, показанного на фиг. 5A или фиг. 5B, согласно вариантам осуществления настоящей заявки;
Фиг. 7A, 7B показывают блок-схему, иллюстрирующую изменения канального декодера для канального декодирования по меньшей мере одного передаваемого кодового слова согласно настоящей заявке, как указано посредством фиг. 5A и 5B;
Фиг. 8 показывает блок-схему, иллюстрирующую дополнительное изменение канального декодера для канального декодирования по меньшей мере одного передаваемого кодового слова согласно настоящей заявке, как указано посредством фиг. 7A или 7B;
Фиг. 9 показывает блок-схему, иллюстрирующую другой пример канального кодера для кодирования кадра, который должен передаваться согласно вариантам осуществления настоящей заявки;
Фиг. 10 показывает блок-схему для примера операции канального кодирования, реализованной посредством канального кодера, показанного на фиг. 9, согласно вариантам осуществления настоящей заявки;
Фиг. 11 показывает блок-схему, иллюстрирующую изменение канального кодера для кодирования кадра, который должен передаваться согласно вариантам осуществления настоящей заявки, показанным на фиг. 9;
Фиг. 12 показывает схематичную иллюстрацию примера для архитектуры кадра в операции канального кодирования, показанной на фиг. 11, согласно вариантам осуществления настоящей заявки;
Фиг. 13 показывает схематичную иллюстрацию примера для архитектуры кадра в зависимости от режима кодирования согласно вариантам осуществления настоящей заявки;
Фиг. 14 показывает блок-схему, иллюстрирующую дополнительный пример канального кодера для кодирования кадра, который должен передаваться согласно вариантам осуществления настоящей заявки;
Фиг. 15 показывает блок-схему, иллюстрирующую дополнительный пример канального декодера для канального декодирования по меньшей мере одного передаваемого кодового слова согласно вариантам осуществления настоящей заявки;
Фиг. 16 показывает блок-схему, иллюстрирующую пример детектора режима декодирования канального декодера, расположенного в канальном декодере, показанном на фиг. 15, согласно вариантам осуществления настоящей заявки;
Фиг. 17 показывает блок-схему для примера операций обнаружения режима декодирования детектора режима декодирования, реализованного посредством детектора режима декодирования, показанного на фиг. 16, и примера операции декодирования канального декодера, реализованного посредством канального декодера, показанного на фиг. 15, согласно вариантам осуществления настоящей заявки;
Фиг. 18 показывает блок-схему, иллюстрирующую пример операции во втором режиме декодирования детектора режима декодирования, реализованного посредством детектора режима декодирования, показанного на фиг. 16, согласно вариантам осуществления настоящей заявки;
Фиг. 19 показывает блок-схему для примера процедуры операции во втором режиме декодирования, реализованной посредством второго детектора режима декодирования, показанного на фиг. 18, согласно вариантам осуществления настоящей заявки;
Фиг. 20 показывает блок-схему, иллюстрирующую изменение канального декодера для канального декодирования по меньшей мере одного передаваемого кодового слова согласно вариантам осуществления настоящей заявки, показанным на фиг. 15;
Фиг. 21 показывает блок-схему, иллюстрирующую изменение детектора режима декодирования канального декодера, расположенного в канальном декодере, показанном на фиг. 20, согласно вариантам осуществления настоящей заявки;
Фиг. 22 показывает схематичную иллюстрацию операции для операции в первом режиме декодирования, реализованной посредством детектора режима, показанного на фиг. 20;
Фиг. 23 показывает схематичную иллюстрацию операции для операции во втором режиме декодирования, реализованной посредством второго детектора режима декодирования, показанного на фиг. 18; и
Фиг. 24 показывает увеличенную схематичную иллюстрацию операции для операции во втором режиме декодирования, показанной на фиг. 23.
Одинаковые или эквивалентные элементы либо элементы с одинаковой или эквивалентной функциональностью обозначаются в нижеприведенном описании одинаковыми или эквивалентными ссылочными позициями.
В нижеприведенном описании приведено множество подробностей для обеспечения более полного пояснения вариантов осуществления настоящей заявки. Тем не менее, специалистам в данной области техники должно быть очевидным, что варианты осуществления настоящей заявки могут использоваться на практике без этих конкретных деталей. В других случаях, известные структуры и устройства показаны в форме блок-схемы, а не подробно, чтобы не затруднять понимание вариантов осуществления настоящей заявки. Помимо этого, признаки различных вариантов осуществления, описанных далее, могут объединяться между собой, если прямо не указано иное.
target
Фиг. 1 иллюстрирует вариант осуществления канального кодера 2 для кодирования кадра, содержащего многорежимный избыточный кодер 4 для избыточного кодирования кадра в соответствии с определенным режимом кодирования из набора различных режимов кодирования и модуль 6 окрашивания для применения окрашивающей последовательности по меньшей мере к одному кодовому слову. Фиг. 2 иллюстрирует другой пример канального кодера 2, дополнительно содержащего контроллер 8 для обеспечения критериев кодирования, например, коэффициента избыточности кадра, требуемой защиты данных (определенного режима кодирования, длина данных, целевого размера N, числа слов данных, составляющих кадр, и т.д. В случае если канальный кодер 2 не включает в себя контроллер 8, как указано на фиг. 1, критерии кодирования передаются в ассоциации с кадром в многорежимный избыточный кодер 4. В качестве варианта, канальный кодер 2 также включает в себя хэш-расширение, чтобы вычислять хэш-значение кадра, который должен передаваться.
target
fec
m
fec
fec
1
1
fec
В дополнительном варианте осуществления, например, кадр аудиоданных передаётся в канальный кодер 2. В случае если контроллер 8 не включается в канальный кодер 2 (как показано на фиг. 1), кадр аудиоданных ассоциирован с указателем целевого размера N и определенного режима m кодирования. Затем переданный кадр кодируется в многорежимном избыточном кодере 4, и множество кодовых слов выводятся из многорежимного избыточного кодера 4. Выводимые кодовые слова передаются в модуль 6 окрашивания, и по меньшей мере одно кодовое слово выводимых кодовых слов окрашивается посредством применения конкретной окрашивающей последовательности sig, которая выбирается в соответствии с определенным режимом m кодирования. Относительно окрашивающей последовательности, когда значение окрашивающей последовательности равно нулю, затем окрашивание обходится для кодовых слов. Таким образом, например, режим m кодирования=1 ассоциирован с окрашивающей последовательностью sig, имеющей нулевое значение, т.е. окрашивающая последовательность sigпредставляет собой нулевую последовательность, и в силу этого окрашивание для кодовых слов, кодированных посредством режима m кодирования=1, обходится.
p
s
Фиг. 3 показывает пример кодера, включающего в себя канальный кодер согласно варианту осуществления настоящей заявки. Кодер содержит аудиокодер 1, канальный кодер 2 и модуль 3 переключения. Аудиокодер 1 выполнен с возможностью кодирования входных аудиоданных, и канальный кодер 2 выполнен с возможностью кодирования канала согласно указываемому режиму. Модуль 3 переключения вводит в аудиокодер 1 размер N рабочих данных и в канальный кодер 2 режим FEC и размер N интервала. Как показано на фиг. 3, кодер выводит кодированный кадр.
in
ext
ext
enc
enc
out
Фиг. 4 показывает дополнительный пример канального кодера, показанного на фиг. 3. Канальный кодер 2 содержит хэш-расширение 10, линейный кодер 4' и модуль 6' окрашивания. Аудиоданные, кодированные в аудиокодере 1, вводятся в качестве входных данных a, и хэш-расширение 10 формирует расширенные данные a посредством добавления хэш-данных. Расширенные данные a вводятся в линейный кодер 4', и линейный кодер 4' формирует кодовое слово a в линейном коде. Кодовое слово a вводится в модуль 6' окрашивания, и модуль 6' окрашивания формирует окрашенное кодовое слово a, которое должно передаваться.
target
tmode
m
target
m
Канальный кодер 2 на фиг. 4 выполняет неявную передачу в служебных сигналах информации режима, т.е. передачу кодированного кадра в декодер без явного указания режима кодирования. В частности, метаданные, за исключением целевого размера N, не должны передаваться в декодер (например, как показано, например, на фиг. 5A и 5B). Для каждого режима N, линейное кодовое слово C длины N назначается, что означает  . Первая стадия кодирования данных в силу этого состоит из преобразования определенного слова данных  в кодовое слово в C.
k
Неявная передача в служебных сигналах информации режима основана на том факте, что может эффективно проверяться, находится ли данное слово  в C. Тем не менее, поскольку коды являются линейными, пересечения  не являются пустыми. В частности, многие семейства кодов, к примеру, примитивные BCH-коды в узком смысле или коды Рида-Соломона с одинаковым базовым полем, даже должны формировать включения между различными кодами при упорядочении согласно расстоянию Хэмминга, т.е.:
(1)
m
n
В силу этого может возникать такая ситуация, что кодовое слово C, полученное посредством слова кодирования данных в режиме m, также находится в C для n≠m, в силу чего, в общем, невозможно определять режим только на основе такого теста. Эта проблема разрешается посредством применения зависимого от режима преобразования:
(2)
после кодирования. Эти преобразования рассчитываются таким образом, что  для m≠n, что разрешает вышеуказанную неоднозначность. Поскольку преобразования не изменяют длину кодовых слов, этот способ эффективно передает в служебных сигналах режим канального кодера с нулевыми битами.
В настоящем варианте осуществления, эти преобразования задаются посредством вычисления побитового XOR кодированного кодового слова c и последовательности служебных сигналов  . Таким образом, при кодировании в режиме m канальный кодер выводит окрашенное кодовое слово:
. (3)
При приеме  и незнании представления в (3), декодер затем может эффективно проверить, верно ли следующее:
(4)
Поскольку  представляет собой нулевую последовательность, декодер должен иметь возможность верифицировать то, что:
(5)
m
находится в C. Кроме того, при условии:
(6)
k
последовательности sig служебных сигналов могут выбираться таким образом, что:
(7)
для k≠l, обеспечивая возможность детерминированного обнаружения режима в декодере, если не возникают ошибки при передаче. Следовательно, необязательно отдельно передавать данные, чтобы указывать определенный режим кодирования и параметры для канального декодера.
Как показано на фиг. 5A канальный декодер 20 содержит модуль 22 окрашивания (модуль обесцвечивания), избыточный декодер 24 и детектор 26 режима. Избыточный декодер 24 содержит модуль 24a уменьшения числа битов и модуль 24b коррекции ошибок; тем не менее, не обязательно, чтобы модуль 24a уменьшения числа битов и модуль 24b коррекции ошибок были предусмотрены в избыточном декодере 24. Таким образом, как показано на фиг. 5B, модуль 24b коррекции ошибок может соединяться с модулем 22 окрашивания, и модуль 24b уменьшения числа битов может быть расположен между модулем 22 окрашивания и детектором 26 режима. Детектор 26 режима соединяется с избыточным декодером 24 (модулем 24a уменьшения числа битов) и модулем 22 окрашивания. В канальном декодере 20, более конкретно, в детекторе 26 режима декодирования, определяется указатель режима декодирования, указывающий определенный режим декодирования, который должен использоваться посредством избыточного декодера 24 (модуля 24a уменьшения числа битов), чтобы получать декодированное выходное кодовое слово и конкретную окрашивающую последовательность, используемую для окрашивания передаваемого кодового слова в модуле 22 окрашивания.
Канальный декодер 20 принимает передаваемые кодовые слова, передаваемые из канального кодера 2. Затем заданное число передаваемых кодовых слов используются/проверяются для формирования указателя режима декодирования в детекторе 26 режима декодирования, как пояснено ниже. Детектор 26 режима декодирования имеет информацию относительно режимов декодирования, которые могут использоваться посредством канального кодера 2, например, список возможных вариантов режимов декодирования.
1
fec
Фиг. 6 является блок-схемой для примера операции канального декодирования, реализованной посредством заявленного канального декодера, показанного на фиг. 5A или фиг. 5B. Заданное число передаваемых кодовых слов обесцвечивается посредством применения окрашивающей последовательности (S2), например, окрашивающей последовательности sig, ассоциированной с режимом m декодирования=1 в списке возможных вариантов. Затем окрашенные (обесцвеченные) кодовые слова декодируются в модуле 24a уменьшения числа битов (S4), и заданное число декодированных выходных кодовых слов получается. В случае если ошибки при передаче не возникают (S6), указатель режима декодирования формируется в детекторе 26 режима декодирования на основе декодированных выходных кодовых слов (S10). Сформированный указатель режима декодирования передаётся в модуль 22 окрашивания и избыточный декодер 24 (модуль 24a уменьшения числа битов), т.е. в случае, если указатель режима декодирования указывает определенный режим декодирования, задается то, что режим декодирования обнаруживается (S12). Затем передаваемые кодовые слова, декодированные посредством использования определенного режима декодирования, выводятся в качестве декодируемых выходных кодовых слов (S16).
Как указано в S6, если обнаружены ошибки, в детекторе 26 режима декодирования (S7) вычисляется показатель надежности (значение риска). Таким образом, в случае если возникают ошибки передачи , ошибки обнаруживаются, и предпринимается попытка их коррекции посредством вычисления и использования синдромов в модуле 24b коррекции ошибок, и результат коррекции ошибок передаётся в детектор 26 режима декодирования из модуля 24b коррекции ошибок. В случае если модуль 24b коррекции ошибок является независимым, как показано на фиг. 5B, результат коррекции ошибок ассоциирован с передаваемым кодовым словом. Далее подробно поясняется процедура обнаружения ошибок и коррекции ошибок.
Затем, в случае, если все возможные варианты режимов декодирования в списке проверены (S8), способ переходит дальше к S10, как описано выше. Если имеется оставшийся возможный вариант режима декодирования в списке (S8), S2-S7, повторяются до тех пор, пока все возможные варианты режимов декодирования не будут проверены. В случае, если определенный режим декодирования не определён (S12), хотя все возможные варианты режимов декодирования проверены, кадр, который состоит из передаваемого кодового слова, используемого/проверяемого для определения определенного режима декодирования, регистрируется в качестве плохого кадра.
Фиг. 7A и 7B показывают варианты канального декодера 20, как показано на фиг. 5A и 5B. Как показано на фиг. 7A канальный декодер 20 дополнительно содержит контроллер 28, который соединяется с модулем 22 окрашивания, избыточным декодером 24 и детектором 26 режима. Кроме того, канальный декодер 20 на фиг. 7B, соответствующий канальному декодеру 20, описанному на фиг. 5B, дополнительно содержит контроллер 28, который соединяется с модулем 24b коррекции ошибок, модулем 22 окрашивания, модулем 24a уменьшения числа битов и детектором 26 режима.
1
fec
2
fec
3
fec
3
fec
В канальном декодере 20 на фиг. 7A, а также на фиг. 7B, множество тестов режима могут обрабатываться параллельно. Например, если имеется четыре возможных варианта режимов в списке возможных вариантов, тест режима выполняется для каждого возможного варианта режима, т.е. для возможного варианта 1: окрашивающая последовательность sig и режим m декодирования=1, для возможного варианта 2: окрашивающая последовательность sig и режим m декодирования=2, для возможного варианта 3: окрашивающая последовательность sig и режим m декодирования=3, и для возможного варианта 4: окрашивающая последовательность sig и режим m декодирования=4, выполняются параллельно, как описано ниже (S2-S8 на фиг. 6 выполняются для каждого возможного варианта параллельно). Детектор 26 режима затем формирует указатель режима декодирования, и контроллер 28 предписывает избыточному декодеру 24 (модулю 24a уменьшения числа битов) вывести декодированные кодовые слова, декодированные с использованием указываемого режима декодирования, в качестве выводимых декодированных кодовых слов.
in
1
in
fec
in
dec
1
2
in
fec
in
dec
3
in
fec
in
dec
3
in
fec
in
dec
Фиг. 8 показывает изменение канального декодера, содержащего множество модулей 221-224 окрашивания, множество декодеров 241-244 (избыточных декодеров), модуль 25 выбора (детектор) режима и переключатель 27. Как описано на фиг. 8, передаваемое кодовое слово, т.е. кодированные данные a вводятся в канальный декодер и копируются для передачи во множество модулей 221-224 окрашивания. Окрашивающая последовательность sig применяется к скопированным кодированным данным a в модуле 221 окрашивания, и режим m декодирования=1 применяется к окрашенному кодовому слову a(1) в декодере 241, чтобы получать декодированное кодовое слово a(1). В этом варианте осуществления, окрашивающая последовательность sig представляет собой нулевую последовательность, т.е. операция окрашивания обходится. Окрашивающая последовательность sig применяется к скопированным кодированным данным a в модуле 222 окрашивания, и режим m декодирования=2 применяется к окрашенному кодовому слову a(2) в декодере 242, чтобы получать декодированное кодовое слово a(2). Окрашивающая последовательность sig применяется к скопированным кодированным данным a в модуле 223 окрашивания, и режим m декодирования=3 применяется к окрашенному кодовому слову a(3) в декодере 243, чтобы получать декодированное кодовое слово a(3). Окрашивающая последовательность sig применяется к скопированным кодированным данным a в модуле 224 окрашивания, и режим m декодирования=4 применяется к окрашенному кодовому слову a(4) в декодере 244, чтобы получать декодированное кодовое слово a(4).
data
Хотя не проиллюстрировано на фиг. 8, декодер включает в себя модуль коррекции ошибок, и декодирование статистической информации, например, числа скорректированных битов или символов и числа скорректированных символов в кодовых субсловах, если код конструируется из меньших кодов, передаётся из каждого декодера 241-244 в модуль 25 выбора режима, как указано посредством пунктирной линии. Затем модуль 25 выбора режима формирует указатель режима декодирования, указывающий определенный режим декодирования, который должен использоваться декодером для получения декодированного выходного кодового слова. Модуль 25 выбора режима выбирает режим декодирования в качестве определенного режима декодирования на основе декодирования статистической информации, т.е. если режим декодирует без коррекции ошибок, этот режим выбирается в качестве определенного режима декодирования. В этом случае, следует отметить, что неправильный выбор не может происходить, если ошибки не возникают. Если ошибки возникают, значение риска (показатель надежности) вычисляется для режимов декодирования на основе вероятности, чтобы формировать кодовое слово с аналогичным числом ошибок посредством случайной догадки. Детектор режима затем определяет для режима декодирования с наименьшим значением риска. Помимо этого, детектор режима также может требовать от значения риска выбранного режима быть меньше заданного порогового значения. Следовательно, если отсутствует режим декодирования, имеющий значение риска меньше заданного порогового значения, указатель плохого кадра формируется вместо указателя режима декодирования. Указатель плохого кадра передаётся в кодер вместе с размером/длиной N данных.
fec
fec
fec
Декодер определяет/вычисляет/вычисляет значение риска (показатель надежности) режима декодирования на основе числа скорректированных символов во время операции декодирования окрашенного кодового слова. Если заданное число кодовых слов окрашиваются, например, 6 кодовых слов окрашиваются, то значение риска (показатель надежности) для режима m декодирования=2 вычисляется на основе числа скорректированных символов во время операции декодирования 6 окрашенных кодовых слов. Таким же способом, значение риска (дополнительный показатель надежности) для режима m декодирования=3 вычисляется на основе числа скорректированных символов во время операции декодирования 6 окрашенных кодовых слов, или значение риска (другой дополнительный показатель надежности) для режима m декодирования=1 вычисляется на основе числа скорректированных символов во время операции декодирования 6 кодовых слов без окрашивания.
fec
Когда определенный режим декодирования выбирается, затем указатель режима декодирования передаётся из модуля 25 выбора режима в переключатель 27. Переключатель 27 переключает соединение с декодером, чтобы получать декодированное выходное кодовое слово на основе указателя режима декодирования. Таким образом, например, если режим m декодирования=3 указывается в качестве определенного режима декодирования, то переключатель 27 соединяется с декодером 243, чтобы получать декодированное выходное кодовое слово.
В случае если ошибки при передаче возникают, декодер 20 принимает:
(8)
с ошибочной последовательностью ε. Это может приводить к неоднозначностям в том смысле, что:
(9)
k
для различного k, где  обозначает наборы всех последовательностей, которые могут корректироваться посредством схемы FEC (например, в модуле 24b коррекции ошибок, показанном на фиг. 7a и 7b), чтобы формировать кодовое слово в C. Если k≠m представляет собой такой режим, то стратегия декодирования состоит в том, чтобы рассматривать член ошибок:
(10)
0
в качестве случайной догадки и оценивать режим из списка возможных вариантов режимов согласно значению риска, т.е. показателю надежности. Это значение риска извлекается из статистики декодирования, к примеру, числа скорректированных символов, и отражает вероятность того, что ввод декодера представляет собой случайную догадку в C (т.е. последовательность бросаний правильной монеты).
Таким образом, риск выбора неправильного режима ограничен посредством риска ошибочного декодирования кодового слова, которое повреждено за пределами характеристик коррекции ошибок базового кода. В случаях, если этот риск считается слишком большим, хэш-значение может добавляться в качестве варианта в данные до кодирования и учитываться в процедуре обнаружения режима. Хотя это, аналогично явной передаче служебных сигналов, уменьшает скорость передачи данных, это в равной мере повышает риск выбора режима и риск неправильного декодирования. Следовательно, предложенная схема FEC является очень подходящей для варианта применения, в котором необнаруженные поврежденные кадры обычно приводят к более сильным ухудшениям, чем обнаруженные и замаскированные поврежденные кадры.
Ниже поясняются дополнительные сведения относительно канального кодера 2 и канального декодера 20 согласно настоящей заявке.
Канальный кодер
s
fec
p
p
s
fec
Канальный кодер согласно изобретению работает с байтами и использует коды Рида-Соломона по GF(16) таким образом, чтобы конструировать семейство линейных кодов. Он принимает в качестве ввода целевой размер в байтах, обозначаемый N, также называемый «размером интервала», номер m режима между 1 и 4 и входную последовательность a(k) байтов данных, k=0, 1, ..., N-1, которые интерпретируются в дальнейшем в качестве целых чисел между 0 и 255. Входной размер N извлекается из параметров N и m, как указано ниже. Ниже по тексту, целевой размер предположительно составляет по меньшей мере 40 байтов.
Фиг. 9 показывает блок-схему, иллюстрирующую другой пример канального кодера 2 для кодирования кадра, который должен передаваться согласно вариантам осуществления настоящей заявки. Канальный кодер 2 содержит контроллер 8, препроцессор 10, модуль 12 разбиения данных, многорежимный избыточный кодер 4, модуль 6 окрашивания и универсальный смеситель 14.
Фиг. 10 показывает блок-схему для примера операции канального кодирования, реализованной посредством канального кодера, показанного на фиг. 9. Как показано на фиг. 10, хэш-значение входных данных, т.е. данных входных кадров, вычисляется и добавляется во входные данные (S20). Кадр, включающий в себя входные данные и добавленное хэш-значение, разбивается посредством модуля 12 разбиения данных на множество слов данных (S22). Число слов данных вычисляется на основе целевого размера кадра. Множество слов данных кодируют посредством многорежимного избыточного кодера 4 (S24) и кодированные слова данных, т.е. кодовые слова, передаются в модуль 6 окрашивания для применения окрашивающей последовательности (S26). Затем окрашенные кодовые слова перемежаются в универсальном смесителе 14 (S28).
s
fec
hash
in
p
hash
i
cw
2,
2
p
hash
0
1
Ncw-1
0
1
Ncw-1
out
Фиг. 11 показывает блок-схему, иллюстрирующую изменение канального кодера, проиллюстрированного на фиг. 9. Канальный кодер на фиг. 11 дополнительно содержит конфигуратор 11 кадров для передачи информации в другие устройства. Например, конфигуратор 11 кадров принимает параметры, например, целевой размер N кодового слова и режим m кодирования. Помимо этого, размер N хэш-значения кадра и расстояние Хэмминга вычисляются в конфигураторе 11 кадров. Как проиллюстрировано на фиг. 11, входные данные a и информация длины N данных и вычисленный размер N хэша и расстояние Хэмминга передаются в препроцессор 10. Помимо этого, длины Li кодовых слов, расстояния d Хэмминга и число N кодовых слов передаются в модуль 12 разбиения данных, кодер 4 Рида-Соломона (RS), модуль 6 окрашивания и мультиплексор 14 (модуль перемежения). Из препроцессора 10, например, данные a имеющие размер N=N+N, передаются в модуль 12 разбиения данных. Модуль 12 разбиения данных разбивает кадр на множество кодовых слов D, D-D, которые передаются в кодер 4 RS. Кодер 4 RS кодирует слова данных, чтобы получать кодовые слова C, C-C, которые передаются в модуль 6 окрашивания. Модуль 6 окрашивания применяет окрашивающую последовательность к кодовым словам, чтобы получать окрашенные кодовые слова, и окрашенные кодовые слова перемежаются в мультиплексоре и выводятся в качестве a. Ниже поясняется подробная процедура.
Предварительная обработка данных
hash
hash
hash
s
fec
s
fec
На этапе предварительной обработки, хэш-значение N байтов вычисляется для входных данных, например, для хэша CRC (контроля циклическим избыточным кодом), где N= N(N, m) является числом в зависимости только от размера N интервала и режима m FEC. В предпочтительном варианте осуществления, число задается посредством:
(11)
Хэш-значение используется для проверки достоверности данных, поскольку обнаружение ошибок кодов Рида-Соломона не является очень строгим.
Пусть хэш-байты обозначаются как h(k), , и пусть rem(n, m) обозначает остаток в делении в столбик n на m. Хэш и данные конкатенируются и разбиваются на последовательность чисел от 0 до 15 (далее называемую «номерами в единицах по 4»), например, согласно:
(12)
и:
(13)
для , и:
(14)
и:
(15)
для
Входные данные, расширенные за счет вычисленного хэша, т.е. кадр, включающий в себя хэш-значение, разбиваются на множество слов данных. Число слов данных вычисляется, например, на основе целевого размера для кадра и индекса кодового слова.
1
5
Фиг. 12 показывает схематичную иллюстрацию примера для архитектуры кадра в операции канального кодирования, выполняемой посредством канального кодера, показанного на фиг. 11. Входные данные, т.е. входной кадр, включающий в себя хэш-значение разбиваются на вычисленное число слов данных (также число кодовых слов), например, 6 слов D-D данных.
Кодирование по Риду-Соломону
(Ссылка на источник "Error Correction Coding: Mathematical Methods and Algorithms", Todd K. Moon, 2005 год).
Линейные коды конструируются из множества кодов Рида-Соломона по GF(16) с расстояниями 1, 3, 5 и 7 Хэмминга. Число кодовых слов вычисляется из размера интервала следующим образом:
, (16)
и длина кодового слова i в символах данных задается посредством:
(17)
cw
cw
где i изменяется от 0 до N-1. Условие N≥40 подразумевает то, что . Расстояния Хэмминга для различных кодовых слов являются зависимыми от режима и от кодового слова и задаются посредством:
(18)
cw
Массив данных разбивается на N слов данных согласно следующему:
(19)
где последовательность точек разбиения индуктивно задается посредством  и .
Это ограничивает входную длину до:
(20)
s
fec
что зависит только от N и m.
i
Затем, слова Di данных кодируются в  кодов С. Кодирование по Риду-Соломону зависит от генератора для базового поля и генератора для единичной группы этого базового поля (см., например, работу "Error Correction Coding: Mathematical Methods and Algorithms", Todd K. Moon, 2005 года), а также от преобразования данных в символы. Ниже по тексту, поле GF(16) предположительно должно формироваться посредством , и генератор α единичных групп предположительно представляет собой остаточный класс x в . Кроме того, преобразование данных в символы (преобразование номеров в единицах по 4 в элементы GF(16)) принимается следующим образом:
(21)
k
где bit(n) обозначает k-ый бит в двоичном представлении n, заданный следующим образом:
(22)
i
Кодовое слово C затем в таком случае представляет собой уникально определенную последовательность, соответствующую:
(23)
для , а также соответствующую тому, что полином:
(24)
делится на порождающий полином RS:
(25)
0
1
5
0
5
Как пояснено выше, слова данных кодируются, и кодовые слова выводятся, как также указано на фиг. 12. Длина каждого кодового слова не обязательно является одинаковой, например, длина кодовых слов C и C составляет 14 полубайтов, и длина кодовых слов C2-C составляет 13 полубайтов, и в силу этого длина кадра, включающего в себя кодовые слова C-C, составляет 40 байтов. Следует отметить, что коэффициент избыточности может отличаться для различных слов данных, поскольку длина слов данных не является полностью одинаковой.
fec
fec
fec
fec
Фиг. 13 является схематичной иллюстрацией примера для архитектуры кадра в зависимости от режима кодирования. Фиг. 13 показывает взаимосвязь между данными, которые должны передаваться, и избыточной компоновкой, когда целевой размер равен 40. Например, когда кодовые слова кодированы с использованием m=1, ошибки не ожидаются, когда кодовые слова кодированы с использованием m=2, одна ошибка в символе в расчете на кодовое слово может возникать, когда кодовые слова кодированы с использованием m=3, две ошибки в символах в расчете на кодовое слово могут возникать, и когда кодовые слова кодированы с использованием m=4, три ошибки в символах в расчете на кодовое слово могут возникать. Канальный декодер 20 информируется относительно данных, которые должны передаваться, и избыточной компоновки, поскольку декодирование требует знаний режима, чтобы расширять кодированные данные.
На следующем этапе, передача в служебных сигналах информации режима выполняется посредством окрашивания кодовых слов согласно:
(26)
i
k
для k=0, 1, ..., L, где sig представляет собой одну из следующих последовательностей:
s
В этом варианте осуществления, число кодовых слов (слова данных) равно 6, если N=40. Если число кодовых слов является большим, необязательно окрашивать все кодовые слова, чтобы надежно передавать в служебных сигналах режим FEC. В этом случае, окрашивание может быть ограничено предварительно заданным поднабором кодовых слов, например, первыми 6 кодовыми словами, как указано выше посредством i<6. Тем не менее, число кодовых слов может изменяться в зависимости от параметров, т.е. целевого размера, индекса кодового слова, длины кодового слова и т.д. Кроме того, цифры окрашивающей последовательности не ограничены вышеуказанными примерами и могут быть другими цифрами.
Функция bitxor(n, m) задается для натуральных чисел и обозначает результат побитового XOR для двоичных представлений n и m, т.е.:
(27)
j
i
i
Таблица 1. Вероятность того, что  является декодируемым с d символов в C(15), когда c извлекается случайно равномерно из C(15).
d:
0
1
2
3
не декодируемый
<img file="00000052.jpg" he="5" wi="22" img-content="undefined" img-format="jpg" />
0
0
-
-
1
<img file="00000053.jpg" he="5" wi="22" img-content="undefined" img-format="jpg" />
0
0
<img file="00000054.jpg" he="5" wi="15" img-content="undefined" img-format="jpg" />
-
<img file="00000055.jpg" he="5" wi="13" img-content="undefined" img-format="jpg" />
<img file="00000056.jpg" he="5" wi="22" img-content="undefined" img-format="jpg" />
0
0
<img file="00000057.jpg" he="5" wi="17" img-content="undefined" img-format="jpg" />
<img file="00000058.jpg" he="5" wi="21" img-content="undefined" img-format="jpg" />
<img file="00000059.jpg" he="5" wi="13" img-content="undefined" img-format="jpg" />
<img file="00000060.jpg" he="5" wi="22" img-content="undefined" img-format="jpg" />
0
0
<img file="00000054.jpg" he="5" wi="15" img-content="undefined" img-format="jpg" />
-
<img file="00000055.jpg" he="5" wi="13" img-content="undefined" img-format="jpg" />
<img file="00000061.jpg" he="5" wi="22" img-content="undefined" img-format="jpg" />
0
0
<img file="00000057.jpg" he="5" wi="17" img-content="undefined" img-format="jpg" />
<img file="00000058.jpg" he="5" wi="21" img-content="undefined" img-format="jpg" />
<img file="00000059.jpg" he="5" wi="13" img-content="undefined" img-format="jpg" />
<img file="00000062.jpg" he="5" wi="22" img-content="undefined" img-format="jpg" />
0
0
0
0
1
где:
(28)
Последовательности выбираются таким образом, чтобы максимизировать разделение различных кодов относительно расстояния Хэмминга. При обозначении посредством:
Li
Li
соответствующих векторов в GF(16) и задании ,  и , окрашивание кодовых слов соответствует векторному сложению  в GF(16). Для детерминированного обнаружения режима в отсутствие ошибок при передаче, условие  для k≠l является достаточным, поскольку оно обеспечивает возможность уникального определения передаваемого в служебных сигналах режима. Последовательности служебных сигналов соответствуют следующим еще более строгим условиям, которые рассчитываются с возможностью ограничения риска неоднозначностей режима, когда возникают ошибки при передаче.
- Для k<l и , слово  не является декодируемым в Cl(Li), что означает то, что его расстояние Хэмминга до Cl(Li) превышает характеристики коррекции ошибок кода.
- Для k<l и , слово  может быть декодируемым в Cl, но требует по меньшей мере коррекции двух символов.
l
k
k
Вероятности возможности декодирования  в C(15) с предписанным числом коррекций символа, когда c извлекается случайно равномерно из C(15), приводятся в таблице 1. Они обеспечивают верхнюю границу для соответствующих вероятностей для меньших значений Li.
fec
1
fec
2
fec
3
fec
3
Окрашенные кодовые слова показаны на фиг. 12. К кодовым словам, кодированным посредством использования режима m кодирования=1, применяется окрашивающая последовательность sig, т.е. окрашивание обходится, поскольку окрашивающая последовательность представляет собой нулевую последовательность. К кодовым словам, кодированным посредством использования режима m кодирования=2, применяется окрашивающая последовательность sig, к кодовым словам, кодированным посредством использования режима m кодирования=3, применяется окрашивающая последовательность sig, и к кодовым словам, кодированным посредством использования режима m кодирования=4, применяется окрашивающая последовательность sig. Следует отметить, что не все кодовые слова должны окрашиваться, т.е. окрашивающая последовательность может применяться только к заданному поднабору кодовых слов в кадре.
Мультиплексирование кодовых слов
Окрашенные кодовые слова перемежаются посредством мультиплексора 14. Таким образом, бит из окрашенного кодового слова размещается в другом кодовом слове в дополнительном бите по меньшей мере одного другого кодового слова, чтобы получать кадр.
i
Таким образом, длины Li кодовых слов выбираются таким образом, что элементы окрашенных кодовых слов C могут полностью перемежаться, с заданием мультиплексированного кодового слова:
(29)
для , которое преобразуется в выходную последовательность:
(30)
s
m
для k=0, 1, ..., N-1. Перемежение увеличивает силу защиты, если битовые ошибки не распределяются равномерно по кадру, например, когда возникают пакеты ошибок. Следует отметить, что окрашивание кодовых слов также может описываться на этой стадии посредством вычисления побитового XOR конечного вывода и соответствующих последовательностей, извлекаемых из sig.
Фиг. 14 показывает блок-схему, иллюстрирующую дополнительный пример канального кодера для кодирования кадра, который должен передаваться. Канальный кодер 2, показанный на фиг. 14, содержит контроллер 8, ядро 2' канального кодирования и аудиокодер 16, т.е. этот канальный кодер используется для кодирования аудиокадра, который должен передаваться. В случае кодирования видеокадра, который должен передаваться, канальный кодер 2 содержит видеокодер вместо аудиокодера 16.
Канальный декодер
Фиг. 15 показывает дополнительный пример канального декодера 20. Канальный декодер 20 содержит демультиплексор 60, детектор 26 режима декодирования, модуль 62 коррекции ошибок, модуль 22 окрашивания, избыточный декодер 24, модуль 64 объединения данных и постпроцессор 68. Модуль 62 коррекции ошибок соединяется с детектором 26 режима декодирования на фиг. 15. Тем не менее, модуль 62 коррекции ошибок может включаться в избыточный декодер 24, например, как показано на фиг. 5A, или располагаться между детектором 26 режима декодирования и модулем 22 окрашивания или модулем 22 окрашивания и избыточным декодером 24. Тем не менее, помимо этого, на фиг. 15 показывается то, что канальный декодер 20 дополнительно может содержать контроллер и/или запоминающее устройство/устройство хранения данных для сохранения списка возможных вариантов режимов декодирования.
cw
i
s
Фиг. 20 показывает изменение канального декодера 20, показанного на фиг. 15. Фиг. 20 иллюстрирует канальный декодер 20 в соответствии с его операцией аналогично фиг. 11. Канальный декодер 20 дополнительно включает в себя конфигуратор 61 кадров, который передаёт число кодовых слов, N, и длины кодовых слов, L, в демультиплексор 60, детектор 26 режима, который включает в себя модуль коррекции ошибок, модуль 22 обесцвечивания (модуль окрашивания), декодер 24 RS и модуль 64 объединения данных. Кроме того, конфигуратор 61 кадров передаёт целевой размер кадра, т.е. размер N интервала в постпроцессор 68. Демультиплексор 60 извлекает перемеженные кодовые слова. Детектор 26 режима обнаруживает определенный режим декодирования и формирует указатель режима декодирования. Указатель режима декодирования включает в себя по меньшей мере информацию, чтобы указывать определенный режим декодирования, и может включать в себя дополнительную информацию, например, число скорректированных символов. Указатель режима декодирования передаётся из детектора 26 режима в модуль 22 обесцвечивания, декодер 24 RS и постпроцессор 68. Модуль 22 обесцвечивания обесцвечивает согласно определенному режиму декодирования посредством применения XOR к заданному числу первых кодируемых слов, например, к первым 6 кодовым словам с окрашивающей последовательностью, ассоциированной с определенным режимом декодирования. Декодер 24 RS извлекает только части данных кодовых слов, т.е. коррекция ошибок выполняется раньше для окрашенных кодовых слов. Величина избыточности указывается посредством указателя режима декодирования. Модуль 64 объединения данных конкатенирует ввод, т.е. комбинирует слова данных, чтобы получать выходные данные. Постпроцессор 68 проверяет достоверность выходных данных с использованием хэш-значения, если определенный режим декодирования не представляет собой режим 1. Ниже поясняется подробная работа.
in
s
Канальный декодер 20 принимает в качестве ввода последовательность a байтов и размер N интервала в байтах. С другой стороны, байты интерпретируются в качестве чисел между 0 и 255.
Демультиплексирование кодовых слов
cw
i
s
i
Демультиплексор 60 извлекает перемеженные кодовые слова в декодере 20, т.е. конфигуратор 61 кадров вычисляет число кодовых слов, N, и длины кодовых слов, L, из входного размера N, как указано в разделе «Кодирование по Риду-Соломону», и извлекает кодовые слова C согласно компоновкам, описанным в разделе «Мультиплексирование кодовых слов».
Обнаружение режима
i
Прямое обнаружение режима согласно канальному декодеру 20, показанному на фиг. 5A, и вышеприведенному ассоциированному описанию, может осуществляться посредством прохождения от C до:
(31)
i, m
n
с использованием пробного декодирования для всех возможных режимов и, при успешности, проверки достоверности декодированных данных посредством повторного вычисления хэшей передаваемых кодовых слов (т.е. декодированного кадра), как пояснено выше (предварительной обработки данных). Если эта процедура успешно выполняется для нескольких режимов, то значение риска может присоединяться к классам режимов следующим образом: пусть  обозначает число символов, которые скорректированы в кодовом слове C во время декодирования RS. Для рассматриваемых кодов RS(Li, Li-2t) Рида-Соломона (расстояние Хэмминга составляет 2t+1, и в силу этого число корректируемых символов составляет t), вероятность выбора случайного слова w из n символов в GF(16), которое может корректироваться в кодовое слово RS(n, n-2t) посредством модификации τ≤t символов, задается посредством:
(32)
Следовательно, значение риска для режима m может приниматься как:
, (33)
fec
mfec
и m должен выбираться таким образом, что ρ является минимальным.
Предложенное решение по выбору режима принимается по немного другому тракту. Вместо стремления к полному декодированию для всех возможных режимов, детектор режима осуществляет параллельный подход, сужая список возможных вариантов режимов пошагово и достигая окончательного решения после обработки первых 6 кодовых слов. Этот подход имеет преимущество меньшей вычислительной сложности в среднем.
Фиг. 16 показывает блок-схему, иллюстрирующую пример детектора 26 режима декодирования канального декодера, расположенного в канальном декодере 20, показанном на фиг. 15. Детектор 26 режима декодирования содержит первый детектор 30 режима декодирования, второй детектор 32 режима декодирования и контроллер 34. Детектор 26 режима декодирования выполнен с возможностью выполнения первой операции в режиме декодирования в первом детекторе 30 режима декодирования и второй операции в режиме декодирования во втором детекторе 32 режима декодирования. Контроллер 34 может включать в себя запоминающее устройство/устройство хранения данных для сохранения списка возможных вариантов режима декодирования.
Фиг. 17 показывает блок-схему для примера операций обнаружения режима декодирования детектора режима декодирования, реализованного посредством детектора режима декодирования, показанного на фиг. 16, и примера операции декодирования канального декодера, реализованного посредством канального декодера, показанного на фиг. 15.
Первая операция в режиме декодирования выполняется посредством проверки, представляет ли определенный режим декодирования собой режим 1. Сначала вычисляются синдромы кодового слова, и когда вычисленные синдромы исчезают, т.е. вычисленный синдром без значения (S30), вычисляется и оценивается хэш-значение (S31). Таким образом, если режим декодирования представляет собой режим 1, не должно возникать ошибки, и в силу этого синдром имеет значение, равное нулю. Когда вычисленный синдром имеет значение, первая операция в режиме декодирования завершается и переходит ко второй операции (S38) в режиме кодирования. Когда вычисленное хэш-значение не равно включенному хэш-значению (принимаемое хэш-значение) в кодовом слове (S34), первая операция в режиме декодирования завершается и переходит к операции во втором режиме декодирования (S38). Когда хэш-значения являются одинаковыми (S34), первый детектор 30 режима декодирования формирует указатель режима декодирования (S36), и контроллер 34 выполняет предыдущие дополнительные этапы, чтобы выводить данные для декодирования (S82).
Фиг. 18 показывает блок-схему, иллюстрирующую пример второго детектора 32 режима декодирования детектора режима декодирования, реализованного посредством детектора режима декодирования, показанного на фиг. 16. Второй детектор 32 режима декодирования содержит модуль 40 вычисления синдромов, модуль 42 окрашивания синдромов, модуль 44 проверки синдромов, модуль 46 вычисления полиномов локатора ошибок, модуль 48 вычисления значений риска, модуль 50 вычисления положений ошибки и модуль 52 вычисления ошибочных символов. В операции во втором режиме декодирования, модуль 42 окрашивания синдромов применяет окрашивающую последовательность для обесцвечивания вычисленного синдрома, поскольку выполнение окрашивания для кодовых слов или синдромов по существу является одинаковым.
2
2
Фиг. 19 показывает блок-схему для примера процедуры операции во втором режиме декодирования, реализованной посредством второго детектора 32 режима декодирования, показанного на фиг. 18. Как показано фиг. 19, синдром вычисляется в модуле 40 вычисления синдромов (S40), и синдром окрашивается в модуле 42 окрашивания синдромов (S42). Например, синдромы окрашиваются с синдромами окрашивающей последовательности, ассоциированной со следующим возможным вариантом режима в списке возможных вариантов, например, окрашивающей последовательности sig, ассоциированной с режимом 2. Окрашивание синдромов кодового слова с синдромами окрашивающей последовательности формирует такой же вывод, что и вывод окрашивания кодового слова до вычисления его синдромов, но оно является вычислительно меньше сложным. Обесцвеченный синдром проверяется, т.е. значение синдрома проверяется в модуле 44 проверки синдромов (S44). Если все синдромы исчезают для одного режима, то этот режим выбирается непосредственно, без проверки дополнительных режимов. Когда обесцвеченный синдром имеет значение, ошибка возникает (S46), и в силу этого полиномы локатора ошибок (ELP) вычисляются в модуле 46 вычисления полиномов локатора ошибок (S48). В случае если ELP не существует (S50), т.е. ELP не может быть вычислен, режим декодирования исключается из списка возможных вариантов (S52), и если имеется какой-либо режим, который еще не проверен (S58), выполняется возврат к этапу S40. Например, ELP для обесцвеченного синдрома, применяемого к окрашивающей последовательности sig, не существует, и затем режим 2 декодирования исключается из списка возможных вариантов. Когда ELP существует (S50), значение риска вычисляется в модуле 48 вычисления значений риска (S54). Когда вычисленное значение риска превышает заданное пороговое значение (S56), режим исключается из списка возможных вариантов (S52). Когда значение риска меньше заданного порогового значения (S56), проверяется, имеются ли режимы, которые еще не проверены, в списке возможных вариантов (S58). Если в списке возможных вариантов (S58) имеются режимы, которые еще не проверены,  затем процесс возвращается к этапу S40. Если все режимы в списке возможных вариантов проверены (S58), положение ошибки вычисляется посредством модуля 50 вычисления положений ошибки (S60). Когда ошибка не является корректируемой на основе вычисленного положения ошибки (S62), режим декодирования исключается из списка возможных вариантов (S52). Если ошибка является корректируемой (S62), ошибочный символ вычисляется посредством модуля 52 вычисления ошибочных символов ошибочных символов (S64), и формируется указатель режима декодирования (S66).
Затем, как проиллюстрировано на фиг. 17, ошибка корректируется посредством модуля 62 коррекции ошибок (S68). Когда коррекция ошибок не является успешной, кадр, включающий в себя кодовое слово, имеющее некорректируемую ошибку, регистрируется в качестве плохого кадра (S70). Когда коррекция ошибок успешно выполняется, кодовые слова окрашиваются на основе указателя режима декодирования посредством модуля 22 окрашивания (S72). Затем цветные (обесцвеченные) кодовые слова декодируются на основе указателя режима декодирования посредством избыточного декодера 24 (S74), и слова данных конкатенируются посредством модуля 64 данных (S76). Хэш-значение конкатенированных данных вычисляется и сравнивается с включенным хэш-значением для оценки хэш-значения (S78). Когда хэш-значения совпадают (S80), декодированные данные выводятся. Когда хэш-значения не совпадают (S80), декодированный кадр регистрируется в качестве плохого кадра (S70).
Фиг. 21 показывает блок-схему, иллюстрирующую изменения детектора режима декодирования канального декодера, расположенного в канальном декодере, показанном на фиг. 20. Фиг. 21 показывает принципиальную блок-схему, которая иллюстрирует операцию, выполняемую посредством детектора 26 режима на фиг. 20. Таким образом, детектор 26 режима на фиг. 20 содержит первый детектор режима декодирования, выполняющий стадию 1 (первую операцию в режиме декодирования), второй детектор режима декодирования, выполняющий этап 2 (вторую операцию в режиме декодирования), модуль выбора режима и модуль коррекции ошибок.
Операция обнаружения первого режима (стадия 1)
fec
Фиг. 22 показывает схему выполнения стадии 1. Как показано на фиг. 22, обнаружение режима первой стадии выполняется для проверки, равен ли режим m FEC 1. Следующая система обозначений используется для обозначения i-го кодового полина в GF(16)[x], соответствующего i-ому кодовому слову:
(34)
Выбор режима FEC 1 зависит от двух условий. Во-первых, первые два синдрома должны исчезать, т.е.:
(35)
и во-вторых, повторно вычисленное хэш-значение должно совпадать с принимаемым хэш-значением. Если оба условия выполнены, формируется указатель декодирования для указания, что режим 1 представляет собой определенный режим декодирования, и данные декодируются согласно конфигурациям данных в кодере. Если по меньшей мере одно из этих условий нарушается, режим 1 исключается из списка возможных вариантов режимов, и обнаружение режима переходит к стадии 2.
Таким образом, как показано на фиг. 22, если оба условия выполнены, первый детектор режима декодирования замечает то, что определенный режим декодирования представляет собой режим 1 (как указано "is_mode_1" на фиг. 21). В этом случае, дополнительные процедуры, т.е. стадия 2 и коррекция ошибок, пропущены.
Операция обнаружения второго режима (стадия 2)
0
5
Фиг. 23 показывает схему стадии 2, выполняемой посредством второго детектора режима декодирования. Как показано на фиг. 23, когда определенный режим декодирования уже выбран на стадии 1, процесс на стадии 2 пропускается. Помимо этого, если определенный режим декодирования представляет собой режим 1, предполагается, что ошибки не возникают, и в силу этого коррекция ошибок не выполняется. На фиг. 23, проиллюстрированы три процесса, т.е. вычисляются синдромы 6 кодовых слов, проиллюстрированы операция обнаружения режима декодирования для режима 2, для режима 3 и для режима 4. Таким образом, синдромы для заданного числа кодовых слов вычисляются, например, для шести кодовых слов C-C, шесть синдромов для каждого кодового слова вычисляются, т.е. . Операция для режима 2 выполняется посредством модуля 1 обесцвечивания, модуля 1 проверки синдромов, модуля 1 вычисления полиномов локатора ошибок, модуля 1 оценки риска, модуля 1 вычисления положений ошибки и модуля 1 вычисления ошибочных символов. Операция для режима 3 выполняется посредством модуля 2 обесцвечивания, модуля 2 проверки синдромов, модуля 2 вычисления полиномов локатора ошибок, модуля 2 оценки риска, модуля 2 вычисления положений ошибки и модуля 2 вычисления ошибочных символов. Операция для режима 4 выполняется посредством модуля 3 обесцвечивания, модуля 3 проверки синдромов, модуля 3 вычисления полиномов локатора ошибок, модуля 3 оценки риска, модуля 3 вычисления положений ошибки и модуля 3 вычисления ошибочных символов.
i, n+1
Фиг. 24 показывает увеличенную часть по фиг. 23, указывающую операцию для режима 2. При операции для режима n+1, т.е. для режима 2, модуль n обесцвечивания, т.е. модуль 1 обесцвечивания обесцвечивает вычисленный синдром согласно режиму 2: . Проверка синдрома 1 содержит проверку, верно ли  для k=1, 2, 2*n. Результат теста отправляется в модуль выбора режима в качестве syndrome_check_1. Полином  локатора ошибок (ELP) вычисляется в модуле n вычисления ELP, т.е. в модуле 1 вычисления ELP для режима 2. Режим 2 (режим n+1) исключается из списка возможных вариантов (помещается в черный список в списке возможных вариантов), если  не существует для одного  Модуль n оценки риска, т.е. модуль 1 оценки риска для режима 2, вычисляет значение риска из степеней  согласно . Вычисленное значение риска отправляется в модуль выбора режима и модуль 1 вычисления положений ошибки в качестве risk_value_1. Модуль n вычисления положений ошибки, т.е. модуль 1 вычисления положений ошибки для режима 2, вычисляет положения ошибки в режиме n+1, т.е. режиме 2 посредством разложения на множители . Если разложение на множители завершается неудачно, или если положение ошибки выходит за границы, или если значение риска выше заданного порогового значения, режим 2 исключается из списка возможных вариантов(помещается в черный список). Модуль n вычисления ошибочных символов, т.е. модуль 1 вычисления ошибочных символов для режима 2, вычисляет символы ошибок в режиме 2 (n+1) из , и положения err_pos ошибки.
i,2
i,2
i,3
i,3
i,4
i,4
Как показано на фиг. 23, такая же операция, что и выполненная для режима 2, также выполняется для режима 3 и режима 4. Затем данные, указывающие положение ошибки, err_pos, и указатель данных символа err_symb ошибки, отправляются из модуля 1 вычисления ошибочных символов в переключатель. Кроме того, err_pos и err_symb отправляются из модуля 2 вычисления ошибочных символов в переключатель, и err_pos и err_symb отправляются из модуля 2 вычисления ошибочных символов в переключатель. Модуль выбора режима выбирает определенный режим декодирования согласно следующим этапам:
1. Если указывается то, что "is_mode_1", то режим 1, если процедура завершается неудачно, то проверка "is_mode_n", n=2, 3, 4; выход,
fec
2. Если syndrome_check=истина для n, то m=n+1 (без ошибок) выбирается,
3. Если все режимы помещаются в черный список, режим не выбирается, т.е. is_mode_n<0, и
fec
fec
4. Из режимов, которые остаются в списке возможных вариантов (не помещаются в черный список), выбор m, для которого risk_val_(m-1) является минимальным.
fec
fec
i, mfec
i, mfec
Затем переключатель переключается между вводами согласно m (вывод является нерелевантным, если режим не выбирается). В модуле коррекции ошибок, если is_mode_1, т.е. m=1, то вывод=ввод, поскольку ошибка не возникает. Иначе, модуль коррекции ошибок корректирует символы, указываемые посредством err_pos, посредством подвергания операции XOR с err_symb. Подробные процессы поясняются ниже.
На стадии 2 список возможных вариантов режимов дополнительно уменьшается в несколько этапов. Процедура выбора определенного режима декодирования завершается, как только допустимый режим обнаружен, либо если допустимый режим не остается в списке возможных вариантов. Во втором случае, декодирование прекращается, и кадр помечается в качестве плохого кадра.
0
5
На стадии 2 рассматриваются только кодовые слова С-С для обнаружения режима. В этом варианте осуществления, число кодовых слов равно шести; тем не менее, это число может отличаться, например, в зависимости от обстоятельств канала передачи, окружения передачи, требуемой силы защиты и/или производительности кодека.
Во-первых, синдромы:
(36)
окрашенных кодовых слов вычисляются для , m=2, 3, 4 и , т.е. для первых по меньшей мере шести передаваемых кодовых слов. Следует заметить, что:
, (37)
k
i,m
i
k
где sig(a)) может сводиться в таблицу. Таким образом, синдромы окрашенных кодовых слов C могут вычисляться эффективно посредством окрашивания синдромов кодовых слов C. Такое рассмотрение всех режимов не увеличивает сложность по принципу наихудшего случая вычисления синдромов.
k
Если m существует, так что  для , то режим m выбирается. Следует отметить, что это всегда имеет место, если ошибки при передаче не возникают, и что посредством выбора sig, такое m является обязательно уникальным.
В противном случае, ошибки при передаче возникают, и обнаружение режима переходит к вычислению полиномов локатора ошибок для оставшихся режимов. На этой стадии предусмотрены полиномы:
(38)
где , и где коэффициенты являются уникальным решением для:
(39)
для . Такой полином не обязательно существует, если кодовое слово i не является корректируемым в режиме m, и если встречается кодовое слово, для которого не может обнаруживаться такой , режим m исключается из списка возможных вариантов режимов.
В противном случае, т.е. такой  обнаруживается, значение риска вычисляется для всех m оставшихся режимов согласно:
(40)
i
m
-8
Длина 14 кодового слова настоящим используется в качестве оценки для реального риска , поскольку L изменяется от 13 до 15 для рассматриваемых размеров интервалов. Режимы, для которых ρ превышает данное пороговое значение, исключаются из последующей обработки. Следует отметить, что пороговое значение, например, составляет 6×10; тем не менее, это значение может изменяться в зависимости от требуемого качества передачи и других требуемых критериев.
Для оставшихся режимов (на этой стадии обычно остается только один режим) полиномы локатора ошибки разлагаются на множители в GF(16)[x]. Говорят, что разложение на множители завершается удачно, если полином разбивается на различные линейные коэффициенты следующего вида:
(41)
fec
mfec
Если это имеет место, то  является корректируемым в допустимое кодовое слово  посредством модификации  для . Все режимы, для которых по меньшей мере один полином локатора ошибок не разбивается согласно формуле (41), исключаются из списка возможных вариантов режимов. Если несколько режимов остаются в списке возможных вариантов, определенный режим m декодирования выбирается таким образом, что риск ρ при декодировании является минимальным.
fec
При успешном обнаружении режима, выполняется коррекция ошибок кодовых слов . Если коррекция завершается неудачно, кадр помечается в качестве плохого кадра, и декодирование завершается. В противном случае, данные декодируются после выполнения обесцвечивания согласно выбранному режиму в избыточном декодере 24 согласно компоновкам данных кодера в режиме m FEC.
fec
Если m>1, декодированные данные проходят проверку достоверности посредством повторного вычисления хэш-значения и сравниваются с хэш-значением, включенным в передаваемые кодовые слова, в постпроцессоре 68. Если проверка достоверности завершается удачно, декодированные данные выводятся согласно компоновке данных в кодере. В противном случае, плохой кадр передается в служебных сигналах в канальный кодер 2.
fec
mfec(k)
fec
Когда режим декодирования выбирается, указатель режима декодирования, указывающий определенный режим декодирования, формируется и отправляется в модуль 22 обесцвечивания, Декодер 24 RS и постпроцессор 68, как показано на фиг. 20. Кроме того, как показано на фиг. 20, модуль 22 обесцвечивания обесцвечивает согласно режиму m посредством подвергания операции XOR первых 6 кодовых слов с sig. Декодер 24 RS извлекает только части данных кодовых слов, т.е. коррекция ошибок выполняется раньше для окрашенных кодовых слов. Указатель режима декодирования также отправляется в декодер 24 RS, поскольку необходимо знать определенный режим декодирования для идентификации величины избыточности. Процесс декодирования для декодирования согласно определенному режиму декодирования способом, раскрытым в источнике "Error Correction Coding: Mathematical Methods and Algorithms", Todd K. Moon, 2005 г. Модуль 64 объединения данных конкатенирует ввод, чтобы получать вывод, и постпроцессор 68 проверяет достоверность данных, если m>1, и удаляет хэш-данные.
В соответствии с вариантами осуществления настоящей заявки, канальный кодер указывает режим кодирования посредством применения окрашивающей последовательности к кодовому слову кадра. Следовательно, необязательно отдельно передавать данные, чтобы указывать определенный режим кодирования и требуемые параметры, и за счет этого скорость передачи данных повышается. Помимо этого, информация/указатель режима кодирования включается в кодовое слово посредством применения окрашивающей последовательности, которая выбирается в соответствии с режимом кодирования, и за счет этого можно обеспечить устойчивую к ошибкам передачу в служебных сигналах информации режима. Кроме того, информация/указатель режима кодирования распределяется в кодовом слове посредством применения окрашивающей последовательности, и в силу этого информация/указатель режима кодирования принимается в канальном декодере устойчивым к ошибкам способом. Помимо этого, канальный декодер имеет возможность определять режим декодирования без отдельного приема конкретной информации относительно режима и параметров декодирования, с тем чтобы определять режим декодирования. Следовательно, коэффициент передачи данных канала эффективно улучшается.
В соответствии с вариантами осуществления настоящей заявки, канальный декодер выполняет тестовое декодирование для анализа того, возникает ли ошибка, для обнаружения режима декодирования. Следовательно, в случае если ошибка при передаче не возникает, надежный режим декодирования определяется при простом вычислении.
В соответствии с вариантами осуществления настоящей заявки, в случае если ошибка при передаче возникает, канальный декодер выполняет коррекцию ошибок для заданного числа кодовых слов в качестве теста и вычисляет значение риска ошибок (показатель надежности). Следовательно, без приема конкретной информации и параметров из канального кодера, можно определять соответствующий режим декодирования посредством проверки заданного числа кодовых слов и рассмотрения показателя надежности.
В соответствии с вариантами осуществления настоящей заявки, указатель режима декодирования содержит детектор режима декодирования для обнаружения режима декодирования посредством проверки заданного числа кодовых слов, чтобы выводить возможный вариант режима декодирования в списке возможных вариантов режимов декодирования. Возможные варианты в списке возможных вариантов исключаются или помещаются в черный список на основе возникающих ошибок, и определенный режим декодирования в завершение выбирается из оставшихся возможных вариантов режимов декодирования в списке возможных вариантов, с учетом показателя надежности (значения риска). В таком случае, указатель режима декодирования включает в себя значение риска выбранного режима декодирования, и в случае, если риск ошибки превышает заданное пороговое значение, кадр регистрируется в качестве плохого кадра. Следовательно, можно выбирать надежный и надлежащий режим декодирования посредством проверки только заданного числа кодовых слов.
Далее описываются дополнительные варианты осуществления.
Прямая коррекция ошибок на уровне приложений
1. Канальный кодер
1.1. Функции и определения
1.2. Общие параметры канального кодера
1.2.1. Режим FEC
fec
fec
Режим m FEC является числом от 1 до 4, где m=1 обеспечивает только базовую защиту от ошибок, и m=2, 3, 4 обеспечивает улучшение характеристик коррекции ошибок. В канальном кодере, режим FEC обозначается посредством m, а в канальном декодере он обозначается n.
1.2.2. Размер интервала
s
s
Размер N интервала указывает размер канально кодированного кадра в октетах (байтах). N может принимать все целочисленные значения от 40 до 300, охватывающие номинальные скорости передачи битов от 32 до 240 Кбит/с на частоте кадров в 100 Гц.
1.2.3. CMR
Запрос CMR на предмет режима кодирования представляет собой двухбитовый символ, представленный посредством чисел 0-3.
1.2.4. Флаг объединенного канального кодирования
Флаг jcc_flag объединенного канального кодирования принимает значения 0 и 1 и указывает то, что входные данные содержат данные из нескольких аудиоканалов.
1.3. Извлеченные параметры канального кодера
1.3.1. Число кодовых слов
cw
Параметр N указывает число кодовых слов, которые используются для кодирования кадра данных. Он извлекается из размера интервала посредством:
1.3.2. Длины кодовых слов
i
cw
s
Параметр L задается для i=0...N-1 и указывает длину i-ого кодового слова в полуоктетах. Он извлекается из размера N интервала следующим образом:
1.3.3. Расстояния Хэмминга
i
m
Параметр d, указывает расстояние Хемминга кодового слова i в режиме m FEC. Он задается следующим образом:
и для m>1, следующим образом:
1.3.4. Число кодовых слов частичной маскировки
pcww
s
Параметр N указывает число кодовых слов частичной маскировки и извлекается из размера N интервала и режима m FEC следующим образом:
1.3.5. Размер блока частичной маскировки
pc
s
Параметр N указывает размер блока частичной маскировки в полуоктетах и извлекается из размера N интервала и режима m FEC следующим образом:
1.3.6. Размеры CRC-хэша
CRC1
CRC2
Числа N и N, которые соответствуют размерам CRC-хэш-значений, извлекаются из размера интервала и режима m FEC посредством:
1.3.7. Размер рабочих данных
p
s
Размер N рабочих данных указывает размер данных в канально кодированном кадре размера N, кодированном в режиме m FEC в октетах, который задается следующим образом:
1.4. Алгоритмическое описание канального кодера
1.4.1. Ввод-вывод
s
fec
Канальный кодер принимает в качестве ввода размер N интервала, режим m FEC, запрос CMR на предмет режима кодирования, последовательность данных, например,  из октетов и флаг jcc+flag объединенного канального кодирования и возвращает последовательность октетов . Октеты интерпретируются в качестве чисел от 0 до 255 согласно указанному порядку байтов.
1.4.2. Предварительная обработка данных
n
n
Последовательность данных сначала разбивается на последовательность  с обратным упорядочением, где a(2k) справедливо для верхней половины,  и a(2k+1) справедливо для нижней половины. В формулах, это представляет собой:
и:
Затем, CRC-хэш-значения вычисляются для битовых расширений последовательностей:
и:
pc
2
Следует отметить, что N может быть нулевым, причем в этом случае an представляет собой пустую последовательность. Битовое расширение последовательности (0...n-1) полуоктетов задается посредством последовательности b (0...4N-1), где:
j
причем k изменяется от 0 до N-1, и j изменяется от 0 до 3, и bit является функцией, возвращающей j-ый бит согласно указанному порядку байтов.
n1
CRC1
Первая CRC-хэш-последовательность, вычисленная для расширения a, имеет длину 8N-2, и двоичные порождающие полиномы задаются посредством:
и:
2'
CRC2
Вторая CRC-хэш-последовательность, вычисленная для an, имеет длину 8N, и двоичный порождающий полином задается посредством:
CRC-хэш-последовательность длины k для последовательности b двоичных данных (0...n-1), поскольку данный двоичный порождающий полином p(x) степени k задается как обычно таким образом, что она представляет собой двоичную последовательность b (0...k-1), так что двоичный полином:
делится на p(x).
n1
n1
n2
n2
CRC1
Пусть b обозначает битовое расширение a, и пусть b обозначает битовое расширение a. Затем последовательность  задается в качестве хэш-последовательности длины 8N-2, вычисленной для конкатенированной последовательности:
CRC2
n2
n2
CRC2
Кроме того,  задается в качестве второй хэш-последовательности длины 8N, вычисленной для b. Следует отметить, что r представляет собой пустую последовательность, если N=0.
Первая предварительно обрабатываемая последовательность  данных затем задается посредством:
и:
CRC1
CRC1
Конечная предварительно обработанная последовательность данных задается посредством перестановки битов CMR в положениях 8N-2 и 8N-1 с битами в положениях  и k+2, т.е.:
и:
CRC1
CRC1
для n, отличающегося от 8N-2, 8N-1, k и k+2. Перестановка этих битов обеспечивает то, что биты CMR сохраняются в независимых от режима EC положениях битов, расположенных в середине канально кодированного потока битов.
pp
Битовая последовательность b преобразуется в последовательность  полуоктетов посредством инвертирования битового расширения, т.е.:
Следует отметить, что необязательно фактически выполнять битовые расширения, описанные в этом разделе, поскольку CRC-хэш могут вычисляться эффективно для блоков данных.
1.4.3. Кодирование по Риду-Соломону
pp
cw
i
Для кодирования по Риду-Соломону (RS), предварительно обработанная последовательность a данных из раздела 1.4.2 разбивается на N последовательностей D, также называемых «словами данных», согласно:
,
cw
0
где i изменяется от 0 до N-1, и где точки Si разбиения индуктивно задаются посредством S=0 и .
Коды RS конструируются по , причем остаточный класс x в  выбирается в качестве генератора единичных групп, обозначаемого, как обычно, посредством a.
Полуоктеты преобразуются в элементы GF(16) с использованием преобразования данных в символы:
Преобразование представляет собой «один к одному», и обратное преобразование обозначается как , так что
При этой системе обозначений, порождающие полиномы Рида-Соломона для расстояний 3, 5 и 7 Хэмминга задаются посредством:
и:
cw
i
Для i, изменяющегося от 0 до N-1, избыточные последовательности RS  для слов D данных вычисляются. Они представляют собой (уникально определенные) последовательности полуоктетов, так что полином:
i
делится на ; i-ое кодовое слово C затем задается таким образом, что оно представляет собой последовательность Li полуоктетов, заданную посредством:
и:
i, mfec
i
i
Следует отметить, что если d=1, избыточная последовательность RS является пустой, и C просто равен D
1.4.4. Передача в служебных сигналах информации режима
fec
Режим m FEC передается в неявном виде, а вместо этого передается в служебных сигналах неявно посредством окрашивания первых 6 кодовых слов посредством зависимых от режима окрашивающих последовательностей, т.е.:
m
где bitxor(a, b) обозначает операцию побитового XOR для двух полуоктетов. Последовательности служебных сигналов sig задаются следующим образом:
0
Следует отметить, что окрашивание кодовых слов оставляет биты CMR в положениях 30 и 32 битов C неизменными.
1.4.5. Мультиплексирование кодовых слов
i
Последовательности CC мультиплексируются в последовательность октетов сначала посредством перемежения полуоктетов согласно:
,
cw
где i изменяется от 0 до N-1, и k изменяется от 0 до Li-1, и затем посредством спаривания последовательных полуоктетов согласно:
s
где k изменяется от 0 до N-1.
1.5. Алгоритмическое описание канального декодера
1.5.1. Ввод-вывод
s
p
Канальный декодер принимает в качестве ввода размер N интервала и последовательность  октетов и флаг jcc_flag объединенного канального кодирования и возвращает размер N рабочих данных, последовательность декодированных октетов , указатель bfi плохого кадра, принимающий значения 0, 1 и 2, оценку CMR XNI, принимающую значения из 0-11, число error_report, принимающее значения от-1 до 480 (указывающее число скорректированных битов, если bfi=0), и указатель fbcwbp положения бита для частичной маскировки.
p
Значение N и  указываются только в том случае, если bfi≠1, и значение указателя fbcwbp положения бита указывается только в том случае, если bfi=2.
1.5.2. Демультиплексирование кодовых слов
s
cw
i
cc
s
ij
s
Из размера N интервала, извлеченные параметры N и L вычисляются согласно разделам 1.3.1 и 1.3.2. Входная последовательность z(0...N-1) затем разбивается на последовательность z(0...2N-1) полуоктетов согласно:
и:
s
i
для k=0... N-1, и кодовые слова XX извлекаются согласно компоновкам данных раздела 1.4.5, т.е.:
cw
где i изменяется от 0 до N-1, и k изменяется от 0 до Li-1.
1.5.3. Обнаружение режима
fec
i
fec
Обнаружение режима направлено на восстановление режима m FEC посредством анализа кодовых слов XX, где i изменяется от 0 до 5. Обнаруженный режим обозначается n и принимает значения от 0 до 4, где 0 указывает то, что режим не обнаружен. После того как режим обнаружен, все извлеченные параметры кодека, такие как размер рабочих данных, число кодовых слов частичной маскировки и т.д., задаются согласно этому режиму. Режим выбирается из списка возможных вариантов режимов, первоначально содержащего режимы FEC 1-4, который затем сужается пошагово.
1.5.3.1. Стадия 1
i
На стадии 1 выполняется попытка определить, кодирован ли кадр в режиме FEC 1. Для этого первые два синдрома кодового слова 0 вычисляются, при этом k-ый синдром кодового слова XX задается в качестве символа GF(16), заданного посредством:
Режим 1 выбирается, если выполняются следующие два условия:
и
fec
Данные, извлеченные согласно компоновке кадров m=1, передают первый контроль циклическим избыточным кодом, как указано в разделе 1.5.7 с
dat
p
Если эти условия выполнены, error_report и bfi задаются равными 0, и канальный декодер выводит данные z(0...N-1), сформированные в разделе 1.5.7. В противном случае, обнаружение режима переходит к стадии 2, и режим 1 удаляется из списка возможных вариантов.
1.5.3.2. Стадия 2
На стадии 2 выполняется попытка определить, кодирован ли кадр в режимах FEC 2, 3 или 4. Для этого синдромы  вычисляются для i=0...5 и k=1...6.
Если для одного  условия:
i, m
выполняются для i=0...5 и k=1...d-1, т.е. все синдромы, окрашенные согласно режиму m, исчезают, то  выбирается, и канальный кодер переходит к разделу 1.5.6. Следует отметить, что такой m обязательно является уникальным, так что режимы могут проверяться в любом порядке.
Если такой m не может находиться, то обнаружение режима вычисляет полиномы  локатора ошибок для i=0...5 и m=2...4. Это проводится согласно разделу 1.5.5.1.1 с  и:
окрашенные синдромы согласно режиму m, для k=1...2t.
Все режимы m, для которых   по меньшей мере для одного i от 0 до 5 исключаются из дальнейшего рассмотрения.
Для оставшихся режимов, вычисляется значение риска. Значение rsk(m) риска для режима m основано на степенях полиномов  локатора ошибок и вычисляется в качестве пары "мантисса-экспонента":
где пары  "мантисса-экспонента" указываются в таблице 2, и где умножение двух пар "мантисса-экспонента" задается следующим образом: С учетом двух пар  и , где , произведение  задается в качестве пары , заданной посредством:
Такая пара  "мантисса-экспонента" соответствует числу .
Табл. 2
<img file="00000196.jpg" he="5" wi="3" img-content="undefined" img-format="jpg" /> \ <img file="00000197.jpg" he="6" wi="25" img-content="undefined" img-format="jpg" />
0
1
2
3
1 (только для i=0)
(16384, -8)
(26880, -1)
Н/д
Н/д
2
(16384, -8)
(26880, -1)
Н/д
Н/д
3
(16384, -16)
(26880, -9)
(20475, -2)
Н/д
4
(16384, -24)
(26880, -17)
(20475, -10)
(19195, -4)
Все режимы m, для которых соответствующее значение rsk(m) риска находится выше зависимого от размера интервала порогового значения risk_thresh, удаляются из списка возможных вариантов режимов. Пороговое значение риска задается в качестве:
j
Оставшиеся режимы со значением риска, меньшим или равным risk_thresh, перечисляются в качестве m, j=1...n, так что для каждого j=1...n-1 либо , либо  и  является справедливым.
1
j, i,k
i
fec
j
j
fec
Начиная с режима m, положения nm ошибок в кодовых словах XX определяются согласно разделу 1.5.5.2 с  для i=0...5. Если вычисление положения ошибки завершается удачно для всех кодовых слов, то n=m выбирается, и канальный декодер переходит к разделу 1.5.5. В противном случае, если положения ошибки не могут определяться для одного индекса, такая же процедура выполняется для режима m+1 при J<n. В противном случае, n задается равным 0, что указывает то, что режим не обнаружен.
В случае если режим не обнаружен, т.е.  задается равным -1, обнаружение CMR выполняется согласно разделу 1.5.4 с  до того, как канальный декодер выходит с bfi=1.
1.5.4. Оценка CMR, когда кадр не является декодируемым
0
В случае если кадр не является декодируемым, CMR оценивается посредством анализа первого кодового слова XX и соответствующих полиномов  локатора ошибок для всех режимов  где M является данным набором возможных вариантов режимов.
Сначала, все режимы удаляются из M, для которых либо:
полином  локатора ошибок не является достоверным, либо:
экспонента  значений риска, как указано в таблице 2, превышает -8.
1
Набор оставшихся режимов обозначается как M.
Если M1 является пустым, оценка CMR XNI задается как:
здесь слагаемое 8 указывает то, что это значение не проходит проверку достоверности.
1
0
fec
Если M1 не является не пустым, то пусть m обозначает элемент M, для которого экспонента  значений риска является минимальной (следует отметить, что такой режим всегда существует, поскольку  и  не могут оба иметь значение -8 согласно расчетам последовательностей служебных сигналов). Затем коррекция ошибок выполняется для XX согласно разделу 1.5.5 с n=m, и оценка CMR извлекается из скорректированного кодового слова  как либо:
если , где слагаемое 4 указывает, что CMR проходит проверку достоверности со средним высоким доверием, либо:
если , что указывает, что значение CMR проходит проверку достоверности с высоким доверием.
1.5.5. Коррекция ошибок
nfec, i,k
Полная коррекция ошибок выполняется только при успешном обнаружении режима. В этом случае, положения ошибки для n для первых 6 кодовых слов уже вычислены в разделе 1.5.3.2. Коррекция ошибок также может выполняться только для первого кодового слова для восстановления CMR. В этом случае, следующие этапы выполняются только для i=0.
i
Кодовые слова XX с i≤5 корректируются посредством вычисления символов  ошибок согласно разделу 1.5.5.3 при:
, заданным в разделе 1.5.3.2, и:
Скорректированные кодовые слова затем задаются следующим образом:
где  является обратным преобразованием данных в символы, указываемым в разделе 1.4.3.
Для оставшихся кодовых слов с индексом i>5, коррекция ошибок выполняется посредством выполнения обычных этапов:
Синдромы вычисляются согласно:
для k=1...2t с .
i
Если все синдромы являются нулевыми, кодовое слово предполагается безошибочным, и в силу этого скорректированное кодовое слово  задается равным XX.
В противном случае, полином  локатора ошибок вычисляется согласно разделу 1.5.5.1.1.
k
При успешности (т.е. , положения ошибок v, k=0...d-1 с  вычисляются согласно разделу 1.5.5.2.
При успешности, символы  ошибок вычисляются согласно разделу 1.5.5.3, и коррекция ошибок выполняется согласно:
cw
pcww
Если коррекция ошибок сбоит для индекса i<N-N, т.е. один из этапов 3, 4 или 5 сбоит, то указатель bfi плохого кадра задается равным 1, error_report вычисляется так, как указано ниже, и канальное декодирование завершается.
cw
pcww
cw
pcww
cw
cw
pcww
i
0
Для индексов i≥N-N, последовательность T(N-N...N-1) задается следующим образом. Если коррекция ошибок сбоит для индекса i<N-N, либо если экспонента  значений риска, как указано в таблице, превышает -16, значение T(i) задается равным 0, указывая то, что данные в кодовом слове XXi не являются надежными без дополнительной проверки достоверности. Если коррекция ошибок завершается неудачно, скорректированное кодовое слово , тем не менее, задается как XX, но первый указатель bfi плохого кадра задается равным 2.
cw
pcww,
1
cw
Значение error_report задается следующим образом. Если коррекция ошибок сбоит для индекса i<N-N то пусть i обозначает наименьший индекс, для которого она сбоит, и выполняется задание . Иначе, пусть I обозначает набор всех индексов 0<i<N, для которых коррекция ошибок выполнена успешно. Значение error_report затем вычисляется следующим образом:
,
i,
т.е. как общее число битов, скорректированное в кодовых словах XX с .
s
m
Если N=40, число битовых коррекций искусственно уменьшается, чтобы увеличивать обнаружение ошибок. Если все кодовые слова скорректированы успешно, первый указатель плохого кадра задается в зависимости от зависимого от режима порогового значения emax ошибки, заданного следующим образом:
0
Если , то первый указатель bfi плохого кадра задается равным 0, и иначе он задается равным 1.
s
0
Если N>40, и все кодовые слова скорректированы успешно, то первый указатель bfi плохого кадра задается равным 0.
1.5.5.1.1. Вычисление полиномов локатора ошибок
Полином локатора ошибок вычисляется из последовательности , символов в GF(16), где t является числом от 1 до 3.
Если  для k=1...2t, полином  локатора ошибок задается равным [1].
l
В противном случае, детерминанты матриц M вычисляются для l=1...t, где:
и:
Если все детерминанты равны [0] для l=1...t, полином  локатора ошибок задается равным [0], который является недопустимым полиномом локатора ошибок в смысле 1.5.5.2.
В противном случае, τ принимается в качестве наибольшего индекса от 1 до t таким образом, что . Затем коэффициенты полинома локатора ошибок вычисляются следующим образом:
где обратные матрицы задаются следующим образом:
Если , полином локатора ошибок задается равны м[0].
В противном случае, если τ=t, полином локатора ошибок задается равным:
и если τ<t, дополнительно проверяется, справедливо ли:
для n=0...2 (t-τ)-1. Если все эти равенства являются справедливыми, то полином локатора ошибок задается равным:
В противном случае, он задается равным [0].
1.5.5.2. Вычисление положений ошибки
Положения ошибки вычисляются из полинома локатора ошибок:
Считается, что полином локатора ошибок является допустимым, если он допускает представление:
k
причем в этом случае положения ошибки задаются посредством n для k=0...d-1. В противном случае, список положений ошибки является пустым.
k
Значения n могут определяться посредством проверки  для n=0...Li-1. В качестве альтернативы, табулирование местоположений ошибок, индексированных посредством  , является возможным и может быть значительно быстрее.
1.5.5.3. Вычисление ошибочных символов
Символы ошибок вычисляются из синдромов  и положений  ошибок посредством решения линейной системы:
по GF(16), где  представляют собой матрицы Вандермонда:
и:
Обратные матрицы задаются посредством:
и:
где:
и:
1.5.6. Обесцвечивание и декодирование RS
fec
Обесцвечивание согласно обнаруженному режиму n FEC выполняется посредством применения соответствующей последовательности служебных сигналов из раздела 1.4.4, обуславливающей обесцвеченные кодовые слова:
fec
Затем избыточное декодирование применяется согласно режиму n с формированием слов данных:
,
pp
p
p
fec
которые комбинируются в последовательность z(0...N-1) данных, с N, как указано в разделе 1.3.7 с m=n, согласно:
cw
для i=0...N-1, где точки Si разбиения являются такими, как задано в разделе 1.4.3. Это дает в результате последовательность длины . После избыточного декодирования RS, декодер FEC переходит к постобработке данных раздела 1.5.7.
1.5.7. Постобработка данных
pp
pp
pp0
CRC1
CRC1
Постобработка данных заключается в удалении и проверке достоверности хэша и извлечения CMR. Последовательность z из раздела 1.5.6 расширяется до соответствующей битовой последовательности y, из которой последовательность y извлекается посредством инвертирования перестановки битов из раздела 1.4.2, т.е. перестановки битов в положениях 8N-2 и  и битов в положениях 8N-2 и k+2.
pp0
n1
n2
n1ext
n2
n2
Последовательность y затем разбивается на последовательности i, i, y и y, соответствующие  и b из раздела 1.4.2, заданные посредством:
и:
n1ext
n2
Два контроля циклическим избыточным кодом (CRC) выполняются для y и y, выполняются посредством повторного вычисления хэш-последовательностей, указываемых в разделе 1.4.2.
CRC1
n1ext
n,1
Если вычисленная избыточная битовая последовательность 8N-2 для y, указываемая в разделе 1.4.2, не совпадает с i, указатель bfi плохого кадра задается равным единице, и CMR оценивается согласно разделу 1.5.4 с   В противном случае, оценка CMR задается равной:
0
CRC2
n2
n,2
0
Если первый CRC передается, и если bfi≠2, второй CRC выполняется с вычислением хэш-последовательности 8N для y, как указано в разделе 1.4.2. Если результат не совпадает с последовательностью в i, указатель bfi плохого кадра задается равным 2, указывая потери данных частичной маскировки. Если первый CRC передается, и bfi=2, то bfi задается равным 2 без выполнения второго CRC.
Если оба CRC передаются, указатель bfi плохого кадра задается равным 0, указывая то, что декодированные данные являются допустимыми.
cw
ccw
cw
Если bfi=2, положение fbcwbp первого потенциально поврежденного бита в блоке частичной маскировки определяется из последовательности T(N-N...N-1) из раздела 1.5.5 следующим образом.
cw
ccw
cw
cw
0
cw
Если индекс i не существует, так что N-N≤i<N, и так что T(i)=1, либо если T(N-1)=0, то fbcwbp задается равным 0. В противном случае, пусть i обозначает наибольший индекс, так что T(i)=1 для i0≤i<N. Затем fbcwbp вычисляется следующим образом:
0
t
Если bfi≠1, выходные данные zda формируются посредством инвертирования этапов предварительной обработки из раздела 1.4.2 посредством задания:
p
pc
для k=0...2N-N-1
pc
для k=0...N-1
и:
для
Хотя некоторые аспекты описаны в контексте оборудования, очевидно, что эти аспекты также представляют описание соответствующего способа, при этом блок или устройство соответствует этапу способа либо признаку этапа способа. Аналогично, аспекты, описанные в контексте этапа способа, также представляют описание соответствующего блока или элемента, или признака соответствующего оборудования. Некоторые или все этапы способа могут выполняться посредством (или с использованием) аппаратного оборудования, такого как, например, микропроцессор, программируемый компьютер либо электронная схема. В некоторых вариантах осуществления, один или более из самых важных этапов способа могут выполняться посредством этого оборудования.
Поток согласно изобретению данных может сохраняться на цифровом носителе хранения данных либо может передаваться по среде передачи, такой как беспроводная среда передачи или проводная среда передачи, к примеру, Интернет.
В зависимости от определенных требований к реализации, варианты осуществления заявки могут реализовываться в аппаратных средствах или в программном обеспечении. Реализация может выполняться с использованием цифрового носителя хранения данных, например, гибкого диска, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM или флэш-памяти, имеющего сохраненные электронно считываемые управляющие сигналы, которые взаимодействуют (или допускают взаимодействие) с программируемой компьютерной системой таким образом, что осуществляется соответствующий способ. Следовательно, цифровой носитель хранения данных может быть машиночитаемым.
Некоторые варианты осуществления согласно изобретению содержат носитель данных, имеющий электронно считываемые управляющие сигналы, которые допускают взаимодействие с программируемой компьютерной системой таким образом, что осуществляется один из способов, описанных в данном документе.
В общем, варианты осуществления настоящей заявки могут реализовываться как компьютерный программный продукт с программным кодом, при этом программный код выполнен с возможностью осуществления одного из способов, когда компьютерный программный продукт выполняется компьютером. Программный код, например, может сохраняться на машиночитаемом носителе.
Другие варианты осуществления содержат компьютерную программу для осуществления одного из способов, описанных в данном документе, сохраненную на машиночитаемом носителе.
Другими словами, вариант осуществления способа согласно изобретению в силу этого представляет собой компьютерную программу, имеющую программный код для осуществления одного из способов, описанных в данном документе, когда компьютерная программа работает на компьютере.
Следовательно, дополнительный вариант осуществления способов согласно изобретению представляет собой носитель хранения данных (цифровой носитель хранения данных или машиночитаемый носитель), содержащий записанную компьютерную программу для осуществления одного из способов, описанных в данном документе. Носитель данных, цифровой носитель хранения данных или носитель с записанными данными обычно является физическим и/или постоянным.
Следовательно, дополнительный вариант осуществления способа согласно изобретению представляет собой поток данных или последовательность сигналов, представляющих компьютерную программу для осуществления одного из способов, описанных в данном документе. Поток данных или последовательность сигналов, например, может быть выполнена с возможностью передачи через соединение для передачи данных, например, через Интернет.
Дополнительный вариант осуществления содержит средство обработки, например, компьютер или программируемое логическое устройство, выполненное с возможностью осуществления одного из способов, описанных в данном документе.
Дополнительный вариант осуществления содержит компьютер, имеющий установленную компьютерную программу для осуществления одного из способов, описанных в данном документе.
Дополнительный вариант осуществления согласно изобретению содержит оборудование или систему, выполненную с возможностью передачи (например, электронно или оптически) компьютерной программы для осуществления одного из способов, описанных в данном документе, в приемное устройство. Приемное устройство, например, может представлять собой компьютер, мобильное устройство, запоминающее устройство и т.п. Оборудование или система, например, может содержать файловый сервер для передачи компьютерной программы в приемное устройство.
В некоторых вариантах осуществления, программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может использоваться для выполнять части или всех из функциональностей способов, описанных в данном документе. В некоторых вариантах осуществления, программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором, чтобы осуществлять один из способов, описанных в данном документе. В общем, способы предпочтительно осуществляются посредством любого аппаратного оборудования.
Устройство, описанное в данном документе, может быть реализовано с использованием аппаратного оборудования либо с использованием компьютера, либо с использованием сочетания аппаратного устройства и компьютера.
Устройство, описанное в данном документе, или любые компоненты устройства, описанного в данном документе, могут быть реализованы по меньшей мере частично в аппаратном обеспечении и/или в программном обеспечении.