Маскирование ошибок в кадрах
Иллюстрации
Показать всеИзобретение относится к маскированию ошибок в кадрах на основе кадров, включающих в себя векторы коэффициента преобразования. Технический результат – улучшенное маскирование ошибок в кадрах за счет отсутствия передачи дополнительных сторонних параметров или формирования дополнительных задержек, требуемых интерполяцией. Для этого: отслеживают (S11) изменения знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров; накапливают (S12) количество изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров; воссоздают (S13) ошибочный кадр с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог. 6 н. и 6 з.п. ф-лы, 16 ил., 1 табл.
Реферат
ОБЛАСТЬ ТЕХНИКИ
Предложенная технология относится к маскированию ошибок в кадрах на основе кадров, включающих в себя векторы коэффициентов преобразования.
УРОВЕНЬ ТЕХНИКИ
Высококачественная передача аудиосигналов обычно может использовать схемы кодирования на основе преобразования. Входной аудиосигнал обычно обрабатывается во временных блоках, называемых кадрами, определенного размера, например 20 мс. Кадр преобразовывается посредством подходящего преобразования, например, такого как модифицированное дискретное косинусное преобразования (MDCT), и коэффициенты преобразования затем квантуются и передаются по сети.
Однако когда аудиокодек работает в системе связи, которая включает в себя беспроводные или пакетные сети, кадр может потеряться при передаче или прибыть слишком поздно, чтобы использоваться в сценарии реального времени. Аналогичная проблема возникает, когда данные в кадре были повреждены, и кодек может быть настроен для отбрасывания таких поврежденных кадров. Описанные выше примеры называются стиранием кадров или потерей пакетов, и когда это происходит, декодер обычно вызывает определенные алгоритмы, чтобы избежать или уменьшить ухудшение качества звука, вызванное стиранием кадра, и такие алгоритмы называются алгоритмами маскирования стирания кадров (или ошибок в кадрах) (FEC) или алгоритмами маскирования потери пакетов (PLC).
Фиг.1 иллюстрирует ввод аудиосигнала в кодере 10. Преобразование в частотную область выполняется на этапе S1, квантование выполняется на этапе S2, и пакетирование и передача квантованных частотных коэффициентов (представленных индексами) выполняются на этапе S2. Пакеты принимаются декодером 12 на этапе S4 после передачи, и частотные коэффициенты воссоздаются на этапе S5, причем выполняется алгоритм маскирования стирания кадров (или ошибок в кадрах), как обозначено блоком FEC 14. Воссозданные частотные коэффициенты подвергаются обратному преобразованию во временную область на этапе S6. Таким образом, фиг.1 является обзором системы, в которой ошибки передачи обрабатываются в звуковом декодере 12 в процессе воссоздания параметров/волновой формы, и алгоритм маскирования стирания кадров выполняет воссоздание потерянных или поврежденных кадров.
Цель маскирования ошибок состоит в том, чтобы синтезировать потерянные части аудиосигнала, которые не приходят или не приходят вовремя в декодер или повреждены. Когда может быть допущена дополнительная задержка и/или доступны дополнительные биты, можно использовать различные мощные концепции FEC, которые могут основываться, например, на интерполяции потерянного кадра между двумя хорошими кадрами или на передаче существенной вспомогательной информации.
Однако в сценарии диалога в реальном времени обычно невозможно ввести дополнительную задержку и редко возможно увеличить расход битов и вычислительную сложность алгоритма. Три иллюстративных подхода FEC для сценария в реальном времени являются следующими:
- заглушение, при котором недостающие спектральные коэффициенты устанавливаются равными нулю;
- повторение, при котором повторяются коэффициенты из последнего хорошего кадра;
- вставка шума, при которой недостающие спектральные коэффициенты выдаются генератором статистического шума.
Пример алгоритма FEC, который обычно используется посредством основанных на преобразовании кодеках, является алгоритмом повторения кадра, который использует подход повторения и повторяет коэффициенты преобразования ранее принятого кадра, иногда с масштабным коэффициентом, например, как описано в [1]. Повторные коэффициенты преобразования затем используются для воссоздания аудиосигнала для потерянного кадра. Алгоритмы повторного кадра и алгоритмы для вставки шума или заглушения являются привлекательными алгоритмами, поскольку они имеют низкую вычислительную сложность и не требуют передачи каких-либо дополнительных битов или какой-либо дополнительной задержки. Однако маскирование ошибки может ухудшить воссозданный сигнал. Например, схема FEC на основе заглушения может создать большие неоднородности энергии и плохое воспринимаемое качество, и использование алгоритма со вставкой шума может привести к отрицательному воздействию на восприятие, особенно когда применяется к области с заметными тональными компонентами.
Другой подход, описанный в [2], включает в себя передачу вспомогательной информации для воссоздания ошибочных кадров посредством интерполяции. Недостаток этого способа состоит в том, что он требует дополнительной пропускной способности для вспомогательной информации. Для коэффициентов MDCT без доступной вспомогательной информации амплитуды оцениваются посредством интерполяции, тогда как знаки оцениваются при помощи вероятностной модели, которая требует большого количества прошлых кадров (предложено 50), которые могут быть не доступными в действительности.
Довольно сложный метод интерполяции с мультипликативными корректировками для воссоздания потерянных кадров описан в [3].
Дополнительный недостаток способов маскирования ошибок в кадрах на основе интерполяции состоит в том, что они вносят дополнительные задержки (должен быть принят кадр после ошибочного кадра, прежде чем может быть предпринята какая-либо интерполяция), что может являться неприемлемым, например, в приложениях реального времени, таких как диалоговые приложения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Задачей предложенной технологии является улучшенное маскирование ошибок в кадрах.
Эта задача решается вариантами осуществления предложенной технологии.
В соответствии с первым аспектом обеспечен способ маскирования ошибок в кадрах на основе кадров, включающих в себя векторы коэффициентов преобразования. Способ содержит отслеживание изменения знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров. Способ также содержит накопление количества изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров. Кроме того, способ предусматривает восстановление ошибочного кадра с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
В соответствии со вторым аспектом обеспечена компьютерная программа для маскирования ошибок в кадрах на основе кадров, включающих в себя векторы коэффициентов преобразования. Компьютерная программа содержит машиночитаемый код, который при его исполнении на процессоре заставляет процессор выполнять следующие действия. Он отслеживает изменения знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров. Он накапливает количество изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров. Он воссоздает ошибочный кадр с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
В соответствии с третьим аспектом обеспечен компьютерный программный продукт, содержащий машиночитаемый носитель и компьютерную программу в соответствии со вторым аспектом, сохраненную на машиночитаемом носителе.
В соответствии с четвертым аспектом предложенная технология включает в себя вариант осуществления декодера, выполненного с возможностью маскирования ошибок в кадрах на основе кадров, включающих в себя векторы коэффициентов преобразования. Декодер включает в себя средство отслеживания изменений знака, выполненное с возможностью отслеживать изменения знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров. Декодер дополнительно включает в себя средство накопления изменений знака, выполненное с возможностью накапливать количество изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров. Декодер также включает в себя средство воссоздания, выполненное с возможностью воссоздавать ошибочный кадр с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
В соответствии с пятым аспектом предложенная технология включает в себя другой вариант осуществления декодера, выполненного с возможностью маскирования ошибок в кадрах на основе кадров, включающих в себя векторы коэффициентов преобразования. Декодер включает в себя модуль отслеживания изменений знака для отслеживания изменений знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров. Декодер дополнительно включает в себя модуль накопления изменений знака для накопления количества изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров. Декодер также включает в себя модуль воссоздания кадра для восстановления ошибочного кадра с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
В соответствии с шестым аспектом предложенная технология включает в себя дополнительный вариант осуществления декодера, выполненного с возможностью маскирования ошибок в кадрах на основе кадров, включающих в себя векторы коэффициентов преобразования. Декодер включает в себя процессор и память, причем память содержит команды, исполняемые процессором, посредством чего декодер выполнен с возможностью выполнять следующие действия. Он отслеживает изменения знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров. Он накапливает количество изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров. Он воссоздает ошибочный кадр с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
В соответствии с седьмым аспектом предложенная технология включает в себя пользовательский терминал, содержащий декодер в соответствии с четвертым, пятым или шестым аспектом.
По меньшей мере один из вариантов осуществления может улучшить субъективное качество звука в случае потери кадра, задержки кадра или повреждения кадра, и это улучшение достигается без передачи дополнительных сторонних параметров или формирования дополнительных задержек, требуемых интерполяцией, и с низкой сложностью и низкими требованиями к памяти.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Предложенная технология вместе с ее дополнительными задачами и преимуществами лучше всего может быть понята посредством ссылки на последующее описание, рассмотренное совместно с прилагаемыми чертежами, на которых:
фиг.1 - схема, иллюстрирующая концепцию маскирования ошибок в кадрах;
фиг.2 - схема, иллюстрирующая отслеживание изменений знака;
фиг.3 - схема, иллюстрирующая ситуации, в которых изменения знака не считаются значимыми;
фиг.4 - схема, иллюстрирующая структуру кадра;
фиг.5 - схема, иллюстрирующая пример воссоздания подвектора ошибочного кадра;
фиг.6 - блок-схема последовательности операций, иллюстрирующая общий вариант осуществления предложенного способа;
фиг.7 - блок-схема, дающая обзор предложенной технологии;
фиг.8 - блок-схема иллюстративного варианта осуществления декодера в соответствии с предложенной технологией;
фиг.9 - блок-схема иллюстративного варианта осуществления декодера в соответствии с предложенной технологией;
фиг.10 - блок-схема иллюстративного варианта осуществления декодера в соответствии с предложенной технологией;
фиг.11 - блок-схема иллюстративного варианта осуществления декодера в соответствии с предложенной технологией;
фиг.12 - блок-схема пользовательского терминала;
фиг.13 - схема, иллюстрирующая другой вариант осуществления маскирования ошибок в кадрах.
ПОДРОБНОЕ ОПИСАНИЕ
На всех чертежах одинаковые обозначения используются для аналогичных или соответствующих элементов.
Предложенная здесь технология в целом применима к модулированным преобразованиям с перекрытием (MLT), например к преобразованию MDCT, которое в настоящее время является предпочтительным преобразованием. Чтобы упростить описание, ниже будет обсуждаться только преобразование MDCT.
Кроме того, в описании ниже все из терминов "потерянный кадр", "задержанный кадр", "поврежденный кадр" и "кадры, содержащие поврежденные данные" представляют примеры ошибочных кадров, которые должны быть воссозданы посредством предложенной технологии маскирования ошибок в кадрах. Аналогичным образом, термин "хорошие кадры" будет использован для указания безошибочных кадров.
Использование алгоритма повторения кадра для маскирования ошибок в кадрах в кодеке преобразования, который использует преобразование MDCT, может вызвать ухудшение в воссозданном аудиосигнале вследствие того, что в области преобразования MDCT информация фазы переносится и в амплитуде, и в знаке коэффициентов MDCT. Для тональных или гармонических составляющих развитие соответствующих коэффициентов MDCT с точки зрения амплитуды и знака зависит от частоты и начальной фазы базовых тонов. Коэффициенты MDCT для тональных компонентов в потерянном кадре могут иногда иметь такой же знак и амплитуду, как в предыдущем кадре, при этом алгоритм повторения кадра будет являться выгодным. Однако иногда коэффициенты MDCT для тональных компонентов изменили знак и/или амплитуду в потерянном кадре, и в этих случаях алгоритм повторения кадра не будет хорошо работать. Когда это произойдет, несоответствие знака, вызванное повторением коэффициентов с неправильным знаком, заставит энергию тональных компонентов распространиться по большей частотной области, что приведет к слышимому искажению.
Описанные здесь варианты осуществления анализируют изменения знака коэффициентов MDCT в ранее полученных кадрах, например, с использованием алгоритма отслеживания изменений знака и используют собранные данные относительно изменения знака для создания алгоритма FEC низкой сложности с улучшенным качеством восприятия.
Поскольку проблема с разрывом фазы является наиболее слышимой для сильных тональных компонентов и такие компоненты затронут группу из нескольких коэффициентов, коэффициенты преобразования могут быть сгруппированы в подвекторы, над которыми выполняется анализ знака. Анализ в соответствии с описанными здесь вариантами осуществления также принимает во внимание динамику сигнала, например, измеренную детектором переходного процесса, чтобы определить надежность прошлых данных. Количество изменений знака коэффициентов преобразования может быть определено для каждого подвектора по заданному количеству ранее полученных кадров, и эти данные используются для определения знаков коэффициентов преобразования в воссозданном подвекторе. В соответствии с описанными здесь вариантами осуществления знак всех коэффициентов в подвекторе, используемом в алгоритме повторения кадра, будет переключен (инвертирован) в случае, если определенное количество изменений знака коэффициентов преобразования в каждом соответствующем подвекторе по ранее полученным кадрам является высоким, т.е. равно заданному порогу переключения или превышает его.
Описанные здесь варианты осуществления включают в себя основанный на декодере алгоритм экстраполяции знака, который использует собранные данные из алгоритма отслеживания изменений знака для экстраполяции знаков воссозданного вектора MDCT. Алгоритм экстраполяции знака активируется при потере кадра.
Алгоритм экстраполяции знака может дополнительно отслеживать, являются ли ранее принятые кадры (сохраненные в памяти, т.е. в буфере декодера) стационарными или они содержат переходные процессы, поскольку алгоритм имеет смысл только для выполнения над стационарными кадрами, т.е. когда сигнал не содержит переходные процессы. Таким образом, в соответствии с вариантом осуществления знак воссозданных коэффициентов будет выбран случайным образом в случае, если любой из проанализированных рассматриваемых кадров содержит переходный процесс.
Вариант осуществления алгоритма экстраполяции знака основан на анализе знака по трем ранее полученным кадрам вследствие того, что три кадра обеспечивают достаточные данные, чтобы достигнуть хорошей функциональности. В случае если только последние два кадра являются стационарными, кадр n - 3 отбрасывается. Анализ изменения знака по двум кадрам аналогичен анализу изменения знака по трем кадрам, но пороговый уровень соответствующим образом адаптируется.
Фиг. 2 является схемой, иллюстрирующей отслеживание изменений знака. Если недавняя хронология сигнала содержит только хорошие кадры, изменение знака отслеживается в трех последовательных кадрах, как проиллюстрировано на фиг.2a. В случае переходного или потерянного кадра, как на фиг.2b и 2c, изменение знака вычисляется по двум доступным кадрам. Текущий кадр имеет индекс n, потерянный кадр обозначен заштрихованным прямоугольником, и переходный кадр обозначен прямоугольником с точечной штриховкой. Таким образом, на фиг.2a область отслеживания знака составляет 3 кадра, и на фиг.2b и 2c область отслеживания знака составляет 2 кадра.
Фиг.3 является схемой, иллюстрирующей ситуации, в которых изменения знака не считаются значимыми. В этом случае один из последних двух кадров перед ошибочным кадром n является переходным (или нестационарным) кадром. В этом случае алгоритм экстраполяции знака может вызвать "случайный" режим для всех подвекторов воссозданного кадра.
Тональные или гармонические составляющие в аудиосигнале временной области затронут несколько коэффициентов в области MDCT. Дополнительный вариант осуществления захватывает это поведение при анализе знака посредством определения количества изменений знака групп коэффициентов MDCT вместо всего вектора коэффициентов MDCT, таким образом, коэффициенты MDCT сгруппированы, например, в 4-мерные полосы, в которых выполняется анализ знака. Поскольку искажение, вызванное несоответствием знака, является наиболее слышимым в низкочастотной области, дополнительный вариант осуществления анализа знака выполняется в частотном диапазоне 0-1600 Гц, чтобы уменьшить вычислительную сложность. Если частотное разрешение преобразования MDCT, используемого в этом варианте осуществления, составляет, например, 25 Гц на коэффициент, частотный диапазон будет состоять из 64 коэффициентов, которые могут быть разделены на B полос, где B = 16 в этом примере.
Фиг.4 является схемой, иллюстрирующей структуру кадра описанного выше примера. Проиллюстрированы несколько последовательных хороших кадров. Кадр n был расширен для иллюстрации, что он содержит 16 полос или подвекторов. Полоса b кадра n была расширена для иллюстрации 4 коэффициентов преобразования . Также проиллюстрированы коэффициенты преобразования и соответствующего подвектора или полосы b кадров n - 1 и n - 2, соответственно.
В соответствии с вариантом осуществления определение количества изменений знака коэффициентов преобразования в кадрах, принятых декодером, выполняется посредством алгоритма отслеживания изменений знака, который активен, пока декодер принимает кадры, т.е. пока нет потерь кадра. В течение этого периода декодер может обновлять две переменные состояния sn и Δn для каждого подвектора или полосы b, используемых при анализе знака, и в примере с 16 подвекторами, таким образом, будет иметься 32 переменные состояния.
Первая переменная состояния sn для каждого подвектора или полосы b содержит количество переключений знака между текущим кадром n и прошлым кадром n - 1 и обновляется в соответствии со следующим выражением (следует отметить, что здесь кадр n считается хорошим кадром, в то время как кадр n на фиг.2 и 3 был ошибочным кадром):
(1)
где индекс ib указывает коэффициенты в подвекторе или полосе b, n - номер кадра, и - вектор принятых квантованных коэффициентов преобразования.
Если кадр n является переходным, что обозначено переменной isTransientn в выражении (1), количество переключений знака не является релевантной информацией и будет установлено равным 0 для всех полос.
Переменная isTransientn получена как "переходный бит" от кодера и может быть определена на стороне кодера, как описано в [4].
Вторая переменная состояния Δn для каждого подвектора содержит агрегированное количество переключений знака между текущим кадром n и прошлым кадром n - 1 и между прошлым кадром n - 1 и кадром n - 2 в соответствии со следующим выражением:
(2)
Алгоритм экстраполяции знака активируется, когда декодер не принимает кадр или кадр является плохим, т.е. если данные повреждены.
В соответствии с вариантом осуществления, когда кадр потерян (является ошибочным), декодер сначала выполняет алгоритм повторения кадра и копирует коэффициенты преобразования из предыдущего кадра в текущий кадр. Затем алгоритм проверяет, содержат ли три ранее принятых кадра какие-либо переходные процессы, проверяя сохраненные переходные флаги для этих кадров. (Однако если какой-либо из последних двух ранее принятых кадров содержит переходные процессы, в памяти нет полезных данных для выполнения анализа знака и предсказание знака не выполняется, как обсуждалось со ссылкой на фиг.3.)
Если по меньшей мере два ранее принятых кадра являются стационарными, алгоритм экстраполяции знака сравнивает количество переключений знака Δn для каждой полосы с заданным порогом переключения T и переключает, или инвертирует, знаки соответствующих коэффициентов в текущем кадре, если количество переключений знака равно порогу переключения или превышает его.
В соответствии с вариантом осуществления и в предположении 4-мерных полос уровень порога переключения T зависит от количества стационарных кадров в памяти в соответствии со следующим выражением:
(3)
Сравнение с порогом T и потенциальное переключение/инвертирование знака для каждой полосы делается в соответствии со следующим выражением (в котором инвертирование знака обозначено как -1):
(4)
В этой схеме экстраполируемый знак коэффициентов преобразования в первом потерянном кадре либо переключается, либо сохраняется таким же, как в последнем хорошем кадре. В случае когда существует последовательность потерянных кадров, в одном варианте осуществления знак выбирается случайным образом из второго кадра.
Приведенная ниже таблица 1 является сводкой алгоритма экстраполяции знака для маскирования потерянного кадра с индексом n в соответствии с вариантом осуществления. (Следует отметить, что здесь кадр n считается ошибочным, в то время как кадр n считался хорошим в описанных выше уравнениях. Таким образом, в таблице 1 имеется сдвиг индекса на 1.)
Таблица 1 | |
Если какой-либо из кадров n-1 и n-2 содержит переходный процесс | Применить случайный знак к скопированным частотным коэффициентам |
Если кадры n-1 и n-2 хорошие, но n-3 является потерянным или переходным кадром | Применить экстраполяцию знака с порогом переключения T=3 |
Если все кадры n-1, n-2, n-3 являются хорошими | Применить экстраполяцию знака с порогом переключения T=6 |
Фиг.5 является схемой, иллюстрирующей пример воссоздания подвектора ошибочного кадра. В этом примере подвекторы из фиг.4 будут использоваться для иллюстрации воссоздания кадра n + 1, который предполагается ошибочным. Все три кадра n, n - 1, n - 2 считаются стационарными (isTransientn = 0, isTransientn-1 = 0, isTransientn-2 = 0). Сначала отслеживание изменений знака описанного выше выражения (1) используется для вычисления sn(b) и sn-1(b). В примере имеется три инверсии знака между соответствующими коэффициентами подвектора кадров n и n - 1 и три инверсии знака между соответствующими коэффициентами подвектора кадров n - 1 и n - 2. Таким образом, sn(b) = 3 и sn-1(b) = 3, что в соответствии с накоплением изменения знака описанного выше выражения (2) подразумевает, что Δn(b) = 6. В соответствии с определением порога (3) и экстраполяции знака (4), этого достаточно (в этом примере), чтобы инвертировать знаки коэффициентов, которые скопированы из подвектора b кадра n в подвектор b кадра n + 1, как проиллюстрировано на фиг.5.
Фиг.6 является блок-схемой последовательности операций, иллюстрирующей общий вариант осуществления предложенного способа. Эта блок-схема последовательности операций также может быть рассмотрена как компьютерная блок-схема последовательности операций. Этап S11 отслеживает изменения знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров. Этап S12 накапливает количество изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров. Этап S12 воссоздает ошибочный кадр с помощью последнего хорошего постоянного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
Как отмечено выше, порог может зависеть от предопределенного количества последовательных хороших стационарных кадров. Например, порогу присваивается первое значение для двух последовательных хороших стационарных кадров и второе значение для трех последовательных хороших стационарных кадров.
Кроме того, стационарность принятого кадра может быть определена посредством определения, содержит ли он какие-либо переходные процессы, например, посредством исследования переменной isTransientn, как описано выше.
Дополнительный вариант осуществления использует три режима переключения знака коэффициентов преобразования, например переключить, сохранить и выбрать случайным образом, и это реализуется через сравнение с двумя разными порогами, т.е. с порогом сохранения Tp и порогом переключения Ts. Это означает, что экстраполируемый знак коэффициентов преобразования в первом потерянном кадре переключается в случае, если количество переключений знака равно порогу переключения Ts или превышает его, и сохраняется в случае, если количество переключений знака равно порогу сохранения Tp или ниже его. Кроме того, знаки выбираются случайным образом в случае, если количество переключений знака больше порога сохранения Tp и ниже порога переключения Ts, т.е.:
(5)
В этой схеме экстраполяция знака в первом потерянном кадре применяется ко второму и так далее, поскольку случайный выбор уже является частью схемы.
В соответствии с дополнительным вариантом осуществления к воссозданным коэффициентам применяется масштабный коэффициент (затухание энергии) в дополнение к переключению знака:
(6)
В уравнении (6) G - масштабный коэффициент, который может быть равен 1, если не используется предсказание коэффициента усиления, или G ≤ 1 в случае предсказания коэффициента усиления (или простое правило затухания, например, -3 дБ для каждого последовательного потерянного кадра).
Описанные здесь этапы, функции, процедуры, модули и/или блоки могут быть реализованы в аппаратных средствах с использованием любой традиционной технологии, такой как технология дискретных схем или интегральных схем, в том числе электронных схем общего назначения и специализированных схем.
Конкретные примеры включают в себя один или более подходящим образом сконфигурированных цифровых сигнальных процессоров и другие известные электронные схемы, например дискретные логические элементы, взаимосвязанные для выполнения специализированной функции, или специализированные интегральные схемы (ASIC).
В качестве альтернативы, по меньшей мере некоторые описанные выше этапы, функции, процедуры, модули и/или блоки могут быть реализованы в программном обеспечении, таком как компьютерная программа для выполнения посредством подходящей схемы обработки, включающей в себя один или более блоков обработки.
Блок-схема или блок-схемы последовательности операций, представленные здесь, таким образом, могут быть расценены как компьютерная блок-схема или блок-схемы последовательности операций, когда они выполняются одним или более процессорами. Соответствующее устройство может быть задано как группа функциональных модулей, в которой каждый этап, выполняемый процессором, соответствует функциональному модулю. В этом случае функциональные модули реализованы как компьютерная программа, работающая на процессоре.
Примеры схемы обработки включают в себя, но без ограничения, один или более микропроцессоров, один или более цифровых сигнальных процессоров (DSP), один или более центральных процессоров (CPU), аппаратные средства ускорения видео и/или любую подходящую программируемую логическую схему, такую как одна или более программируемых пользователем вентильных матриц (FPGA) или один или более контроллеров с программируемой логикой.
Также следует понимать, что может быть возможно повторно использовать общие возможности обработки любого традиционного устройства или блока, в котором реализована предложенная технология. Также может быть возможно повторно использовать существующее программное обеспечение, например, посредством перепрограммирования существующего программного обеспечения или добавления новых программных компонентов.
Описанные здесь варианты осуществления применяются к декодеру для закодированного аудиосигнала, как проиллюстрировано на фиг.7. Таким образом, фиг.7 является блок-схемой декодера 20 в соответствии с вариантами осуществления. Декодер 20 содержит блок ввода ВХОД, выполненный с возможностью принимать закодированный аудиосигнал. Фигура иллюстрирует маскирование потери кадра посредством логического блока 16 маскирования ошибок в кадрах (FEC), который указывает, что декодер 20 выполнен с возможностью реализовывать маскирование потерянного или поврежденного звукового кадра в соответствии с описанными выше вариантами осуществления. Декодер 20 с включенными в него блоками может быть реализован в аппаратных средствах. Существуют многочисленные модификации элементов схемы, которые могут быть использованы и объединены для достижения функций блоков декодера 20. Такие модификации охвачены вариантами осуществления. Конкретные примеры аппаратной реализации декодера представляют собой реализацию в технологии аппаратных средств цифрового сигнального процессора (DSP) и интегральных схем, в том числе электронных схем общего назначения и специализированных схем.
Фиг.8 является блок-схемой иллюстративного варианта осуществления декодера 20 в соответствии с предложенной технологией. Блок ввода ВХОД извлекает векторы коэффициентов преобразования из закодированного аудиосигнала и передает их блоку FEC 16 декодера 20. Декодер 20 включает в себя средство 26 отслеживания изменения знака, выполненное с возможностью отслеживать изменения знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров. Средство 26 отслеживания изменения знака соединено со средством 28 накопления изменений знака, выполненным с возможностью накапливать количество изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров. Средство 28 накапливания изменений знака соединено со средством 30 воссоздания кадров, выполненным с возможностью воссоздавать ошибочный кадр с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог. Воссозданный вектор коэффициентов преобразования передается блоку вывода ВЫХОД, который преобразует его в аудиосигнал.
Фиг.9 является блок-схемой иллюстративного варианта осуществления декодера в соответствии с предложенной технологией. Блок ввода ВХОД извлекает векторы коэффициентов преобразования из закодированного аудиосигнала и передает их блоку FEC 16 декодера 20. Декодер 20 включает в себя:
- модуль 26 отслеживания изменений знака для отслеживания изменений знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров;
- модуль 28 накопления изменений знака для накопления количества изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров;
- модуль 30 воссоздания кадра для воссоздания ошибочного кадра с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
Воссозданный вектор коэффициентов преобразования преобразовывается в аудиосигнал в блоке вывода ВЫХОД.
Фиг.10 является блок-схемой иллюстративного варианта осуществления декодера 20 в соответствии с предложенной технологией. Описанный здесь декодер 20 в качестве альтернативы может быть реализован, например, посредством одного или более элементов из процессора 22 и соответствующего программного обеспечения с подходящим хранилищем или памятью 24 таким образом, чтобы воссоздавать аудиосигнал, что включает в себя выполнение маскирования потери аудиокадра в соответствии с описанными здесь вариантами осуществления. Входящий закодированный аудиосигнал принимается блоком ввода ВХОД, с которым соединены процессор 22 и память 24. Декодированный и воссозданный аудиосигнал, полученный из программного обеспечения, выдается из блока вывода ВЫХОД.
В частности, декодер 20 включает в себя процессор 22 и память 24, и память содержит исполняемые процессором команды, посредством чего декодер 20 выполнен с возможностью:
- отслеживать изменения знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров;
- накапливать количество изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров;
- воссоздавать ошибочный кадр с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
На фиг.10 также проиллюстрирован компьютерный программный продукт 40, содержащий машиночитаемый носитель и компьютерную программу (описанную ниже), хранящуюся на машиночитаемом носителе. Команды компьютерной программы могут быть перенесены в память 24, как обозначено штриховой стрелкой.
Фиг.11