Настоящее изобретение относится к декодеру и к способу декодирования с выбором режима скрытия ошибок, а также к кодеру и к способу кодирования.
Битовые ошибки могут возникать в цепочке передачи между кодером и декодером. Необработанные битовые ошибки могут приводить к раздражающим артефактам; в силу этого множество аудиодекодеров просто инициируют скрытие потерь кадров/потерь пакетов (PLC) для полного кадра, что далее называется "скрытием потерь полных кадров (FFLC)", если битовые ошибки обнаруживаются в этом кадре. Зачастую, это позволяет достигать хорошего качества звука, в частности, когда сигнал является стационарным.
Стандарт MPEG-4 Part 3 Audio [1] задает категории чувствительности к ошибкам для рабочих данных потока битов AAC (таблица 4.94); таблица 1 показывает категории для основных AAC-данных. В частности, таблица 1 иллюстрирует категории чувствительности к ошибкам для AAC.
Таблица 1
В зависимости от искаженных классов, отдельные стратегии скрытия выбираются так, как обозначено в таблице 2. Таблица 2 иллюстрирует стратегии скрытия для категорий AAC-чувствительности к ошибкам.
Таблица 2
Стандарт MPEG-4 Part 3 Audio также указывает арифметическое кодирование с побитовым разделением на срезы (BSAC), которое обеспечивает возможность мелкозернистой масштабируемости с высоким числом слоев. Чтобы повышать устойчивость к ошибкам, введено сегментированное двоичное арифметическое (SBA) кодирование, которое группирует несколько слоев в сегменты. Арифметическое кодирование повторно инициализируется в начале каждого сегмента, чтобы обходить распространение ошибок.
Адаптивный выбор скрытия во временной области или в частотной области предлагается в [3]. В [3], описываются три способа обнаружения ошибок.
Первый способ обнаружения ошибок использует контроль циклическим избыточным кодом (CRC).
Второй способ обнаружения ошибок сравнивает длину рабочих данных потока битов, передаваемого из кодера, с длиной рабочих данных потока битов, выдаваемых в декодер.
Третий способ обнаружения ошибок сравнивает длину рабочих данных потока битов, передаваемого из кодера, с длиной потребленных битов в ходе процесса декодирования рабочих данных потока битов. В BSAC, 32 дополнительных бита или меньше могут декодироваться вследствие характеристик арифметического декодирования. Следовательно, если битовая разность превышает 32 бита, определяется то, что ошибка существует.
После этого в [3], описываются множество способов определения местоположения ошибок.
Согласно первому способу определения местоположения ошибок по [3], проводится сравнение спектральной энергии текущего кадра с этим из предыдущего кадра.
Согласно второму способу определения местоположения ошибок по [3], проводится анализ битов, выделяемых каждому слою декодированных рабочих данных потока битов, относительно числа битов, потребленных посредством арифметического декодера. Когда ошибки существуют в слое, большее или меньшее число битов может использоваться в арифметическом декодировании. Следовательно, слой с использованием большего или меньшего числа битов указывает высокую вероятность того, что ошибки существуют в этом слое или в предыдущем слое.
С учетом этого определения местоположения, различные стратегии скрытия предлагаются в [3]. Если обнаруженная позиция находится перед первой критической позицией, применяется скрытие во временной области. Если обнаруженная позиция находится после первой критической позиции, но перед второй критической позицией, применяется скрытие в частотной области. Если обнаруженная позиция находится после второй критической позиции, скрытие не применяется.
Различные технологии скрытия потерь кадров, доступные в частотной области, поясняются в [4]. В частности, подавление, повторение, замещение и прогнозирование шума упоминаются в [4].
Цель настоящего изобретения заключается в том, чтобы предоставлять усовершенствованные концепции для скрытия ошибок. Цель настоящего изобретения достигается посредством декодера по п. 1, посредством кодера по п. 28, посредством способа по п. 29, посредством способа по п. 30, посредством способа по п. 31, посредством компьютерной программы по п. 32, посредством кадра по п. 33.
Предоставляется декодер для декодирования кадра для того, чтобы восстанавливать часть сигнала для сигнала. Часть сигнала кодируется в кадре, при этом кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов. Декодер содержит модуль канального декодирования, выполненный с возможностью обнаруживать, в зависимости от двух или более избыточных битов, то, содержат или нет рабочие данные потока битов один или более поврежденных битов, представляющих собой одно или более из битов рабочих данных, которые искажаются или которые с большой вероятностью должны искажаться. Кроме того, декодер содержит модуль исходного декодирования. Если модуль канального декодирования не обнаруживает поврежденные биты в рабочих данных потока битов, модуль исходного декодирования выполнен с возможностью декодировать рабочие данные потока битов без проведения скрытия ошибок для того, чтобы восстанавливать часть сигнала. Если модуль канального декодирования обнаруживает один или более поврежденных битов в рабочих данных потока битов, модуль исходного декодирования выполнен с возможностью выбирать выбранный режим скрытия ошибок из двух или более режимов скрытия ошибок в зависимости от позиции, по меньшей мере, одного из одного или более поврежденных битов в рабочих данных потока битов и в зависимости от характеристики сигнала для части сигнала для сигнала и выполнен с возможностью проводить скрытие ошибок в зависимости от выбранного режима скрытия ошибок для того, чтобы восстанавливать часть сигнала.
Кроме того, предоставляется кодер. Кодер содержит модуль исходного кодирования для кодирования части сигнала для сигнала в кадре, при этом модуль исходного кодирования выполнен с возможностью формировать кадр таким образом, что кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, при этом кадр, сформированный посредством модуля исходного кодирования, является подходящим для обработки посредством вышеописанного декодера. Кроме того, кодер содержит модуль канального кодирования, выполненный с возможностью формировать два или более избыточных битов в зависимости от рабочих данных потока битов.
Кроме того, предоставляется способ для декодирования кадра для того, чтобы восстанавливать часть сигнала для сигнала. Часть сигнала кодируется в кадре, при этом кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов. Способ содержит:
- обнаружение, в зависимости от двух или более избыточных битов, того, содержат или нет рабочие данные потока битов один или более поврежденных битов, представляющих собой одно или более из битов рабочих данных, которые искажаются или которые с большой вероятностью должны искажаться.
- если поврежденные биты не обнаружены в рабочих данных потока битов, декодирование рабочих данных потока битов без проведения скрытия ошибок для того, чтобы восстанавливать часть сигнала, и
- если один или более поврежденных битов обнаружены в рабочих данных потока битов, выбор выбранного режима скрытия ошибок из двух или более режимов скрытия ошибок в зависимости от позиции, по меньшей мере, одного из одного или более поврежденных битов в рабочих данных потока битов и в зависимости от характеристики сигнала для части сигнала для сигнала и проведение скрытия ошибок в зависимости от выбранного режима скрытия ошибок для того, чтобы восстанавливать часть сигнала.
Кроме того, предоставляется другой способ. Способ содержит:
- кодирование части сигнала для сигнала в кадре, при этом кодер выполнен с возможностью формировать кадр таким образом, что кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, и
- проведение, с использованием кадра, вышеописанного способа для декодирования кадра.
Кроме того, предоставляется способ для кодирования части сигнала для сигнала в кадре. Способ содержит:
- формирование кадра таким образом, что кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, при этом кадр является подходящим для декодирования посредством вышеописанного способа для декодирования кадра, и
- формирование двух или более избыточных битов в зависимости от рабочих данных потока битов.
Кроме того, предоставляется компьютерная программа для реализации одного из вышеописанных способов, когда упомянутый способ осуществляется на компьютере или в процессоре сигналов.
Кроме того, предоставляется кадр, сформированный согласно вышеописанному способу для кодирования части сигнала для сигнала в кадре.
Далее подробнее описываются варианты осуществления настоящего изобретения со ссылкой на чертежи, на которых:
Фиг. 1 иллюстрирует декодер для декодирования кадра для того, чтобы восстанавливать часть сигнала для сигнала согласно варианту осуществления.
Фиг. 2 иллюстрирует кодер согласно варианту осуществления.
Фиг. 3 иллюстрирует систему согласно варианту осуществления.
Фиг. 4 иллюстрирует пример для анализа рабочих данных кодовых слов согласно варианту осуществления.
Фиг. 1 иллюстрирует декодер 100 для декодирования кадра для того, чтобы восстанавливать часть сигнала для сигнала согласно варианту осуществления.
Часть сигнала кодируется в кадре, при этом кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов.
Декодер 100 содержит модуль 110 канального декодирования, выполненный с возможностью обнаруживать, в зависимости от двух или более избыточных битов, то, содержат или нет рабочие данные потока битов один или более поврежденных битов, представляющих собой одно или более из битов рабочих данных, которые искажаются или которые с большой вероятностью должны искажаться.
Кроме того, декодер 100 содержит модуль 120 исходного декодирования.
Если модуль 110 канального декодирования не обнаруживает поврежденные биты в рабочих данных потока битов, модуль 120 исходного декодирования выполнен с возможностью декодировать рабочие данные потока битов без проведения скрытия ошибок для того, чтобы восстанавливать часть сигнала.
Если модуль 110 канального декодирования обнаруживает один или более поврежденных битов в рабочих данных потока битов, модуль 120 исходного декодирования выполнен с возможностью выбирать выбранный режим скрытия ошибок из двух или более режимов скрытия ошибок в зависимости от позиции, по меньшей мере, одного из одного или более поврежденных битов в рабочих данных потока битов и в зависимости от характеристики сигнала для части сигнала для сигнала и выполнен с возможностью проводить скрытие ошибок в зависимости от выбранного режима скрытия ошибок для того, чтобы восстанавливать часть сигнала.
Согласно варианту осуществления, модуль канального декодирования, например, может представлять собой модуль обнаружения ошибок и коррекции ошибок, выполненный с возможностью проводить коррекцию ошибок для рабочих данных потока битов до обнаружения того, содержат или нет рабочие данные потока битов один или более поврежденных битов.
В варианте осуществления, если модуль 110 канального декодирования определяет то, что он не может успешно проводить коррекцию ошибок для рабочих данных потока битов, модуль 110 канального декодирования, например, может быть выполнен с возможностью определять упомянутый один или более поврежденных битов в рабочих данных потока битов.
Согласно варианту осуществления, первый из двух или более режимов скрытия ошибок, например, может представлять собой режим скрытия потерь полных кадров. Если модуль 110 канального декодирования указывает то, что рабочие данные потока битов содержат один или более поврежденных битов, и если выбранный режим скрытия ошибок представляет собой режим скрытия потерь полных кадров, модуль 120 исходного декодирования, например, может быть выполнен с возможностью проводить скрытие ошибок без использования рабочих данных потока битов.
В варианте осуществления, второй из двух или более режимов скрытия ошибок, например, может представлять собой режим скрытия потерь частичных кадров. Если модуль 110 канального декодирования указывает то, что рабочие данные потока битов содержат один или более поврежденных битов, и если выбранный режим скрытия ошибок представляет собой режим скрытия потерь частичных кадров, модуль 120 исходного декодирования, например, может быть выполнен с возможностью получать декодированный сигнал посредством декодирования других битов из битов рабочих данных, которые не указываются посредством модуля 110 канального декодирования в качестве одного или более поврежденных битов без проведения скрытия ошибок для других битов, и посредством проведения скрытия ошибок для одного или более битов рабочих данных, которые указываются посредством модуля 110 канального декодирования в качестве одного или более поврежденных битов.
Согласно варианту осуществления, два или более режимов скрытия ошибок, например, могут содержать точно два режима скрытия ошибок, при этом первый из точно двух режимов скрытия ошибок, например, может представлять собой режим скрытия потерь полных кадров, при этом второй из точно двух режимов скрытия ошибок представляет собой режим скрытия потерь частичных кадров.
В варианте осуществления, рабочие данные потока битов, например, могут сегментироваться на первую часть множества битов рабочих данных для рабочих данных потока битов и на вторую часть множества битов рабочих данных для рабочих данных потока битов. Если модуль 110 канального декодирования указывает то, что рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть рабочих данных потока битов содержит, по меньшей мере, один из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок. Если модуль 110 канального декодирования указывает то, что рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать выбранный режим скрытия ошибок в зависимости от характеристики сигнала для части сигнала для сигнала.
Согласно варианту осуществления, кадр представляет собой текущий кадр, при этом рабочие данные потока битов представляют собой текущие рабочие данные потока битов, при этом множество битов рабочих данных представляют собой множество текущих битов рабочих данных, при этом часть сигнала для сигнала представляет собой часть текущего сигнала для сигнала, и при этом характеристика сигналов представляет собой характеристику текущего сигнала. Если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать выбранный режим скрытия ошибок из двух или более режимов скрытия ошибок в зависимости от характеристики текущего сигнала для части текущего сигнала для сигнала, кодируемого посредством множества текущих битов рабочих данных текущего кадра, и в зависимости от характеристики предыдущего сигнала для части предыдущего сигнала для сигнала, кодируемого посредством множества предыдущих битов рабочих данных для предыдущих рабочих данных потока битов предыдущего кадра.
В варианте осуществления, часть текущего сигнала для сигнала, кодируемого посредством множества текущих битов рабочих данных для текущих рабочих данных потока битов, например, может составлять часть текущего аудиосигнала для аудиосигнала, и часть предыдущего сигнала для сигнала, кодируемого посредством множества предыдущих битов рабочих данных для предыдущих рабочих данных потока битов, например, может составлять часть предыдущего аудиосигнала для аудиосигнала. Текущие рабочие данные потока битов, например, могут кодировать множество спектральных линий части текущего аудиосигнала.
В варианте осуществления, если поврежденные биты затрагивают только остаточные биты, то скрытие ошибок не выполняется, и кадр декодируется в качестве нормального кадра без учета поврежденных остаточных битов.
Коэффициент стабильности представляет подобие между двумя сигналами, например, между текущим сигналом и предшествующим сигналом. Например, коэффициент стабильности, например, может ограничиваться посредством [0:1]. Коэффициент стабильности, близкий к 1 или равный 1, например, может означать то, что оба сигнала являются почти идентичными, и коэффициент стабильности, близкий к 0 или равный 0, например, может означать то, что оба сигнала являются существенно отличающимися. Подобие, например, может вычисляться для спектральных огибающих двух аудиосигналов.
В варианте осуществления, скрытие потерь полных кадров проводится, если коэффициент стабильности ниже порогового значения, например, порогового значения в 0,5.
Согласно варианту осуществления, если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если предыдущий кадр скрыт с использованием скрытия потерь полных кадров.
В варианте осуществления, если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует частоту, меньшую или равную пороговой частоте.
Согласно варианту осуществления, если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если коэффициент стабильности меньше предварительно заданного порогового значения, при этом упомянутый коэффициент стабильности указывает стабильность части текущего аудиосигнала и части предыдущего аудиосигнала. Например, предварительно заданное пороговое значение, например, может быть равным 0,5.
Согласно варианту осуществления, при этом если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если предыдущий кадр скрыт с использованием скрытия потерь полных кадров; или если коэффициент стабильности меньше предварительно заданного порогового значения, при этом упомянутый коэффициент стабильности указывает стабильность части текущего аудиосигнала и части предыдущего аудиосигнала. Например, предварительно заданное пороговое значение, например, может быть равным 0,5.
В варианте осуществления, если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала представляет упомянутую частоту, меньшую или равную упомянутой пороговой частоте, и если первая часть текущих рабочих данных потока битов кодирует сигнальный компонент аудиосигнала, который является тональным или гармоническим, и если часть предыдущего сигнала кодирует, по меньшей мере, один пик аудиосигнала, превышающий пиковое пороговое значение, которое соответствует частоте, превышающей все частоты, указываемые посредством множества спектральных линий части текущего аудиосигнала.
В другом варианте осуществления, основной тон аудиосигнала, например, может демонстрировать частоту основного тона. Если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала представляет упомянутую частоту, меньшую или равную упомянутой пороговой частоте, и если первая часть текущих рабочих данных потока битов кодирует сигнальный компонент аудиосигнала, который является тональным или гармоническим, и если все частоты, указываемые посредством множества спектральных линий части текущего аудиосигнала, меньше максимальной поддерживаемой частоты основного тона.
В варианте осуществления, скрытие потерь полных кадров проводится, если коэффициент стабильности выше или равен пороговому значению, например, пороговому значению в 0,5, и если рабочие данные потока битов не кодируют сигнальный компонент аудиосигнала, который является тональным или гармоническим, и если соотношение между энергией от 0 до частотного элемента kbe-1 разрешения предыдущего квантованного спектра предыдущего аудиосигнала к энергии от 0 до начала предыдущего квантованного спектра предыдущего аудиосигнала ниже второго порогового значения, например, второго порогового значения в 0,3.
Согласно варианту осуществления, если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь частичных кадров в качестве выбранного режима скрытия ошибок, если предыдущий кадр не скрыт с использованием скрытия потерь полных кадров, и если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует частоту, превышающую упомянутую пороговую частоту.
В варианте осуществления, если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь частичных кадров в качестве выбранного режима скрытия ошибок, если предыдущий кадр не скрыт с использованием скрытия потерь полных кадров, и если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует упомянутую частоту, превышающую упомянутую пороговую частоту, и если упомянутый коэффициент стабильности превышает или равен упомянутому предварительно заданному пороговому значению, и если первая часть текущих рабочих данных потока битов не кодирует сигнальный компонент аудиосигнала, который является тональным или гармоническим, и если соотношение между энергией от 0 до частотного элемента kbe-1 разрешения предыдущего квантованного спектра предыдущего аудиосигнала к энергии от 0 до начала предыдущего квантованного спектра предыдущего аудиосигнала превышает или равно упомянутому пороговому значению соотношения.
Согласно варианту осуществления, если модуль 110 канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать режим скрытия потерь частичных кадров в качестве выбранного режима скрытия ошибок, если предыдущий кадр не скрыт с использованием скрытия потерь полных кадров, и если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует упомянутую частоту, превышающую упомянутую пороговую частоту, и если упомянутый коэффициент стабильности превышает или равен упомянутому предварительно заданному пороговому значению, если первая часть текущих рабочих данных потока битов кодирует сигнальный компонент, который является тональным или гармоническим, и если упомянутая наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует частоту, превышающую частоту основного тона, и если часть предыдущего сигнала не кодирует пик аудиосигнала, превышающий упомянутое пиковое пороговое значение, который соответствует упомянутой частоте, превышающей все частоты, указываемые посредством множества спектральных линий части текущего аудиосигнала.
В варианте осуществления, если выбранный режим скрытия ошибок представляет собой режим скрытия потерь частичных кадров, модуль 120 исходного декодирования, например, может быть выполнен с возможностью определять, для каждого кодового слова из множества кодовых слов второй части рабочих данных потока битов, в зависимости от числа скорректированных символов упомянутого кодового слова, то, следует или нет проводить скрытие ошибок для тех из множества спектральных линий части текущего аудиосигнала, которые представляются посредством упомянутого кодового слова, и то, следует или нет проводить скрытие ошибок для упомянутых тех из множества спектральных линий части текущего аудиосигнала, для которых модуль 120 исходного декодирования определяет то, что скрытие ошибок должно проводиться.
Согласно варианту осуществления, для каждого кодового слова из множества кодовых слов второй части рабочих данных потока битов, модуль 120 исходного декодирования, например, может быть выполнен с возможностью определять значение риска, указывающее аппроксимацию вероятности того, что упомянутое кодовое слово повреждено, и определять то, превышает или нет упомянутое значение риска пороговое значение риска.
В варианте осуществления, модуль 120 исходного декодирования, например, может быть выполнен с возможностью определять значение риска дополнительно в зависимости от режима кодирования с прямой коррекцией ошибок.
Согласно варианту осуществления, пороговое значение риска, например, может составлять 2-16.
В других вариантах осуществления, другое пороговое значение риска, например, может использоваться, к примеру:
2-12, или к примеру, 2-18, или к примеру, 2-20.
В варианте осуществления, модуль 120 исходного декодирования, например, может быть выполнен с возможностью вычислять значение риска, например, следующим образом:
.
- при этом m указывает ep-режим (например, режим кодирования с прямой коррекцией ошибок), и при этом τ указывает число ошибок в символах (например, число скорректированных символов).
Вышеприведенная формула, например, может быть допустимой для m=2, 3, 4 и θ=0, ..., m-1.
В других вариантах осуществления, модуль 120 исходного декодирования, например, может быть выполнен с возможностью использовать таблицу поиска для того, чтобы определять значение риска в зависимости от числа ошибок в символах (например, числа скорректированных символов) и в зависимости от ep-режима (например, режима кодирования с прямой коррекцией ошибок).
Например, в варианте осуществления, к примеру, может использоваться следующая таблица поиска:
ep-режим/число ошибок 0 1 2 3
3 2^-16 13385*2^-22 20475*2^-16 недоступен
4 2^-24 13385*2^-30 20475*2^-24 19195*2^-18
В вышеприведенном примере, когда, например, используется пороговое значение риска в 2-16, из этого следует, что в ep-режиме 3, ошибки не разрешаются, а в ep-режиме 4, самое большее 1 ошибка разрешается.
В других вариантах осуществления, таблица поиска может принимать различные значения для значения риска, для ep-режима и для числа ошибок (например, с учетом даже большего числа ошибок в 4, 5, 6 и т.д. или только меньшего числа ошибок).
В других вариантах осуществления, значение риска, например, может определяться посредством длины кодовых слов или другим способом.
Например, некоторые варианты осуществления, например, могут использовать другое вычисление значения риска, к примеру:
, или к примеру:
.
Кроме того, дополнительные варианты осуществления, например, могут зависеть только от числа ошибок в символах, но не от режима кодирования с прямой коррекцией ошибок.
Например, в таких вариантах осуществления, значение риска, например, может вычисляться следующим образом:
или согласно следующему:
или согласно следующему:
.
В варианте осуществления, если упомянутое значение риска превышает упомянутое пороговое значение риска, модуль 120 исходного декодирования, например, может быть выполнен с возможностью проводить скрытие ошибок для тех из множества спектральных линий части текущего аудиосигнала, которые представляются посредством упомянутого кодового слова.
В варианте осуществления, модуль 120 исходного декодирования выполнен с возможностью проводить упомянутое скрытие ошибок для упомянутого кодового слова в режиме скрытия ошибок потерь частичных кадров.
Согласно варианту осуществления, модуль 110 канального декодирования, например, может быть выполнен с возможностью обнаруживать то, что рабочие данные потока битов содержат один или более поврежденных битов, если модуль 110 канального декодирования встречает некорректируемое кодовое слово в рабочих данных потока битов, и/или если модуль 110 канального декодирования, после проведения коррекции ошибок для множества кодовых слов рабочих данных потока битов, определяет повторно вычисленное хэш-значение, которое зависит от упомянутого множества кодовых слов после коррекции ошибок, которое отличается от принимаемого хэш-значения.
Фиг. 2 иллюстрирует кодер 150 согласно варианту осуществления.
Кодер 150 содержит модуль 160 исходного кодирования для кодирования части сигнала для сигнала в кадре, при этом модуль 160 исходного кодирования выполнен с возможностью формировать кадр таким образом, что кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, при этом кадр, сформированный посредством модуля 160 исходного кодирования, является подходящим для обработки посредством вышеописанного декодера 100.
Кроме того, кодер 150 содержит модуль 170 канального кодирования, выполненный с возможностью формировать два или более избыточных битов в зависимости от рабочих данных потока битов.
Фиг. 3 иллюстрирует систему 190 согласно варианту осуществления.
Система 190 содержит кодер 150 по фиг. 2 для кодирования части сигнала для сигнала в кадре, при этом кодер 150 выполнен с возможностью формировать кадр таким образом, что кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов.
Кроме того, система 190 содержит декодер 100 по фиг. 1.
Ниже по тексту описываются концепции решения по выбору режима согласно вариантам осуществления. В частности, описываются решение по выбору режима и применение концепций скрытия битовых ошибок.
Некоторые варианты осуществления основаны на таких выявленных сведениях, что вместо использования скрытия потерь полных кадров, когда сигнал является нестационарным, и битовые ошибки появляются только в психоакустически менее важных сигнальных данных, скрытие потерь частичных кадров (PFLC), т.е. скрытие только искаженных данных должно быть предпочтительным, поскольку артефакты скрытия в таком случае должны только демонстрироваться в психоакустически менее важной части, приводя к лучшему качеству звучания.
В некоторых вариантах осуществления, чтобы достигать наилучшего качества звучания в ухудшенной в силу битовых ошибок передаче, решение по выбору режима изобретается с возможностью выбирать между FFLC и PFLC. Это решение зависит от правдоподобия ошибки в психоакустически более важных сигнальных данных и характеристики сигналов последнего и текущего кадра.
Решение в отношении того, следует применять скрытие потерь полных кадров или скрытие потерь частичных кадров, представляет собой объединенное решение в виде канального кодирования и исходного кодирования.
Модуль канального декодирования предлагает применять:
- Скрытие потерь полных кадров, если биты в более чувствительной части рабочих данных потока битов с большой вероятностью должны быть поврежденными, независимо от возможности ошибок в менее чувствительной части рабочих данных потока битов.
- Скрытие потерь частичных кадров, если биты в более чувствительной части потока битов с большой вероятностью должны быть корректными, но если биты в менее чувствительной части рабочих данных потока битов с большой вероятностью должны быть поврежденными.
Правдоподобие повреждения определенной части потока битов предоставляется посредством модуля канального декодирования. Канальное кодирование выполняется с использованием блочных кодов. Помимо возможностей коррекции ошибок, оно также предоставляет другие возможности обнаружения ошибок. Дополнительно, отдельные хэши извлекаются в больше и менее чувствительной части потока битов. Оценка этих хэшей предоставляет дополнительную достоверность относительно вышеуказанного правдоподобия.
Ниже описывается исходное кодирование, например, если канальное кодирование выбирает скрытие потерь частичных кадров.
В варианте осуществления, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать необходимость применять скрытие потерь полных кадров:
- если предыдущий кадр скрыт со скрытием потерь полных кадров, или
- если наибольшая спектральная линия в квантованном спектре представляет частоту, меньшую или равную пороговой частоты (т.е. 2 кГц), и
- стабильность текущего и последнего сигнала ниже данного порогового значения, или
- основной тон передается (в более чувствительных рабочих данных потока битов), и
- наибольшая доступная спектральная линия в квантованном спектре представляет частоту, меньшую частоты основного тона, или
- имеются релевантные пики в части предыдущего декодированного спектра выше наибольшей доступной спектральной линии, или
- основной тон не передается (в более чувствительных рабочих данных потока битов), и недостаточно спектральных линий доступно в квантованном спектре.
Напротив, модуль 120 исходного декодирования, например, может быть выполнен с возможностью выбирать необходимость применять скрытие потерь частичных кадров:
- если предыдущий кадр не скрыт со скрытием потерь полных кадров, и
- если наибольшая спектральная линия в квантованном спектре представляет частоту, большую пороговой частоты (т.е. 2 кГц), или
- если стабильность текущего и последнего сигнала выше или равна данному пороговому значению, и
- если основной тон не передается, и, по меньшей мере, определенное количество спектральных линий доступно в квантованном спектре, или
- если основной тон передается, и
- наибольшая доступная спектральная линия в квантованном спектре представляет частоту, большую частоты основного тона, и
- отсутствуют релевантные пики в части предыдущего декодированного спектра выше наибольшей доступной спектральной линии.
Такое варианты осуществления основаны на таких выявленных сведениях, что скрытие полных кадров на основе основного тона, такое как скрытие во временной области, например, может применяться, если сигнал является стационарным и монофоническим (указывается посредством доступного основного тона), и извлеченный спектр не является характерным (указывается, по меньшей мере, посредством одного из двух вышеуказанных критериев), поскольку при этих условиях он предоставляет, в общем, лучшие результаты, чем скрытие потерь частичных кадров.
Скрытие потерь частичных кадров, например, может применяться, если сигнал является нестационарным или полифоническим (указывается посредством отсутствующего основного тона), либо если сигнал является стационарным и монофоническим (указывается посредством доступного основного тона), и извлеченный спектр является характерным (указывается посредством двух вышеуказанных критериев), поскольку при этих условиях он предоставляет, в общем, лучшие результаты, чем скрытие потерь полных кадров.
Ниже по тексту подробнее описываются концепции решения по выбору режима согласно некоторым вариантам осуществления.
В некоторых вариантах осуществления, часть потока битов, обозначенная для скрытия потерь частичных кадров, например, может кодироваться в нескольких кодовых словах и, помимо этого, защищаться в целом посредством хэш-значения, которое, например, может передаваться в модуль канального декодирования наряду с потоком битов. Каждый код, например, может иметь определенные возможности коррекции ошибок. В вариантах осуществления, модуль канального декодирования, например, может сначала пытаться выполнять коррекцию ошибок для обозначенных кодовых слов, за счет этого отслеживая число скорректированных символов для каждого из них.
В таких вариантах осуществления, если не все ошибки скорректированы, либо если вероятно то, что не все ошибки скорректированы, то соответствующий режим скрытия ошибок должен выбираться, и скрытие ошибок должно проводиться в зависимости от выбранного режима скрытия ошибок.
В некоторых вариантах осуществления, скрытие потерь частичных кадров, например, может инициироваться, если встречается некорректируемое кодовое слово; либо если все кодовые слова скорректированы, и повторно вычисленное хэш-значение не совпадает с принимаемым хэш-значением.
Последний, например, имеет место, если модуль канального декодирования ошибочно корректирует принимаемые кодовые слова, которые повреждены за пределами возможностей коррекции ошибок, предоставленных посредством базового кода.
Если один из этих случаев возникает, далее выполняется анализ отдельных кодовых слов.
Посредством оценки числа скорректированных символов для каждого кодового слова, определяется то, может или нет по-прежнему быть доверенной подчасть из части потока битов, обозначаемой для скрытия потерь частичных кадров. Для этого, оценивается вероятность извлечения случайного слова, которое может корректироваться таким образом, что оно представляет собой допустимое кодовое слово с данным числом модифицированных символов (которое, например, может называться "значением риска"). Если эта вероятность составляет выше определенного порогового значения (например, 2^{16}) (которое, например, может называться "пороговым значением риска"), соответствующая зона потока битов помечается как поврежденная, иначе она трактуется как корректная. Это означает то, что часть, указываемая для скрытия со скрытием потерь частичных кадров (кодовые слова, помеченные как поврежденные), сжимается. Это приводит к лучшему качеству звучания, поскольку биты, помеченные как корректные из части потока битов, обозначенной для скрытия потерь частичных кадров, могут использоваться посредством декодера 100 совместно с битами из потока битов, представляющего психоакустически более важные сигнальные данные.
Фиг. 4 иллюстрирует примеры для анализа рабочих данных кодовых слов согласно варианту осуществления.
В примере по фиг. 4, отображаются 16 кодовых слов (с номерами 1-16), при этом крестообразные блоки 210 и 230 соответствуют более чувствительной части потока битов, тогда как другие блоки (блоки 220, 222, 223) соответствуют менее чувствительной части, обозначенной для скрытия потерь частичных кадров. В проиллюстрированных кодовых словах 7-12, отображаются числа скорректированных символов.
Можно предполагать, что число скорректированных символов вплоть до "1" оставляет вероятность обнаружения ошибок ниже порогового значения, и число скорректированных символов выше "1" оставляет вероятность обнаружения ошибок выше порогового значения.
В примере по фиг. 4, кодовые слова с номерами, меньшими или равными "1", помечаются как корректные (кодовые слова 7, 8, 9 и 12: в форме "слева снизу вправо вверх"), и оставшиеся кодовые слова, т.е. кодовые слова с номерами больше "1" помечаются как поврежденные (кодовые слова: 10 и 11: в форме "слева сверху вправо вниз"), см. фиг. 4. В данном примере на фиг. 4, это означает то, что по-прежнему может декодироваться часть сигнала, кодированная в кодовых словах 7, 8, 9 и 12, и только часть сигнала, кодированная в кодовых словах 10 и 11, должна скрываться посредством скрытия потерь частичных кадров.
В варианте осуществления, декодер 100, например, может применять скрытие потерь полных кадров (FFLC, если предыдущий кадр скрыт со скрытием потерь кадров, либо для следующих пяти событий (события 1-5):
Событие 1: Если биты в более чувствительной части рабочих данных потока битов с большой вероятностью должны быть поврежденными.
Событие 2: Если стабильность текущего и последнего сигнала ниже 0,5 в варианте осуществления для LC3, стабильность задается посредством коэффициента θ стабильности, который вычисляется следующим образом:
- при этом:
- scfQcurr указывает вектор коэффициентов масштабирования текущего кадра, и
- scfQprev указывает вектор коэффициентов масштабирования предыдущего кадра,
- N указывает число коэффициентов масштабирования в векторах коэффициентов масштабирования,
- θ указывает коэффициент стабильности, который ограничивается посредством ,
- k указывает индекс для вектора коэффициентов масштабирования.
Событие 3: Если коэффициент стабильности выше или равен 0,5, и если основной тон отправляется в более чувствительных рабочих данных потока битов, и наибольшая доступная спектральная линия в квантованном спектре представляет частоту, меньшую (в зависимости от используемого варианта осуществления): максимальной возможной частоты основного тона; или частоты основного тона, отправленной в более чувствительных рабочих данных потока битов.
Событие 4: Если коэффициент стабильности является более высоким или равным 0,5, и если основной тон отправляется в более чувствительных рабочих данных потока битов, и kbe, который является первым спектральным элементом разрешения, который не может восстанавливаться в менее чувствительных рабочих данных потока битов, ниже вычисленного kpeak индекса спектрального элемента разрешения.
Этот индекс соответствует наибольшему релевантному пику в предыдущем декодированном спектре и определяется через алгоритм детектора пиков. Реализация детектора пиков показывается в нижеприведенном примерном псевдокоде:
function[kpeak]=pc_peak_detector( , NF)
block_size=3;
thresh1=8;
fac=0,3;
mean_block_nrg=mean( .^2);
maxPeak=0;
kpeak=0;
if abs( (0))>abs( (1))
block_cent=sum( (0:1).^2);
if block_cent/block_size>thresh1*mean_block_nrg
cur_max=max(abs( (0:1)));
next_max=max(abs( (2:2+block_size-1)));
if cur_max>next_max
maxPeak=block_cent;
kpeak=1;
for k=0:block_size-1
if abs( (k+1))>=abs( (k)) andand abs( (k+1))>=abs( (k+2))
block_cent=sum( (k:k+block_size-1).^2);
if block_cent/block_size>thresh1*mean_block_nrg
cur_max=max(abs( (k:k+block_size-1)));
prev_max=0;
for j=k-block_size:k-1
if j>0
prev_max=max(abs( (j)), prev_max);
next_max=max(abs( (k+block_size:k+2*block_size-1)));
if cur_max>=prev_max andand cur_max>next_max
if block_cent>fac*maxPeak
kpeak=k+block_size-1;
if block_cent>=maxPeak
maxPeak=block_cent;
for k=block_size...NF-(2*block_size)
if abs( (k+1))>=abs( (k)) andand abs( (k+1))>=abs( (k+2))
block_cent=sum( (k:k+block_size-1).^2);
if block_cent/block_size>thresh1*mean_block_nrg
cur_max=max(abs( (k:k+block_size-1)));
prev_max=max(abs( (k-block_size:k-1)));
next_max=max(abs( (k+block_size:k+2*block_size-1)));
if cur_max>=prev_max andand cur_max>next_max
f block_cent>fac*maxPeak
kpeak=k+block_size-1;
if block_cent>=maxPeak
maxPeak=block_cent;
где:
- k указывает спектральный элемент разрешения,
- NF указывает число спектральных линий, и
- указывает декодированный спектр последнего не-FFLC-кадра.
Событие 5: Если коэффициент стабильности является выше или равен 0,5, и если основной тон не отправляется в более чувствительных рабочих данных потока битов, и соотношение между частичным к полной энергии, вычисленной для последнего квантованного спектра, ниже 0,3:
- при этом:
- k указывает спектральный элемент разрешения,
- kbe указывает первый спектральный элемент разрешения, который не может восстанавливаться,
- NF указывает число спектральных линий,
- указывает квантованный спектр последнего не-FFLC-кадра.
Если ни одно из пяти событий не инициируется, либо предыдущий кадр не скрыт со скрытием потерь полных кадров, и первый спектральный элемент разрешения, который не может восстанавливаться, выше порогового значения (т.е. представляющего частоту в 2 кГц), скрытие потерь частичных кадров (PFLC) должно применяться.
Нижеприведенный примерный псевдокод представляет вышеприведенное описание:
#if 1 /* выбор предпочтительного варианта осуществления посредством 0 или 1 */
pitchThresholdBin=maxPitchBin;
#else
pitchThresholdBin=currPitchBin;
#endif
concealMode=PFLC;
if prevBfi==FFLC;
concealMode=FFLC;
else if kbe<bandwidth
if θ<0,5
concealMode=FFLC;
else if pitch_present==1
kpeak=pc_peak_detector( , NF);
if (kbe<kpeak || kbe<pitchThresholdBin)
concealMode=FFLC;
else
part_nrg=sum( (0:kbe-1).^2);
full_nrg=sum( (0:NF-1).^2);
if (part_nrg<0,3*full_nrg)
concealMode=FFLC;
где:
- prevBfi - указывает способ скрытия в предыдущем кадре, если применяется,
- concealMode - указывает то, FFLC или PFLC должно применяться,
- pitch_present - указывает то, присутствует или нет основной тон в текущем кадре,
- pitchThresholdBin - указывает элемент разрешения, который должен быть, по меньшей мере, доступным для того, чтобы выполнять PFLC,
- currPitchBin - указывает текущий основной тон,
- maxPitchBin - указывает наибольшее (максимальное) значение основного тона, которое поддерживается,
- bandwidth - указывает элемент разрешения полосы пропускания, который должен быть, по меньшей мере, доступным для того, чтобы не анализировать пять условий,
- kpeak - первый спектральный элемент разрешения, который не может восстанавливаться,
- NF - число спектральных линий,
- - декодированный спектр последнего не-FFLC-кадра,
- - квантованный спектр последнего не-FFLC-кадра.
Ниже по тексту описывается карта Карно для выбора способа скрытия в зависимости от исходного кодирования.
Предусмотрено пять условий, которые совместно определяют то, какой способ скрытия должен применяться. Они в дальнейшем назначаются логическим переменным следующим образом:
A = "Первая часть текущих рабочих данных потока битов не кодирует сигнальный компонент, который является тональным или гармоническим"
b = "Соотношение между энергией от 0 до частотного элемента kbe-1 разрешения предыдущего квантованного спектра и энергией от 0 до начала предыдущего квантованного спектра превышает или равно пороговому значению"
C = "Коэффициент стабильности выше или равен пороговому значению"
D = "Все частоты меньше частоты основного тона или максимальной поддерживаемой частоты основного тона"
e = "Часть предыдущего сигнала кодирует, по меньшей мере, один пик аудиосигнала, превышающего пиковое пороговое значение"
С использованием этих переменных, K-карта с 32 (=25) ячейками создается так, как проиллюстрировано в таблице 3.
Таблица 3
Таблица 3 иллюстрирует то, что K-карта с 32 ячейками графически показывает логическое инициирование любой из способов скрытия.
Соответствующие булевы уравнения являются следующими:
PFLC(1) = a'cd'e'+abc=c(a'd'e'+ab)
FFLC(0) = ab'+c'+a'e+a'd=ab'+c'+a'(e+d)
Хотя некоторые аспекты описаны в контексте оборудования, очевидно, что эти аспекты также представляют описание соответствующего способа, при этом блок или устройство соответствует этапу способа либо признаку этапа способа. Аналогично, аспекты, описанные в контексте этапа способа, также представляют описание соответствующего блока или элемента, или признака соответствующего оборудования. Некоторые или все этапы способа могут выполняться посредством (или с использованием) аппаратного оборудования, такого как, например, микропроцессор, программируемый компьютер либо электронная схема. В некоторых вариантах осуществления, один или более из самых важных этапов способа могут выполняться посредством этого оборудования.
В зависимости от определенных требований к реализации, варианты осуществления изобретения могут реализовываться в аппаратных средствах либо в программном обеспечении, либо, по меньшей мере, частично в аппаратных средствах, либо, по меньшей мере, частично в программном обеспечении. Реализация может выполняться с использованием цифрового носителя хранения данных, например, гибкого диска, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM или флэш-памяти, имеющего сохраненные электронно считываемые управляющие сигналы, которые взаимодействуют (или допускают взаимодействие) с программируемой компьютерной системой таким образом, что осуществляется соответствующий способ. Следовательно, цифровой носитель хранения данных может быть машиночитаемым.
Некоторые варианты осуществления согласно изобретению содержат носитель данных, имеющий электронночитаемые управляющие сигналы, которые допускают взаимодействие с программируемой компьютерной системой таким образом, что осуществляется один из способов, описанных в данном документе.
В общем, варианты осуществления настоящего изобретения могут реализовываться как компьютерный программный продукт с программным кодом, при этом программный код выполнен с возможностью осуществления одного из способов, когда компьютерный программный продукт работает на компьютере. Программный код, например, может сохраняться на машиночитаемом носителе.
Другие варианты осуществления содержат компьютерную программу для осуществления одного из способов, описанных в данном документе, сохраненную на машиночитаемом носителе.
Другими словами, вариант осуществления изобретаемого способа в силу этого представляет собой компьютерную программу, имеющую программный код для осуществления одного из способов, описанных в данном документе, когда компьютерная программа работает на компьютере.
Следовательно, дополнительный вариант осуществления изобретаемых способов представляет собой носитель хранения данных (цифровой носитель хранения данных или машиночитаемый носитель), содержащий записанную компьютерную программу для осуществления одного из способов, описанных в данном документе. Носитель данных, цифровой носитель хранения данных или носитель с записанными данными типично является материальным и/или энергонезависимым.
Следовательно, дополнительный вариант осуществления изобретаемого способа представляет собой поток данных или последовательность сигналов, представляющих компьютерную программу для осуществления одного из способов, описанных в данном документе. Поток данных или последовательность сигналов, например, может быть выполнена с возможностью передачи через соединение для передачи данных, например, через Интернет.
Дополнительный вариант осуществления содержит средство обработки, например, компьютер или программируемое логическое устройство, выполненное с возможностью осуществлять один из способов, описанных в данном документе.
Дополнительный вариант осуществления содержит компьютер, имеющий установленную компьютерную программу для осуществления одного из способов, описанных в данном документе.
Дополнительный вариант осуществления согласно изобретению содержит оборудование или систему, выполненную с возможностью передавать (например, электронно или оптически) компьютерную программу для осуществления одного из способов, описанных в данном документе, в приемное устройство. Приемное устройство, например, может представлять собой компьютер, мобильное устройство, запоминающее устройство и т.п. Оборудование или система, например, может содержать файловый сервер для передачи компьютерной программы в приемное устройство.
В некоторых вариантах осуществления, программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может использоваться для того, чтобы выполнять часть или все из функциональностей способов, описанных в данном документе. В некоторых вариантах осуществления, программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором, чтобы осуществлять один из способов, описанных в данном документе. В общем, способы предпочтительно осуществляются посредством любого аппаратного оборудования.
Оборудование, описанное в данном документе, может реализовываться с использованием аппаратного оборудования либо с использованием компьютера, либо с использованием комбинации аппаратного оборудования и компьютера.
Способы, описанные в данном документе, могут осуществляться с использованием аппаратного оборудования либо с использованием компьютера, либо с использованием комбинации аппаратного оборудования и компьютера.
Вышеописанные варианты осуществления являются просто иллюстративными в отношении принципов настоящего изобретения. Следует понимать, что модификации и изменения компоновок и подробностей, описанных в данном документе, должны быть очевидными для специалистов в данной области техники. Следовательно, они подразумеваются как ограниченные только посредством объема нижеприведенной формулы изобретения, а не посредством конкретных подробностей, представленных посредством описания и пояснения вариантов осуществления в данном документе.
Библиографический список
1. ISO/IEC14496-3 MPEG-4 Information technology - Coding of audio-visual objects - Part 3: Audio, 2009 год.
2. R. Sperschneider, D. Homm и L.-H. Chambat "Error Resilient Source Coding with Differential Variable Length Codes and its Application to MPEG Advance Audio Coding", in Audio Engineering Societey, Мюнхен, 2002 год.
3. E.-m. Oh, H.-s. Sung, K.-h. Choo и J.-h. Kim "Method and apparatus to conceal error in decoded audio signal", Патент US8,798,172 B2, 22 ноября 2007 года.
4. P. Lauber и R. Sperschneider "Error Concealment for Compressed Digital Audio", in Audio Engineering Society, 2001 год.
Изобретение относится к средствам для кодирования и декодирования аудио. Технический результат заключается в повышении эффективности кодирования. Обнаруживают, в зависимости от двух или более избыточных битов, то, содержат или нет рабочие данные потока битов один или более поврежденных битов, представляющих собой по меньшей мере один бит рабочих данных, для которого существует вероятность, превышающая пороговое значение, что указанный по меньшей мере один бит рабочих данных искажен. Если поврежденные биты не обнаружены в рабочих данных потока битов, декодируют рабочие данные потока битов без проведения скрытия ошибок для того, чтобы восстанавливать часть сигнала. Если один или более поврежденных битов обнаружены в рабочих данных потока битов, выбирают выбранный режим скрытия ошибок из двух или более режимов скрытия ошибок в зависимости от позиции, по меньшей мере, одного из одного или более поврежденных битов в рабочих данных потока битов и в зависимости от характеристики сигнала для части сигнала. Проводят скрытие ошибок в зависимости от выбранного режима скрытия ошибок для того, чтобы восстанавливать часть сигнала. 7 н. и 25 з.п. ф-лы, 4 ил., 3 табл.
1. Декодер (100) для декодирования кадра для восстановления части сигнала для сигнала, при этом часть сигнала кодируется в кадре, при этом кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, при этом декодер (100) содержит:
модуль (110) канального декодирования, выполненный с возможностью обнаруживать, в зависимости от двух или более избыточных битов, то, содержат или нет рабочие данные потока битов один или более поврежденных битов, представляющих собой одно или более из битов рабочих данных, которые искажены или которые представляют собой по меньшей мере один бит рабочих данных, для которого существует вероятность, превышающая пороговое значение, что указанный по меньшей мере один бит рабочих данных искажен,
модуль (120) исходного декодирования,
при этом если модуль (110) канального декодирования не обнаруживает поврежденные биты в рабочих данных потока битов, модуль (120) исходного декодирования выполнен с возможностью декодировать рабочие данные потока битов без проведения скрытия ошибок для того, чтобы восстанавливать часть сигнала,
при этом если модуль (110) канального декодирования обнаруживает один или более поврежденных битов в рабочих данных потока битов, модуль (120) исходного декодирования выполнен с возможностью выбирать выбранный режим скрытия ошибок из двух или более режимов скрытия ошибок в зависимости от позиции, по меньшей мере, одного из одного или более поврежденных битов в рабочих данных потока битов и в зависимости от характеристики сигнала для части сигнала для сигнала и выполнен с возможностью проводить скрытие ошибок в зависимости от выбранного режима скрытия ошибок для того, чтобы восстанавливать часть сигнала.
2. Декодер (100) по п. 1,
в котором модуль (110) канального декодирования представляет собой модуль обнаружения ошибок и коррекции ошибок, выполненный с возможностью проводить коррекцию ошибок для рабочих данных потока битов до обнаружения того, содержат или нет рабочие данные потока битов один или более поврежденных битов.
3. Декодер (100) по п. 1,
в котором первый из двух или более режимов скрытия ошибок представляет собой режим скрытия потерь полных кадров,
при этом если модуль (110) канального декодирования указывает то, что рабочие данные потока битов содержат один или более поврежденных битов, и если выбранный режим скрытия ошибок представляет собой режим скрытия потерь полных кадров, модуль (120) исходного декодирования выполнен с возможностью проводить скрытие ошибок без использования рабочих данных потока битов.
4. Декодер (100) по п. 3,
в котором второй из двух или более режимов скрытия ошибок представляет собой режим скрытия потерь частичных кадров,
при этом если модуль (110) канального декодирования указывает то, что рабочие данные потока битов содержат один или более поврежденных битов, и если выбранный режим скрытия ошибок представляет собой режим скрытия потерь частичных кадров, модуль (120) исходного декодирования выполнен с возможностью получать декодированный сигнал посредством декодирования других битов из битов рабочих данных, которые не указываются посредством модуля (110) канального декодирования в качестве одного или более поврежденных битов без проведения скрытия ошибок для других битов, и посредством проведения скрытия ошибок для одного или более битов рабочих данных, которые указываются посредством модуля (110) канального декодирования в качестве одного или более поврежденных битов.
5. Декодер (100) по п. 4,
в котором два или более режимов скрытия ошибок содержат точно два режима скрытия ошибок,
при этом первый из точно двух режимов скрытия ошибок представляет собой режим скрытия потерь полных кадров,
при этом второй из точно двух режимов скрытия ошибок представляет собой режим скрытия потерь частичных кадров.
6. Декодер (100) по п. 4,
в котором рабочие данные потока битов сегментируются на первую часть множества битов рабочих данных для рабочих данных потока битов и на вторую часть множества битов рабочих данных для рабочих данных потока битов,
при этом если модуль (110) канального декодирования указывает то, что рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть рабочих данных потока битов содержит, по меньшей мере, один из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, и
при этом если модуль (110) канального декодирования указывает то, что рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать выбранный режим скрытия ошибок в зависимости от характеристики сигнала для части сигнала для сигнала.
7. Декодер (100) по п. 6,
в котором кадр представляет собой текущий кадр, при этом рабочие данные потока битов представляют собой текущие рабочие данные потока битов, при этом множество битов рабочих данных представляют собой множество текущих битов рабочих данных, при этом часть сигнала для сигнала представляет собой часть текущего сигнала для сигнала, и при этом характеристика сигналов представляет собой характеристику текущего сигнала,
при этом если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать выбранный режим скрытия ошибок из двух или более режимов скрытия ошибок в зависимости от характеристики текущего сигнала для части текущего сигнала для сигнала, кодируемого посредством множества текущих битов рабочих данных текущего кадра, и в зависимости от характеристики предыдущего сигнала для части предыдущего сигнала для сигнала, кодируемого посредством множества предыдущих битов рабочих данных для предыдущих рабочих данных потока битов предыдущего кадра.
8. Декодер (100) по п. 7, в котором декодер (100) представляет собой аудиодекодер,
при этом часть текущего сигнала для сигнала, кодируемого посредством множества текущих битов рабочих данных для текущих рабочих данных потока битов, представляет собой часть текущего аудиосигнала для аудиосигнала, и
при этом часть предыдущего сигнала для сигнала, кодируемого посредством множества предыдущих битов рабочих данных для предыдущих рабочих данных потока битов, представляет собой часть предыдущего аудиосигнала для аудиосигнала,
при этом текущие рабочие данные потока битов кодируют множество спектральных линий части текущего аудиосигнала.
9. Декодер (100) по п. 8,
в котором если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если предыдущий кадр скрыт с использованием скрытия потерь полных кадров.
10. Декодер (100) по п. 8,
в котором если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует частоту, меньшую или равную пороговой частоте.
11. Декодер (100) по п. 8,
в котором если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если коэффициент стабильности меньше предварительно заданного порогового значения, при этом упомянутый коэффициент стабильности указывает стабильность части текущего аудиосигнала и части предыдущего аудиосигнала.
12. Декодер (100) по п. 8,
в котором если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок:
если предыдущий кадр скрыт с использованием скрытия потерь полных кадров, или
если коэффициент стабильности меньше предварительно заданного порогового значения, при этом упомянутый коэффициент стабильности указывает стабильность части текущего аудиосигнала и части предыдущего аудиосигнала.
13. Декодер по п. 11,
в котором предварительно заданное пороговое значение равно 0,5.
14. Декодер (100) по п. 8,
в котором если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок:
если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует упомянутую частоту, меньшую или равную упомянутой пороговой частоте, и
если первая часть текущих рабочих данных потока битов кодирует сигнальный компонент, который является тональным или гармоническим, и
если часть предыдущего сигнала кодирует, по меньшей мере, один пик аудиосигнала, превышающий пиковое пороговое значение, которое соответствует частоте, превышающей все частоты, указываемые посредством множества спектральных линий части текущего аудиосигнала.
15. Декодер (100) по п. 14,
в котором основной тон аудиосигнала демонстрирует частоту основного тона, и
при этом если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок:
если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует упомянутую частоту, меньшую или равную упомянутой пороговой частоте, и
если первая часть текущих рабочих данных потока битов кодирует сигнальный компонент, который является тональным или гармоническим, и
если все частоты, указываемые посредством множества спектральных линий части текущего аудиосигнала, меньше частоты основного тона; или
при этом если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок:
если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует упомянутую частоту, меньшую или равную упомянутой пороговой частоте, и
если первая часть текущих рабочих данных потока битов кодирует сигнальный компонент, который является тональным или гармоническим, и
если все частоты, указываемые посредством множества спектральных линий части текущего аудиосигнала, меньше максимальной поддерживаемой частоты основного тона.
16. Декодер (100) по п. 15,
в котором если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь полных кадров в качестве выбранного режима скрытия ошибок, если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует упомянутую частоту, меньшую или равную упомянутой пороговой частоте, и если первая часть текущих рабочих данных потока битов не кодирует сигнальный компонент аудиосигнала, который является тональным или гармоническим, и если соотношение между энергией от 0 до частотного элемента kbe-1 разрешения предыдущего квантованного спектра предыдущего аудиосигнала к энергии от 0 до начала предыдущего квантованного спектра предыдущего аудиосигнала меньше порогового значения соотношения, при этом kbe является первым спектральным элементом разрешения, который не может восстанавливаться.
17. Декодер (100) по п. 16, в котором пороговое значение соотношения равно 0,3.
18. Декодер (100) по п. 16,
в котором если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь частичных кадров в качестве выбранного режима скрытия ошибок:
если предыдущий кадр не скрыт с использованием скрытия потерь полных кадров, и
если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует частоту, превышающую упомянутую пороговую частоту.
19. Декодер (100) по п. 18,
в котором если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь частичных кадров в качестве выбранного режима скрытия ошибок:
если предыдущий кадр не скрыт с использованием скрытия потерь полных кадров, и
если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует упомянутую частоту, превышающую упомянутую пороговую частоту, и
если упомянутый коэффициент стабильности превышает или равен упомянутому предварительно заданному пороговому значению, и
если первая часть текущих рабочих данных потока битов не кодирует сигнальный компонент аудиосигнала, который является тональным или гармоническим, и если соотношение между энергией от 0 до частотного элемента kbe-1 разрешения предыдущего квантованного спектра предыдущего аудиосигнала к энергии от 0 до начала предыдущего квантованного спектра предыдущего аудиосигнала превышает или равно упомянутому пороговому значению соотношения.
20. Декодер (100) по п. 18,
в котором если модуль (110) канального декодирования указывает то, что текущие рабочие данные потока битов содержат один или более поврежденных битов, и если первая часть текущих рабочих данных потока битов не содержит ни одного из одного или более поврежденных битов, модуль (120) исходного декодирования выполнен с возможностью выбирать режим скрытия потерь частичных кадров в качестве выбранного режима скрытия ошибок:
если предыдущий кадр не скрыт с использованием скрытия потерь полных кадров, и
если наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует упомянутую частоту, превышающую упомянутую пороговую частоту, и
если упомянутый коэффициент стабильности превышает или равен упомянутому предварительно заданному пороговому значению, и
если первая часть текущих рабочих данных потока битов кодирует сигнальный компонент, который является тональным или гармоническим, и если упомянутая наибольшая спектральная линия из множества спектральных линий части текущего аудиосигнала демонстрирует частоту, превышающую частоту основного тона, и если часть предыдущего сигнала не кодирует пик аудиосигнала, превышающий упомянутое пиковое пороговое значение, который соответствует упомянутой частоте, превышающей все частоты, указываемые посредством множества спектральных линий части текущего аудиосигнала.
21. Декодер (100) по п. 8,
в котором если выбранный режим скрытия ошибок представляет собой режим скрытия потерь частичных кадров, модуль (120) исходного декодирования выполнен с возможностью определять, для каждого кодового слова из множества кодовых слов второй части рабочих данных потока битов, в зависимости от числа скорректированных символов упомянутого кодового слова, то, следует или нет проводить скрытие ошибок для тех из множества спектральных линий части текущего аудиосигнала, которые представляются посредством упомянутого кодового слова, и то, следует или нет проводить скрытие ошибок для упомянутых тех из множества спектральных линий части текущего аудиосигнала, для которых модуль (120) исходного декодирования определяет то, что скрытие ошибок должно проводиться.
22. Декодер (100) по п. 21,
в котором, для каждого кодового слова из множества кодовых слов второй части рабочих данных потока битов, модуль (120) исходного декодирования выполнен с возможностью определять значение риска, указывающее аппроксимацию вероятности того, что упомянутое кодовое слово повреждено, и определять то, превышает или нет упомянутое значение риска пороговое значение риска.
23. Декодер (100) по п. 21,
в котором если упомянутое значение риска превышает упомянутое пороговое значение риска, модуль (120) исходного декодирования выполнен с возможностью проводить скрытие ошибок для тех из множества спектральных линий части текущего аудиосигнала, которые представляются посредством упомянутого кодового слова.
24. Декодер (100) по п. 23,
в котором пороговое значение риска составляет 2-16.
25. Декодер (100) по п. 21,
в котором модуль (120) исходного декодирования выполнен с возможностью проводить упомянутое скрытие ошибок для упомянутого кодового слова в режиме скрытия ошибок потерь частичных кадров.
26. Декодер (100) по п. 1,
в котором модуль (110) канального декодирования выполнен с возможностью обнаруживать то, что рабочие данные потока битов содержат один или более поврежденных битов:
если модуль (110) канального декодирования встречает некорректируемое кодовое слово в рабочих данных потока битов, и/или
если модуль (110) канального декодирования, после проведения коррекции ошибок для множества кодовых слов рабочих данных потока битов, определяет повторно вычисленное хэш-значение, которое зависит от упомянутого множества кодовых слов после коррекции ошибок, которое отличается от принимаемого хэш-значения.
27. Система (190) для кодирования части сигнала для сигнала и для декодирования для восстановления части сигнала для сигнала, содержащая:
кодер (150) для кодирования части сигнала для сигнала в кадре, при этом кодер (150) выполнен с возможностью формировать кадр таким образом, что кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, и
декодер (100) по п. 1 для декодирования для восстановления части сигнала для сигнала.
28. Кодер (150), содержащий:
модуль (160) исходного кодирования для кодирования части сигнала для сигнала в кадре, при этом модуль (160) исходного кодирования выполнен с возможностью формировать кадр таким образом, что кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, при этом кадр, сформированный посредством модуля (160) исходного кодирования, является подходящим для обработки посредством декодера (100) по п. 1, и
причем модуль (170) канального кодирования выполнен с возможностью формировать два или более избыточных битов в зависимости от рабочих данных потока битов.
29. Способ для декодирования кадра для восстановления части сигнала для сигнала, при этом часть сигнала кодируется в кадре, при этом кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, при этом способ содержит этапы, на которых:
обнаруживают, в зависимости от двух или более избыточных битов, то, содержат или нет рабочие данные потока битов один или более поврежденных битов, представляющих собой одно или более из битов рабочих данных, которые искажены или которые представляют собой по меньшей мере один бит рабочих данных, для которого существует вероятность, превышающая пороговое значение, что указанный по меньшей мере один бит рабочих данных искажен,
если поврежденные биты не обнаружены в рабочих данных потока битов, декодируют рабочие данные потока битов без проведения скрытия ошибок для того, чтобы восстанавливать часть сигнала, и
если один или более поврежденных битов обнаружены в рабочих данных потока битов, выбирают выбранный режим скрытия ошибок из двух или более режимов скрытия ошибок в зависимости от позиции, по меньшей мере, одного из одного или более поврежденных битов в рабочих данных потока битов и в зависимости от характеристики сигнала для части сигнала для сигнала, и проводят скрытие ошибок в зависимости от выбранного режима скрытия ошибок для того, чтобы восстанавливать часть сигнала.
30. Способ для кодирования части сигнала для сигнала и для декодирования для восстановления части сигнала для сигнала, содержащий этапы, на которых:
кодируют часть сигнала для сигнала в кадре, при этом кадр формируется таким образом, что кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, и
проводят способ для декодирования по п. 29 с использованием кадра для декодирования для восстановления части сигнала для сигнала.
31. Способ для кодирования части сигнала для сигнала в кадре, при этом способ содержит этапы, на которых:
формируют кадр таким образом, что кадр содержит рабочие данные потока битов и два или более избыточных битов, при этом рабочие данные потока битов содержат множество битов рабочих данных, при этом каждый из битов рабочих данных демонстрирует позицию в рабочих данных потока битов, при этом кадр является подходящим для декодирования посредством способа по п. 29, и
формируют два или более избыточных битов в зависимости от рабочих данных потока битов.
32. Не временный машиночитаемый носитель, содержащий компьютерную программу для реализации способа по п. 29, или 30, или 31, при выполнении на компьютере или в процессоре сигналов.
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Токарный резец | 1924 |
|
SU2016A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
JP 3328093 B2, 24.09.2002 | |||
US 8798172 B2, 05.08.2014 | |||
ВЫЧИСЛЕНИЕ ОТНОШЕНИЯ СИГНАЛ-ШУМ КОНВЕРТОРА С УМЕНЬШЕННОЙ СЛОЖНОСТЬЮ | 2013 |
|
RU2610588C2 |
Авторы
Даты
2023-11-21—Публикация
2020-02-12—Подача