МАСКИРОВАНИЕ ОШИБОК В КАДРАХ
MASKING ERRORS IN FRAMES

ОБЛАСТЬ ТЕХНИКИ
Предложенная технология относится к маскированию ошибок в кадрах на основе кадров, включающих в себя векторы коэффициентов преобразования.
УРОВЕНЬ ТЕХНИКИ
Высококачественная передача аудиосигналов обычно может использовать схемы кодирования на основе преобразования. Входной аудиосигнал обычно обрабатывается во временных блоках, называемых кадрами, определенного размера, например, 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 - схема, иллюстрирующая отслеживание изменений знака;
Фиг.3a и 3b - схемы, иллюстрирующие ситуации, в которых изменения знака не считаются значимыми;
Фиг.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 является переходным (или нестационарным) кадром. В этом случае алгоритм экстраполяции знака может вызвать "случайный" режим для всех подвекторов воссозданного кадра. На фиг.3а кадр n-2 является переходным кадром, а на фиг.3b кадр n-1 является переходным кадром.
Тональные или гармонические составляющие в аудиосигнале временной области затронут несколько коэффициентов в области MDCT. Дополнительный вариант осуществления захватывает это поведение при анализе знака посредством определения количества изменений знака групп коэффициентов MDCT вместо всего вектора коэффициентов MDCT, таким образом, коэффициенты MDCT сгруппированы, например, в 4-мерные полосы, в которых выполняется анализ знака. Поскольку искажение, вызванное несоответствием знака, является наиболее слышимым в низкочастотной области, дополнительный вариант осуществления анализа знака выполняется в частотном диапазоне 0-1600 Гц, чтобы уменьшить вычислительную сложность. Если частотное разрешение преобразования MDCT, используемого в этом варианте осуществления, составляет, например, 25 Гц на коэффициент, частотный диапазон будет состоять из 64 коэффициентов, которые могут быть разделены на B полос, где B = 16 в этом примере.
Фиг.4 является схемой, иллюстрирующей структуру кадра описанного выше примера. Проиллюстрированы несколько последовательных хороших кадров. Кадр n был расширен для иллюстрации, что он содержит 16 полос или подвекторов. Полоса b кадра n была расширена для иллюстрации 4 коэффициентов преобразования . Также проиллюстрированы коэффициенты преобразования  и  соответствующего подвектора или полосы b кадров n - 1 и n - 2, соответственно.
n
n
В соответствии с вариантом осуществления определение количества изменений знака коэффициентов преобразования в кадрах, принятых декодером, выполняется посредством алгоритма отслеживания изменений знака, который активен, пока декодер принимает кадры, т.е., пока нет потерь кадра. В течение этого периода декодер может обновлять две переменные состояния s и Δ для каждого подвектора или полосы b, используемых при анализе знака, и в примере с 16 подвекторами, таким образом, будет иметься 32 переменные состояния.
n
Первая переменная состояния s для каждого подвектора или полосы b содержит количество переключений знака между текущим кадром n и прошлым кадром n - 1 и обновляется в соответствии со следующим выражением (следует отметить, что здесь кадр n считается хорошим кадром, в то время как кадр n на фиг.2 и 3 был ошибочным кадром):
(1)
b
где индекс i указывает коэффициенты в подвекторе или полосе b, n - номер кадра, и  - вектор принятых квантованных коэффициентов преобразования.
n
Если кадр n является переходным, что обозначено переменной isTransient в выражении (1), количество переключений знака не является релевантной информацией и будет установлено равным 0 для всех полос.
n
Переменная isTransient получена как "переходный бит" от кодера и может быть определена на стороне кодера, как описано в [4].
n
Вторая переменная состояния Δ для каждого подвектора содержит агрегированное количество переключений знака между текущим кадром n и прошлым кадром n - 1 и между прошлым кадром n - 1 и кадром n - 2 в соответствии со следующим выражением:
(2)
Алгоритм экстраполяции знака активируется, когда декодер не принимает кадр, или кадр является плохим, т.е. если данные повреждены.
В соответствии с вариантом осуществления, когда кадр потерян (является ошибочным), декодер сначала выполняет алгоритм повторения кадра и копирует коэффициенты преобразования из предыдущего кадра в текущий кадр. Затем алгоритм проверяет, содержат ли три ранее принятых кадра какие-либо переходные процессы, проверяя сохраненные переходные флаги для этих кадров. (Однако, если какой-либо из последних двух ранее принятых кадров содержит переходные процессы, в памяти нет полезных данных для выполнения анализа знака, и предсказание знака не выполняется, как обсуждалось со ссылкой на фиг.3).
n
Если по меньшей мере два ранее принятых кадра являются стационарными, алгоритм экстраполяции знака сравнивает количество переключений знака Δ для каждой полосы с заданным порогом переключения T и переключает, или инвертирует, знаки соответствующих коэффициентов в текущем кадре, если количество переключений знака равно порогу переключения или превышает его.
В соответствии с вариантом осуществления и в предположении 4-мерных полос уровень порога переключения T зависит от количества стационарных кадров в памяти в соответствии со следующим выражением:
(3)
Сравнение с порогом T и потенциальное переключение/инвертирование знака для каждой полосы делается в соответствии со следующим выражением (в котором инвертирование знака обозначено как -1):
(4)
В этой схеме экстраполируемый знак коэффициентов преобразования в первом потерянном кадре либо переключается, либо сохраняется таким же, как в последнем хорошем кадре. В случае, когда существует последовательность потерянных кадров, в одном варианте осуществления знак выбирается случайным образом из второго кадра.
Приведенная ниже таблица 1 является сводкой алгоритма экстраполяции знака для маскирования потерянного кадра с индексом n в соответствии с вариантом осуществления. (Следует отметить, что здесь кадр n считается ошибочным, в то время как кадр n считался хорошим в описанных выше уравнениях. Таким образом, в таблице имеется сдвиг индекса на 1).
<b>Таблица 1</b>
Если какой-либо из кадров n-1 и n-2 содержит переходный процесс
Применить случайный знак к скопированным частотным коэффициентам
Если кадры n-1 и n-2 хорошие, но n-3 является потерянным или переходным кадром
Применить экстраполяцию знака с порогом переключения T=3
Если все кадры n-1, n-2, n-3 являются хорошими
Применить экстраполяцию знака с порогом переключения T=6
n
n-1
n-2
n
n-1
n
n-1
n
Фиг.5 является схемой, иллюстрирующей пример воссоздания подвектора ошибочного кадра. В этом примере подвекторы из фиг.4 будут использоваться для иллюстрации воссоздания кадра n + 1, который предполагается ошибочным. Все три кадра n, n - 1, n - 2 считаются стационарными (isTransient = 0, isTransient = 0, isTransient = 0). Сначала отслеживание изменений знака описанного выше выражения (1) используется для вычисления s(b) и s(b). В примере имеется три инверсии знака между соответствующими коэффициентами подвектора кадров n и n - 1 и три инверсии знака между соответствующими коэффициентами подвектора кадров n - 1 и n - 2. Таким образом, s(b) = 3 и s(b) = 3, что в соответствии с накоплением изменения знака описанного выше выражения (2) подразумевает, что Δ(b) = 6. В соответствии с определением порога (3) и экстраполяции знака (4), этого достаточно (в этом примере), чтобы инвертировать знаки коэффициентов, которые скопированы из подвектора b кадра n в подвектор b кадра n + 1, как проиллюстрировано на фиг.5.
Фиг.6 является блок-схемой последовательности операций, иллюстрирующей общий вариант осуществления предложенного способа. Эта блок-схема последовательности операций также может быть рассмотрена как компьютерная блок-схема последовательности операций. Этап S11 отслеживает изменения знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров. Этап S12 накапливает количество изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров. Этап S12 воссоздает ошибочный кадр с помощью последнего хорошего постоянного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
Как отмечено выше, порог может зависеть от предопределенного количества последовательных хороших стационарных кадров. Например, порогу присваивается первое значение для двух последовательных хороших стационарных кадров и второе значение для трех последовательных хороших стационарных кадров.
n
Кроме того, стационарность принятого кадра может быть определена посредством определения содержит ли он какие-либо переходные процессы, например, посредством исследования переменной isTransient, как описано выше.
p
s
s
p
p
s
Дополнительный вариант осуществления использует три режима переключения знака коэффициентов преобразования, например, переключить, сохранить и выбрать случайным образом, и это реализуется через сравнение с двумя разными порогами, т.е., с порогом сохранения T и порогом переключения T. Это означает, что экстраполируемый знак коэффициентов преобразования в первом потерянном кадре переключается в случае, если количество переключений знака равно порогу переключения T или превышает его, и сохраняется в случае, если количество переключений знака равно порогу сохранения T или ниже его. Кроме того, знаки выбираются случайным образом в случае, если количество переключений знака больше порога сохранения T и ниже порога переключения T, т.е.:
(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 является блок-схемой иллюстративного варианта осуществления декодера 20 в соответствии с предложенной технологией. Этот вариант осуществления основан на процессоре 22, например, микропроцессоре, который исполняет компьютерную программу 42 для маскирования ошибок в кадрах на основе кадров, включающих в себя векторы коэффициентов преобразования. Компьютерная программа хранится в памяти 24. Процессор 22 взаимодействует с памятью по системной шине. Входящий закодированный аудиосигнал принимается контроллером 26 ввода/вывода (I/O), управляющим шиной ввода/вывода, с которой соединены процессор 22 и память 24. Аудиосигнал, полученный из программного обеспечения 130, выдается из памяти 24 контроллером 26 ввода/вывода по шине ввода/вывода. Компьютерная программа 42 включает в себя код 50 для отслеживания изменений знака между соответствующими коэффициентами преобразования предопределенных подвекторов последовательных хороших стационарных кадров, код 52 для накопления количества изменений знака в соответствующих подвекторах предопределенного количества последовательных хороших стационарных кадров и код 54 для воссоздания ошибочного кадра с помощью последнего хорошего стационарного кадра, но с обратными знаками коэффициентов преобразования в подвекторах, имеющих накопленное количество изменений знака, которое превышает предопределенный порог.
Компьютерная программа, находящаяся в памяти, может быть организована как подходящие функциональные модули, выполненные с возможностью при их исполнении процессором выполнять по меньшей мере часть описанных выше этапов и/или задач. Пример таких функциональных модулей проиллюстрирован на фиг.9.
Как отмечено выше, программа или компьютерная программа 42 может быть реализована как компьютерный программный продукт 40, который обычно переносится или хранится на машиночитаемом носителе. Машиночитаемый носитель может включать в себя одно или более сменных или несменных запоминающих устройств, в том числе, но без ограничения, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), компакт-диск (CD), цифровой универсальный диск (DVD), универсальную последовательную шину (USB), память, жесткий диск, устройство хранения HDD, флэш-память или любое другое традиционное устройство памяти. Компьютерная программа, таким образом, может быть загружена в операционную память компьютера или эквивалентного устройства обработки для исполнения посредством его схемы обработки.
Например, компьютерная программа включает в себя команды, исполняемые посредством схемы обработки, посредством чего схема обработки может или выполнена с возможностью исполнять описанные здесь этапы, функции, процедуру и/или блоки.
Компьютер или схема обработки не обязательно должны быть специализированными для исполнения только описанных здесь этапов, функций, процедуры и/или блоков, а также могут исполнять другие задачи.
Описанная выше технология может использоваться, например, в приемнике, который может использоваться в устройстве мобильной связи (например, в мобильном телефоне, ноутбуке) или в стационарном устройстве, таком как персональный компьютер. Это устройство будет упоминаться как пользовательский терминал, включающий в себя описанный выше декодер 20. Пользовательский терминал может являться проводным или беспроводным устройством.
Используемый здесь термин "беспроводное устройство" может относиться к пользовательскому оборудованию (UE), мобильному телефону, сотовому телефону, карманному персональному компьютеру (PDA), оборудованному возможностями радиосвязи, смартфону, ноутбуку или персональному компьютеру (PC), оборудованному внутренним или внешним мобильным широкополосным модемом, планшетному компьютеру с возможностями радиосвязи, переносному электронному устройству радиосвязи, устройству датчика, оборудованному возможностями радиосвязи, и т.п. В частности, термин "пользовательское оборудование" должен интерпретироваться как неограничивающий термин, содержащий любое устройство, оборудованное радиосхемой для беспроводной связи в соответствии с любым подходящим стандартом связи.
Используемый здесь термин "проводное устройство" может относиться по меньшей мере к некоторым описанным выше устройствам (с возможностью или без возможности радиосвязи), например, к персональному компьютеру, когда оно сконфигурировано для проводного соединения с сетью.
Фиг.12 является блок-схемой пользовательского терминала 60. Схема иллюстрирует пользовательское оборудование, например, мобильный телефон. Радиосигнал от антенны передается радиоблоку 62, и цифровой сигнал из радиоблока обрабатывается декодером 20 в соответствии с предложенной технологией маскирования ошибок в кадрах (обычно декодер может выполнять другую задачу, такую как декодирование других параметров, описывающих сегмент, но эти задачи не описаны, поскольку они известны в данной области техники и не являются основной частью предложенной технологии). Декодированный аудиосигнал передается блоку 64 цифро-аналогового (D/A) преобразования и усиления сигналов, соединенному с громкоговорителем.
Фиг.13 является схемой, иллюстрирующей другой вариант осуществления маскирования ошибок в кадрах. Сторона 10 кодера аналогична варианту осуществления на фиг.1. Однако сторона кодера включает в себя декодер 20 в соответствии с предложенной технологией. Этот декодер включает в себя блок 16 маскирования ошибок в кадрах (FEC), как предложено здесь. Этот блок заменяет этап S5 воссоздания на фиг.1 на этап воссоздания S5' на основе предложенной технологии. В соответствии с дополнительным вариантом осуществления, описанный выше алгоритм маскирования ошибок факультативно может быть объединен с другим алгоритмом маскирования в другой области. На фиг.13 это проиллюстрировано факультативным блоком FEC2 18 маскирования ошибок в кадрах, в котором также выполняется маскирование на основе тона волновой формы. Это изменит этап S6 на этап S6'. Таким образом, в этом варианте осуществления воссозданная волновая форма содержит вклады от обеих схем маскирования.
Следует понимать то, что выбор взаимодействующих блоков или модулей, а также названия блоков имеют только иллюстративную цель и могут быть выполнены во множестве альтернативных способов, чтобы иметь возможность исполнить раскрытые действия процессов.
Также следует отметить, что блоки или модули, описанные в этом раскрытии, должны быть расценены как логические объекты, а не обязательно как отдельные физические объекты. Очевидно, что объем раскрытой здесь технологии полностью охватывает другие варианты осуществления, которые могут стать очевидны для специалистов в данной области техники, и что объем этого раскрытия соответственно не должен быть ограничен.
Ссылка на элемент в единственном числе не предполагает значения "один и только один", если так не заявлено явным образом, а означает "один или более". Все структурные и функциональные эквиваленты для элементов описанных выше вариантов осуществления, которые известны специалистам в данной области техники, явно включены в настоящий документ по ссылке и предполагаются охваченными настоящим документом. Кроме того, для устройства или способа не обязательно решать абсолютно все проблемы, которые стремится решить раскрытая здесь технология, чтобы они были охвачены настоящим документом.
В предыдущем описании в целях объяснения, а не ограничения, изложены конкретные подробные сведения, такие как конкретная архитектура, интерфейсы, методики и т.д., чтобы обеспечить полное понимание раскрытой технологии. Однако для специалистов в данной области техники будет очевидно, что раскрытая технология может быть осуществлена в других вариантах осуществления и/или в комбинациях вариантов осуществления, которые отступают от этих конкретных подробных сведений. Таким образом, специалисты в данной области техники будут в состоянии создать различные конфигурации, которые воплощают принципы раскрытой технологии, хотя явно не описаны и не показаны здесь. В некоторых случаях подробные описания известных устройств, схем и способов опущены, чтобы не затруднять понимание описания раскрытой технологии ненужными подробностями. Все приведенные здесь формулировки, излагающие принципы, аспекты и варианты осуществления раскрытой технологии, а также их конкретные примеры, предусматривают охват их структурных и функциональных эквивалентов. Кроме того, предусматривается, что такие эквиваленты включают в себя как известные в настоящее время эквиваленты, так и эквиваленты, разработанные в будущем, например, любые разработанные элементы, которые выполняют ту же самую функцию, независимо от структуры.
Таким образом, например, специалистам в данной области техники будет очевидно, что приведенные здесь фигуры могут представлять концептуальные изображения иллюстративной схемы или других функциональных блоков, воплощающих принципы технологии, и/или различные процессы, которые могут быть в значительной степени представлены в машиночитаемом носителе и исполнены компьютером или процессором, даже при том, что такой компьютер или процессор может не быть явно показан на фигурах.
Функции различных элементов, включающих в себя функциональные блоки, могут быть обеспечены с помощью аппаратных средств, таких как аппаратные средства схем и/или аппаратные средства, способные исполнять программное обеспечение в форме закодированных команд, сохраненных на машиночитаемом носителе. Таким образом, такие функции и проиллюстрированные функциональные блоки должны быть интерпретирован либо как реализованные аппаратными средствами, либо как реализованные с помощью компьютера, и, таким образом, реализованные машиной.
Описанные выше варианты осуществления должны быть интерпретированы как несколько иллюстративных примеров настоящего изобретения. Специалисты в данной области техники поймут, что для вариантов осуществления могут быть выполнены различные модификации, комбинации и изменения без отступления от объема настоящего изобретения. В частности, решения разных частей в разных вариантах осуществления могут быть объединены в других конфигурациях, когда это технически возможно.
Специалисты в данной области техники поймут, что для предложенной технологии могут быть выполнены различные модификации и изменения без отступления от ее объема, который определен приложенной формулой изобретения.
ССЫЛКИ
[1] ITU-T standard G.719, section 8.6, June 2008.
[2] A. Ito et al, "Improvement of Packet Loss Concealment for MP3 Audio Based on Switching of Concealment method and Estimation of MDCT Signs", IEEE, 2010 Sixth International Conference on Intelligent Information Hiding and Multimedia Signal Processing, pp. 518-521.
[3] Sang-Uk Ryu and Kenneth Rose, "An MDCT Domain Frame-Loss Concealment Technique for MPEG Advanced Audio Coding", IEEE, ICASSP 2007, pp. I-273 - I-276.
[4] ITU-T standard G.719, section 7.1, June 2008.
СОКРАЩЕНИЯ
ASIC Специализированная интегральная схема
CPU Центральный процессор
DSP Цифровой сигнальный процессор
FEC Маскирование стирания кадров
FPGA Программируемая пользователем вентильная матрица
MDCT Модифицированное дискретное косинусное преобразование
MLT Модулированное преобразование с перекрытием
PLC Маскирование потери пакетов