ВРЕМЕННОЕ ФОРМИРОВАНИЕ ШУМА
TEMPORAL FORMATION OF NOISE

1. Область техники
Примеры в настоящем документе относятся к устройству кодирования и декодирования, в частности, для выполнения временного формирования шума (TNS; Temporal Noise Shaping).
2. Предшествующий уровень техники
Следующие документы представляют предшествующий уровень техники.
ЛИТЕРАТУРА
[1] Herre, Jürgen, and James D. Johnston. "Enhancing the performance of perceptual audio coders by using temporal noise shaping (TNS)." Audio Engineering Society Convention 101. Audio Engineering Society, 1996.
[2] Herre, Jurgen, and James D. Johnston. "Continuously signal-adaptive filterbank for high-quality perceptual audio coding." Applications of Signal Processing to Audio and Acoustics, 1997. 1997 IEEE ASSP Workshop on. IEEE, 1997.
th
[3] Herre, Jürgen. "Temporal noise shaping, quantization and coding methods in perceptual audio coding: A tutorial introduction." Audio Engineering Society Conference: 17 International Conference: High-Quality Audio Coding. Audio Engineering Society, 1999.
[4] Herre, Juergen Heinrich. "Perceptual noise shaping in the time domain via LPC prediction in the frequency domain." U.S. Patent No. 5,781,888. 14 Jul. 1998.
[5] Herre, Juergen Heinrich. "Enhanced joint stereo coding method using temporal envelope shaping." U.S. Patent No. 5,812,971. 22 Sep. 1998.
[6] 3GPP TS 26.403; General audio codec audio processing functions; Enhanced aacPlus general audio codec; Encoder specification; Advanced Audio Coding (AAC) part.
[7] ISO/IEC 14496-3:2001; Information technology - Coding of audio-visual objects - Part 3: Audio.
[8] 3GPP TS 26.445; Codec for Enhanced Voice Services (EVS); Detailed algorithmic description.
Временное формирование шума (TNS) является инструментом для аудиокодеров на основе преобразования, который был разработан в 90-х годах (труды конференции [1-3] и патенты [4-5]). С тех пор оно было интегрировано в главные стандарты аудиокодирования, такие как MPEG-2 AAC, MPEG-4 AAC, 3GPP E-AAC-Plus, MPEG-D USAC, 3GPP EVS, MPEG-H 3D Audio.
TNS может быть кратко описано следующим образом. На стороне кодера и перед квантованием сигнал фильтруется в частотной области (FD) с использованием линейного прогнозирования (LP), чтобы сгладить сигнал во временной области. На стороне декодера и после обратного квантования сигнал фильтруется обратно в частотной области с использованием обратного фильтра с прогнозированием, чтобы сформировать шум квантования во временной области, в результате чего он получается маскирован сигналом.
TNS является эффективным при подавлении так называемого артефакта опережающего эха на сигналах, содержащих острые нарастания громкости, такие как, например, кастаньеты. Оно также полезно для сигналов, содержащих псевдостационарную последовательность похожих на импульсы сигналов, таких как, например, речь.
TNS обычно используется в аудиокодере, действующем на относительно высокой битовой скорости. При использовании в аудиокодере, работающем на низкой битовой скорости, TNS может иногда вносить артефакты, ухудшая качество аудиокодера. Эти артефакты похожи на щелчки или шум и появляются в большинстве случаев с речевыми сигналами или тональными музыкальными сигналами.
Примеры в настоящем документе позволяют подавлять или сокращать ухудшения TNS, поддерживая его преимущества.
Несколько приведенных ниже примеров позволяют получить улучшенное TNS для аудиокодирования на низкой битовой скорости.
3. Сущность изобретения
В соответствии с примерами обеспечено устройство кодера, содержащее:
инструмент временного формирования шума (TNS) для выполнения фильтрации с линейным прогнозированием (LP) информационного сигнала, включающего в себя множество кадров; и
контроллер, выполненный с возможностью управлять инструментом TNS таким образом, чтобы инструмент TNS выполнял фильтрацию LP с помощью:
первого фильтра, импульсный отклик которого имеет более высокую энергию; и
второго фильтра, импульсный отклик которого имеет более низкую энергию, чем импульсный отклик первого фильтра, причем второй фильтр не является фильтром идентичности,
причем контроллер выполнен с возможностью выбирать между фильтрацией с помощью первого фильтра и фильтрацией с помощью второго фильтра на основе метрики кадра.
Следует отметить, что возможно удалить артефакты в проблематичных кадрах, минимально затрагивая другие кадры.
Вместо того, чтобы просто включать/выключать операции TNS, возможно поддержать преимущества инструмента TNS, сокращая его ухудшения. Таким образом, достигается интеллектуально обоснованное управление в реальном времени посредством сокращения фильтрации в случае необходимости.
В соответствии с примерами, контроллер дополнительно выполнен с возможностью:
модифицировать первый фильтр, чтобы получить второй фильтр, в котором сокращена энергия импульсного отклика фильтра.
В соответствии с этим при необходимости может быть создан второй фильтр с сокращенной энергией импульсного отклика.
В соответствии с примерами, контроллер дополнительно выполнен с возможностью:
применять по меньшей мере один поправочный коэффициент к первому фильтру, чтобы получить второй фильтр.
Посредством разумной модификации первого фильтра возможно создать состояние фильтрации, которое не может быть достигнуто простым включением и выключением TNS. По меньшей мере получается одно промежуточное состояние между полной фильтрацией и отсутствием фильтрации. Это промежуточное состояние, вызываемое при необходимости, позволяет сокращать недостатки TNS и поддерживать его положительных характеристики.
В соответствии с примерами, контроллер дополнительно выполнен с возможностью:
определять по меньшей мере один поправочный коэффициент на основе по меньшей мере метрики кадра.
В соответствии с примерами, контроллер дополнительно выполнен с возможностью:
определять по меньшей мере один поправочный коэффициент на основе порога определения фильтрации TNS, который используется для выбора между выполнением фильтрации TNS и не выполнением фильтрации TNS.
В соответствии с примерами, контроллер дополнительно выполнен с возможностью
определять по меньшей мере один поправочный коэффициент с использованием линейной функции метрики кадра, причем линейная функция возрастает с увеличением поправочного коэффициента и/или энергии импульсного отклика фильтра.
Следовательно, возможно определить для разных метрик разные поправочные коэффициенты, чтобы получить параметры фильтра, которые наиболее приспособлены для каждого кадра.
В соответствии с примерами контроллер дополнительно выполнен с возможностью определять поправочный коэффициент как
где  - порог определения фильтрации TNS,  - порог определения типа фильтрации,  - метрика кадра, и  - фиксированное значение.
Артефакты, вызванные TNS, возникают в кадрах, в которых коэффициент усиления прогнозирования находится в конкретном интервале, который здесь задан как набор значений, выше порога  определения фильтрации TNS, но ниже порога  определения фильтрации. В некоторых случаях, в которых метрики составляют коэффициент усиления прогнозирования  и , артефакты, вызванные TNS, имеют тенденцию быть между 1,5 и 2. Таким образом, некоторые примеры преодолевают эти ухудшения, сокращая фильтрацию на .
В соответствии с примерами, контроллер дополнительно выполнен с возможностью модифицировать параметры первого фильтра, чтобы получить параметры второго фильтра, применяя:
где  - параметры первого фильтра,  - поправочные коэффициенты, ,  - параметры второго фильтра, и K - порядок первого фильтра.
Это простая, но пригодная методика для получения параметров второго фильтра, чтобы энергия импульсного отклика была сокращена относительно энергии импульсного отклика первого фильтра.
В соответствии с примерами контроллер дополнительно выполнен с возможностью получать метрику кадра по меньшей мере из одного из коэффициента усиления прогнозирования, энергии информационного сигнала и/или ошибки прогнозирования.
Поэтому эти метрики позволяют просто и достоверно различать кадры, которые должны быть фильтрованы вторым фильтром, от кадров, которые должны быть фильтрованы первым фильтром.
В соответствии с примерами, метрика кадра содержит коэффициент усиления прогнозирования, вычисленный как
где  ассоциирован с энергией информационного сигнала, и  ассоциирован ошибкой прогнозирования.
В соответствии с примерами, контроллер выполнен с возможностью:
по меньшей мере сокращать коэффициент усиления прогнозирования и/или сокращать энергию информационного сигнала, сокращать энергию импульсного отклика второго фильтра и/или по меньшей мере увеличивать ошибку прогнозирования, сокращать энергию импульсного отклика второго фильтра.
В соответствии с примерами контроллер выполнен с возможностью:
сравнивать метрику кадра с порогом определения типа фильтрации (например, thresh2), чтобы выполнить фильтрацию с помощью первого фильтра, когда метрика кадра ниже порога определения типа фильтрации.
В соответствии с этим легко автоматически установить, следует ли фильтровать сигнал с использованием первого фильтра или второго фильтра.
В соответствии с примерами контроллер выполнен с возможностью:
выбирать между выполнением фильтрации и не выполнением фильтрации на основе метрики кадра.
В соответствии с этим также возможно полностью избежать фильтрации TNS, когда это не нужно.
В примерах одна и та же метрика может использоваться дважды (при сравнении с двумя разными порогами) - для выбора между первым фильтром и вторым фильтром, и для выбора фильтрации или отсутствия фильтрации.
В соответствии с примерами, контроллер выполнен с возможностью:
сравнивать метрику кадра с порогом определения фильтрации TNS, чтобы принять решение избежать фильтрации TNS, когда метрика кадра ниже порога определения фильтрации TNS.
В соответствии с примерами, устройство может дополнительно содержать:
блок записи битового потока для подготовки битового потока с коэффициентами отражения или их квантованной версии, полученной посредством TNS.
Эти данные могут быть сохранены и/или переданы, например, декодеру.
В соответствии с примерами обеспечена система, содержащая сторону кодера и сторону декодера, причем сторона кодера содержит упомянутое выше и/или ниже устройство кодера.
В соответствии с примерами обеспечен способ для выполнения фильтрации временного формирования шума (TNS) информационного сигнала, включающего в себя множество кадров, способ содержит:
- для каждого кадра выполнение выбора на основе метрики кадра между фильтрацией с помощью первого фильтра, импульсный отклик которого имеет более высокую энергию, и фильтрацией с помощью второго фильтра, импульсный отклик которого имеет энергию более низкую, чем энергия импульсного отклика первого фильтра (14a), причем второй фильтр не является фильтром идентичности;
- фильтрацию кадра с использованием фильтрации, выбранной между первым фильтром и вторым фильтром.
В соответствии с примерами обеспечено запоминающее устройство долговременного хранения, хранящее инструкции, которые при их исполнении процессором побуждают процессор выполнять по меньшей мере некоторые этапы упомянутых выше и/или ниже способов и/или реализовывать упомянутые выше и/ или ниже систему и устройство.
4. Описание чертежей
Фиг. 1 показывает устройство кодера в соответствии с примером.
Фиг. 2 показывает устройство декодера в соответствии с примером.
Фиг. 3 показывает способ в соответствии с примером.
Фиг. 3А показывает методики в соответствии с примером.
Фиг. 3B и 3C показывают способы в соответствии с примерами.
Фиг. 4 показывает способы в соответствии с примерами.
Фиг. 5 показывает устройство кодера в соответствии с примером.
Фиг. 6 показывает устройство декодера в соответствии с примером.
Фиг. 7 и 8 показывают устройство кодера в соответствии с примерами.
Фиг. 8(1)-8(3) показывают прохождение сигнала в соответствии с примерами.
5. Примеры
Фиг. 1 показывает устройство 10 кодера. Устройство 10 кодера может быть предназначено для обработки (и передачи и/или хранения) информационных сигналов, таких как аудиосигналы. Информационный сигнал может быть разделен на временную последовательность кадров. Каждый кадр может быть представлен, например, в частотной области (FD). Представление FD может являться последовательностью элементов разрешения, каждый из которых находится на конкретной частоте. Представление FD может представлять собой частотный спектр.
s
Устройство 10 кодера может, среди прочего, содержать инструмент временного формирования шума (TNS), инструмент 11 предназначен для выполнения фильтрации TNS информационного сигнала 13 в частотной области (FD) (X(n)). Устройство 10 кодера может, среди прочего, содержать контроллер 12 TNS. Контроллер 12 TNS может быть выполнен с возможностью управлять инструментом 11 TNS таким образом, чтобы инструмент 11 TNS выполнял фильтрацию (например, для некоторых кадров) с использованием по меньшей мере одной фильтрации с линейным прогнозированием (LP) с более высокой энергией импульсного отклика и (например, для некоторых других кадров) с использованием по меньшей мере одной фильтрации LP с более низкой энергией импульсного отклика. Контроллер 12 TNS выполнен с возможностью выполнять выбор между фильтрацией LP с более высокой энергией импульсного отклика и фильтрацией LP c более низкой энергией импульсного отклика на основе метрики, ассоциированной с кадром (метрики кадра). Энергия импульсного отклика первого фильтра выше, чем энергия импульсного отклика второго фильтра.
s
Информационный сигнал 13 FD (X(n)) может быть получен, например, от инструмента модифицированного дискретного косинусного преобразования (MDCT) (или модифицированного дискретного синусного преобразования (MDST)), который преобразовал представление кадра из временной области (TD) в частотную область (FD).
w
i
q
Инструмент 11 TNS может обработать сигналы, например, с использованием группы параметров 14 (a(k)) фильтра c линейным прогнозированием (LP), которые могут являться параметрами первого фильтра 14a. Инструмент 11 TNS может также содержать параметры 14’ (a(k)), которые могут являться параметрами второго фильтра 15a (второй фильтр 15a может иметь импульсную характеристику с более низкой энергией по сравнению с импульсной характеристикой первого фильтра 14a). Параметры 14’ можно трактовать как взвешенную версию параметров 14, и второй фильтр 15a можно трактовать как произведенный из первого фильтра 14a. Параметры могут содержать, среди прочего, один или более из следующих параметров (или их квантованной версии): коэффициенты кодирования LP (LPC), коэффициенты отражения (RC), коэффициенты rc(k) или их квантованная версия rc(k), арксинусные коэффициенты отражения (ASRC), логарифмические отношения площадей (LAR), пары спектральных линий (LSP) и/или частоты спектральных линий (LS) или другие виды таких параметров. В примерах возможно использовать любое представление коэффициентов фильтра.
f
s
Выходными данными инструмента 11 TNS может являться отфильтрованная версия 15 (X(n)) информационного сигнала 13 FD (X(n)).
i
q
Другими выходными данными инструмента 11 TNS может являться группа выходных параметров 16, таких как коэффициенты отражения rc(k) (или их квантованная версия rc(k)).
После компонентов 11 и 12 кодер битового потока может закодировать выходные данные 15 и 16 в битовый поток, который может быть передан (например, беспроводным образом с, использованием такого протокола, как Bluetooth) и/или сохранен (например, в блоке хранения большой емкости).
Фильтрация TNS обеспечивает коэффициенты отражения, которые в общем случае отличаются от нуля. Фильтрация TNS обеспечивает выходные данные, которые в общем случае отличаются от входных данных.
i
q
i
q
i
q
Фиг. 2 показывает устройство 20 декодера, которое может использовать выходные данные (или их обработанную версию) инструмента 11 TNS. Устройство 20 декодера может содержать, среди прочего, декодер 21 TNS и контроллер 22 декодера TNS. Компоненты 21 и 22 могут совместно функционировать, чтобы получить выходные данные 23 синтеза ). В декодер 21 TNS может вводиться, например, декодированное представление 25 (или его обработанная версия ) информационного сигнала, полученного устройством 20 декодера. Декодер 21 TNS может получать на входе (в качестве входных данных 26) коэффициенты отражения rc(k) (или их квантованные версии rc(k)). Коэффициенты отражения rc(k) или rc(k) могут являться декодированной версией коэффициентов отражения rc(k) или rc(k), обеспеченных на выходе 16 устройства 10 кодера.
Как показано на фиг. 1, контроллер 12 TNS может управлять инструментом 11 TNS на основе, среди прочего, метрики 17 кадра (например, коэффициента усиления прогнозирования, или predGain). Например, контроллер 12 TNS может выполнить фильтрацию посредством выбора между по меньшей мере фильтрацией LP с более высокой энергией импульсного отклика и/или фильтрацией LP с более низкой энергией импульсного отклика, и/или между фильтрацией и отсутствием фильтрации. Кроме фильтрации LP с более высокой энергией импульсного отклика и фильтрации LP с более низкой энергией импульсного отклика в соответствии с примеры возможна по меньшей мере одна фильтрация LP с промежуточной энергией импульсного отклика.
Номер для ссылок 17’ на фиг. 1 относится к информации, командам и/или управляющим данным, которые обеспечиваются инструменту 14 TNS от контроллера 12 TNS. Например, инструменту TNS 14 может быть обеспечено решение на основе метрики 17 (например, "использовать первый фильтр" или "использовать второй фильтр"). Настройки фильтров также могут быть обеспечены инструменту 14 TNS. Например, фильтру TNS может быть обеспечен поправочный коэффициент (), чтобы модифицировать первый фильтр 14a для получения второго фильтра 15a.
Метрика 17, например, может представлять собой метрику, ассоциированную с энергией сигнала в кадре (например, метрика может быть такой, что чем выше энергия, тем выше метрика). Метрика, например, может представлять собой метрику, ассоциированную с ошибкой прогнозирования (например, метрика может быть такой, что чем выше ошибка прогнозирования, тем ниже метрика). Метрика, например, может являться значением, ассоциированным с соотношением между ошибкой прогнозирования и энергией сигнала (например, метрика может быть такой, что чем выше отношение между энергией и ошибкой прогнозирования, тем выше метрика). Метрика, например, может являться коэффициентом усиления прогнозирования для текущего кадра или значением, ассоциированным или пропорциональным коэффициенту усиления прогнозирования для текущего кадра (например, чем выше коэффициент усиления прогнозирования, тем выше метрика). Метрика (17) кадра может быть ассоциирована с пологостью временной огибающей сигнала.
Было отмечено, что артефакты вследствие TNS наступают только тогда (или по меньшей мере преимущественно), когда коэффициент усиления прогнозирования является низким. Таким образом, когда коэффициент усиления прогнозирования является высоким, проблемы, вызванные TNS, не возникают (или имеют меньшую тенденцию к возникновению), и возможно выполнить полное формирование TNS (например, фильтрацию LP с более высокой энергией импульсного отклика). Когда коэффициент усиления прогнозирования является очень низким, предпочтительно совсем не выполнять TNS (отсутствие фильтрации). Когда коэффициент усиления прогнозирования имеет промежуточное значение, предпочтительно сократить эффекты TNS посредством использования фильтрации с линейным прогнозированием с более низкой энергией импульсного отклика (например, посредством взвешивания коэффициентов LP или других параметров фильтрации, и/или коэффициентов отражения, и/или с использованием фильтра, импульсный отклик которого имеет более низкую энергию). Фильтрация LP с более высокой энергией импульсного отклика и фильтрация LP с более низкой энергией импульсного отклика отличаются друг от друга в том, что фильтрация LP с более высокой энергией импульсного отклика определена таким образом, чтобы вызывать более высокую энергию импульсного отклика, чем фильтрация LP с более низкой энергией импульсного отклика. Фильтр в общем случае характеризуется энергией импульсного отклика, и, таким образом, возможно идентифицировать его с помощью его энергии импульсного отклика. Фильтрация LP с более высокой энергией импульсного отклика означает использование фильтра, импульсный отклик которого имеет более высокую энергию, чем у фильтра, используемого при фильтрации LP с более низкой энергией импульсного отклика.
Следовательно, с помощью настоящих примеров операции TNS могут быть вычислены посредством:
- выполнения фильтрации LP с высокой энергией импульсного отклика, когда метрика (например, коэффициент усиления прогнозирования) является высокой (например, выше порога определения типа фильтрации);
- выполнения фильтрации LP с низкой энергией импульсного отклика, когда метрика (например, коэффициент усиления прогнозирования) имеет промежуточное значение (например, между порогом определения фильтрации TNS и порогом определения типа фильтрации); и
- не выполнения фильтрации TNS, когда метрика (например, коэффициент усиления прогнозирования) является низкой (например, ниже порога определения фильтрации TNS).
Фильтрация LP с высокой энергией импульсного отклика может быть получена, например, с использованием первого фильтра, имеющего высокую энергию импульсного отклика. Фильтрация LP с низкой энергией импульсного отклика может быть получена, например, с использованием второго фильтра, имеющего более низкую энергию импульсного отклика. Первый и второй фильтры могут являться линейными независимыми от времени фильтрами (LTI).
В примерах первый фильтр может быть описан с использованием параметров фильтра a(k) (14). В примерах второй фильтр может являться модифицированной версией первого фильтра (например, полученным посредством контроллера 12 TNS). Второй фильтр (фильтр с более низкой энергией импульсного отклика) может быть получен посредством масштабирования с сокращением параметров первого фильтра (например, с использованием параметра  или , , где k - натуральное число, ,  является порядком первого фильтра).
Таким образом, в примерах, когда получены параметры фильтра, и на основе метрики определено, что необходима фильтрация с более низкой энергией импульсного отклика, параметры фильтра первого фильтра могут быть модифицированы (например, масштабированы с сокращением), чтобы получить параметры фильтра второго фильтра для использования для фильтра с более низкой энергией импульсного отклика.
Фиг. 3 показывает способ 30, который может быть реализован в устройстве 10 кодера.
На этапе S31 получается метрика кадра (например, коэффициент 17 усиления прогнозирования).
На этапе S32 проверяется, выше ли метрика 17 кадра, чем порог определения фильтрации TNS или первый порог (который может быть равен 1,5 в некоторых примерах). Примером метрики может являться коэффициент усиления прогнозирования.
f
s
i
0
Если на этапе S32 подтверждено, что метрика 17 кадра ниже, чем первый порог (thresh), на этапе S33 операция фильтрации не выполняется (возможно было бы сказать, что используется фильтр идентичности, который представляет собой фильтр, в котором выходные данные являются такими же, как входные данные). Например, X(n)=X(n) (выходные данные 15 инструмента 11 TNS совпадают со входными данными 13), и/или коэффициенты отражения rc(k) (и/или их квантованные версии rc(k)) также устанавливаются равными 0. Таким образом, операции (и выходные данные) устройства 20 декодера не будут подвергаться влиянию инструмента 11 TNS. Следовательно, на этапе S33 не может использоваться ни первый фильтр, ни второй фильтр.
Если на этапе S32 подтверждено, что метрика 17 кадра больше, чем порог определения фильтрации TNS или первый порог (thresh), может быть выполнена вторая проверка на этапе S34 посредством сравнения метрики кадра с порогом определения типа фильтрации или вторым порогом (thresh2, который может быть больше, чем первый порог, и равен, например, 2).
Если на этапе S34 подтверждено, что метрика 17 кадра ниже, чем порог определения типа фильтрации или второй порог (thresh2), на этапе S35 выполняется фильтрация LP с более низкой энергией импульсного отклика (например, используется второй фильтр с более низкой энергией импульсного отклика, второй фильтр не является фильтром идентичности).
Если на этапе S34 подтверждено, что метрика 17 кадра больше, чем порог определения типа фильтрации или второй порог (thresh2), на этапе S36 выполняется фильтрация LP с более высокой энергией импульсного отклика (например, используется первый фильтр, энергия импульсного отклика которого выше, чем у фильтра с более низкой энергией).
Способ 30 может быть повторен для последующего кадра.
В примерах фильтрация LP с более низкой энергией импульсного отклика (этап S35) может отличаться от фильтрации LP с более высокой энергией импульсного отклика (этап S36) в том, что к параметрам фильтра 14 (a(k)) могут быть применены весовые коэффициенты с разными значениями (например, фильтрация LP с более высокой энергией импульсного отклика может быть основана на единичных весовых коэффициентах, а фильтрация LP с более низкой энергией импульсного отклика может быть основана на весовых коэффициентах ниже единицы). В примерах фильтрация LP с более низкой энергией импульсного отклика может отличаться от фильтрации LP с более высокой энергией импульсного отклика в том, что коэффициенты 16 отражения, полученные посредством выполнения фильтрации LP с более низкой энергией импульсного отклика, могут вызвать более высокое подавление энергии импульсного отклика, чем подавление, вызванное коэффициентами отражения, полученными посредством выполнения фильтрации LP с более высокой энергией импульсного отклика.
Следовательно, при выполнении фильтрации с более высокой энергией импульсного отклика на этапе S36 первый фильтр используется на основе параметров фильтра 14 (a(k)) (которые являются, таким образом, первыми параметрами фильтра). При выполнении фильтрации с более низкой энергией импульсного отклика на этапе S35 используется второй фильтр. Второй фильтр может быть получен посредством модификации параметров первого фильтра (например, посредством применения весовых коэффициентом меньше единицы).
Последовательность этапов S31-S32-S34 может отличаться в других примерах: например, этап S34 может предшествовать этапу S32. Один из этапов S32 и/или S34 может быть необязательным в некоторых примерах.
В примерах по меньшей мере один из первого и/или второго порогов может быть фиксирован (например, сохранен в элементе памяти).
В примерах фильтрация с более низкой энергией импульсного отклика может быть получена посредством сокращения импульсного отклика фильтра с помощью регулировки параметров фильтра LP (например, коэффициентов LPC или других параметров фильтрации) и/или коэффициентов отражения, или промежуточного значения, используемого для получения коэффициентов отражения. Например, коэффициенты меньше единицы (весовые коэффициенты) могут быть применены к параметрам фильтра LP (например, коэффициентам LPC или другим параметрам фильтрации) и/или коэффициентам отражения, или промежуточному значению, используемому для получения коэффициентов отражения.
В примерах регулировка (и/или сокращение энергии импульсного отклика) может представлять собой (или выражено как):
где  - порог определения типа фильтрации (и может составлять, например, 2),  - порог определения фильтрации TNS (и может составлять 1,5),  - константа (например, значение между 0,7 и 0,95, такое как между 0,8 и 0,9, такое как 0,85). Значения  могут использоваться, чтобы масштабировать коэффициенты LPC (или другие параметры фильтрации) и/или коэффициенты отражения. frameMetrics - метрика кадра.
В одном примере формула может представлять собой:
где  - порог определения типа фильтрации (и может составлять, например, 2),  - порог определения фильтрации TNS (и может составлять 1,5),  - константа (например, значение между 0,7 и 0,95, такое как между 0,8 и 0,9, такое как 0,85). Значения  могут использоваться, чтобы масштабировать коэффициенты LPC (или другие параметры фильтрации) и/или коэффициенты отражения. predGain может представлять собой коэффициент усиления прогнозирования.
Из формулы можно заметить, что frameMetrics (или ) ниже , но близко к этому значению (например, 1,999) сделает сокращение энергии импульсного отклика слабым (например, ). Таким образом, фильтрация LP с более низкой энергией импульсного отклика может быть одной из множества разных фильтраций LP с более низкой энергией импульсного отклика, каждая из которых описывается своим параметром регулировки , например, в соответствии со значением метрики кадра.
В примерах фильтрации LP с более низкой энергией импульсного отклика разные значения метрик могут вызвать разные регулировки. Например, более высокий коэффициент усиления прогнозирования может иметь отношение к более высокому значению  и более низкому сокращению энергии импульсного отклика относительно первого фильтра.  может рассматриваться как линейная функция, зависящая от . Приращение  вызовет приращение  , что в свою очередь уменьшит сокращение энергии импульсного отклика. Если  сокращается,  также сокращается, и энергия импульсного отклика будет соответственно также сокращаться.
Следовательно, последующие кадры того же самого сигнала могут быть отфильтрованы по-другому:
- некоторые кадры могут быть отфильтрованы с использованием первого фильтра (фильтрация с более высокой энергией импульсного отклика), в котором сохраняются параметры (14) фильтра;
- некоторые другие кадры могут быть отфильтрованы с использованием второго фильтра (фильтрация с более низкой энергией импульсного отклика), в котором первый фильтр модифицирован, чтобы получить второй фильтр с более низкой энергией импульсного отклика (например, модифицируются параметры 14 фильтра), чтобы сократить энергию импульсного отклика относительно первого фильтра;
- некоторые другие кадры также могут быть отфильтрованы с использованием второго фильтра (фильтрация с более низкой энергией импульсного отклика), но с другой регулировкой (как последовательность разных значений метрики кадра).
В соответствии с этим, для каждого кадра может быть определен особый первый фильтр (например, на основе параметров фильтра), в то время как второй фильтр может быть разработан посредством модификации параметров первого фильтра.
Фиг. 3А показывают пример контроллера 12 и блока 11 TNS, совместно функционирующих для выполнения операций фильтрации TNS.
Метрика 17 кадра (например, коэффициент усиления прогнозирования) быть получена и сравнена с порогом 18a определения фильтрации TNS (например, в блоке 10a сравнения). Если метрика 17 кадра больше, чем порог 18a определения фильтрации TNS (thresh), разрешается (например, селектором 11a) сравнить метрику 17 кадра с порогом 18b определения типа фильтрации (например, в блоке 12a сравнения). Если метрика кадра 17 больше, чем порог 18b определения типа фильтрации, то активируется первый фильтр 14a, импульсный отклик которого имеет более высокую энергию (например, ). Если метрика 17 кадра ниже порога 18b определения типа фильтрации, то активируется второй фильтр 15a, импульсный отклик которого имеет более низкую энергию (например, ) (элемент 12b указывает отрицание двоичного значения, выданного блоком 12a сравнения). Первый фильтр 14a, импульсный отклик которого имеет более высокую энергию, может выполнить фильтрацию S36 с более высокой энергией импульсного отклика, и второй фильтр 15a, импульсный отклик которого имеет более низкую энергию, может выполнить фильтрацию S35 с более низкой энергией импульсного отклика.
Фиг. 3B и 3C показывают способы 36 и 35 для использования первого и второго фильтров 14a и 15a, соответственно (например, для этапов S36 и S35, соответственно).
Способ 36 может содержать этап S36a получения параметров 14 фильтра. Способ 36 может содержать этап S36b выполнения фильтрации (например, этап S36) с использованием параметров первого фильтра 14a. Этап S35b может быть выполнен только при определении (например, на этапе S34), что метрика кадра выше порога определения типа фильтрации (например, на этапе S35).
Способ 35 может содержать этап S35a получения параметров 14 фильтра первого фильтра 14a. Способ 35 может содержать этап S35b определения поправочного коэффициента  (например, посредством использования по меньшей мере одного из порогов thresh и thresh2 и метрики кадра). Способ 35 может содержать этап 35c для изменения первого фильтра 14a, чтобы получить второй фильтр 15a, имеющий более низкую энергию импульсного отклика относительно первого фильтра 14a. В частности, первый фильтр 14a может быть модифицирован посредством применения поправочного коэффициента  (например, полученного на этапе S35b) к параметрам 14 первого фильтра 14a, чтобы получить параметры второго фильтра. Способ 35 может содержать этап S35d, на котором выполняется фильтрация с помощью второго фильтра (например, на этапе S35 способа 30). Этапы S35a, S35b и S35c могут быть выполнены при определении (например, на этапе S34), что метрика кадра меньше, чем порог определения типа фильтрации (например, на этапе S35).
Фиг. 4 показывает способ 40’ (на стороне кодера) и способ 40” (на стороне декодера), которые могут сформировать единый способ 40. Способы 40’ и 40” могут иметь некоторый контакт в том, что кодер, работающий в соответствии со способом 40’, может передать битовый поток (например, беспроводным образом с использованием Bluetooth) декодеру, работающему в соответствии со способом 40”.
Ниже обсуждаются этапы способа 40 (обозначены как последовательность a)-b)-c)-d)-1)-2)-3)-e)-f) и последовательностью S41'-S49’).
a) Этап S41’: Может быть обработана автокорреляция спектра MDCT (или MDST) (значение FD), например,
где  - порядок фильтра LP (например, ). Здесь  может являться значением FD, вводимым в инструмент 11 TNS. Например,  может относиться к элементу разрешения, ассоциированному с частотой с индексом .
b) Этап S42’: Автокорреляция может быть обработана с помощью оконной функции задержки:
Пример функции оконной обработки задержки может быть представлен, например:
где  - параметр окна (например, ).
c) Этап S43’: Коэффициенты фильтра LP могут быть оценены с использованием, например, рекурсивной процедуры Левинсона-Дербина, такой как:
где  - оценочные коэффициенты LPC (или другие параметры фильтрации),  - соответствующие коэффициенты отражения, и  - ошибка прогнозирования.
d) Этап S44’: Принятие решения (этап S44’ или S32) включить/выключить фильтрацию TNS текущего кадра может основано, например, на метрике кадра, такой как коэффициент усиления прогнозирования:
Если  , то включить фильтрацию TNS
причем коэффициент усиления прогнозирования вычисляется как
и  - порог (например, ).
1) Этап S45’: Весовой коэффициент  может быть получен (например, на этапе S45’) как
где  - второй порог (например, ), и  - минимальный весовой коэффициент (например, ).  может являться, например, порогом определения типа фильтрации.
Когда , используется первый фильтр 14a. Когда , используется второй фильтр 15a (например, на этапе S35b).
:
2) Этап S46’: Коэффициенты LPC (или другие параметры фильтрации) могут быть взвешены (например, на этапе S46’) с использованием коэффициента
является возведением в степень (например, ).
3) Этап S47’: Взвешенные коэффициенты LPC (или другие параметры фильтрации) могут быть преобразованы в коэффициенты отражения, например, с использованием следующей процедуры (этап S47’):
e) Этап S48': Если фильтрация TNS включена (например, в результате определения на этапе S32), коэффициенты отражения могут быть квантованы (этап S48’) с использованием, например, скалярного однородного квантование в области арксинуса:
где  - ширина ячейки (например, ), и  - функция округления до ближайшего целого числа.
- выходные индексы блока квантования, которые затем кодируются, например, с использованием арифметического кодирования.
- квантованные коэффициенты отражения.
f) Этап S49’:Если фильтрация TNS включена, спектр MDCT (или MDST) фильтруется (этап S49’) с использованием квантованных коэффициентов отражения и структуры решеточного фильтра
Битовый поток может быть передан декодеру. Битовый поток может содержать вместе с представлением FD информационного сигнала (например, аудиосигнала) также управляющие данные, такие как коэффициенты отражения, полученные посредством выполнения операций TNS, описанных выше (анализ TNS).
Способ 40” (сторона декодера) может содержать этапы g) (S41”) и h) (S42”), на которых, если фильтрация TNS включена, квантованные коэффициенты отражения декодируются, и квантованный фильтр MDCT (или MDST) подвергается обратной фильтрации. Может использоваться следующая процедура:
На фиг. 5 показан пример устройства 50 кодера (которое может воплотить устройство 10 кодера и/или выполнить по меньшей мере некоторые операции способов 30 и 40’).
Устройство 50 кодера может содержать множество инструментов для кодирования входного сигнала (который может являться, например, аудиосигналом). Например, инструмент 51 MDCT может преобразовывать представление TD информационного сигнала в представлении FD. Инструмент 52 формирования спектрального шума (SNS) может выполнять анализ формирования шума (например, анализ формирования спектрального шума (SNS)) и извлекать коэффициенты LPC или другие параметры фильтрации (например, a(k) 14). Инструмент 11 TNS может являться таким, как упомянуто выше, и им может управлять контроллером 12. Инструмент 11 TNS может выполнять операцию фильтрации (например, в соответствии со способом 30 или 40’) и выдавать фильтрованную версию информационного сигнала и версию коэффициентов отражения. Инструмент 13 квантования может выполнять квантование данных, выданных инструментом 11 TNS. Арифметический кодер 54 может обеспечивать, например, энтропийное кодирование. Инструмент 55’ уровня шума также может использоваться для оценки уровня шума сигнала. Блок 55 записи битового потока может формировать битовый поток, ассоциированный с входным сигналом, который может быть передан (например, беспроводным образом с использованием Bluetooth) и/или сохранен.
Также может использоваться детектор 58’ частотной полосы (который может обнаруживать частотную полосу входного сигнала). Он может обеспечивать информацию об активном спектре сигнала. Эта информация также может использоваться в некоторых примерах, чтобы управлять инструментами кодирования.
Устройство 50 кодера также может содержать инструмент 57 долгосрочной постфильтрации, на вход которого может подаваться представление TD входного сигнала, например, после того как представление TD было дискретизировано с понижением посредством инструмента 56.
На фиг. 6 показан пример устройства 60 декодера (которое может воплотить устройство 20 декодера и/или выполнить по меньшей мере некоторые операции способа 40”).
Устройство 60 декодера может содержать блок 61 считывания, который может считывать битовый поток (например, подготовленный устройством 50). Устройство 60 декодера может содержать арифметический разностный декодер 61a, который может выполнять, например, энтропийное декодирование, разностное декодирование и/или арифметическое декодирование с цифровым представлением в FD (восстановленный спектр), например, как представлено декодером. Устройство 60 декодера может содержать инструмент 62 заполнения шумом и инструмент 63 глобального усиления. Устройство 60 декодера может содержать декодер 21 TNS и контроллер 22 декодера TNS. Устройство 60 может содержать инструмент 65 декодера SNS. Устройство 60 декодера может содержать инструмент 65' обратного преобразования MDCT (или MDST) для преобразования цифрового представления информационного сигнала из области FD в область TD. Долгосрочная постфильтрация может быть выполнена инструментом 66 LTPF 66 в области TD. Информация 68 о частотной полосе может быть получена, например, от детектора 58’ частотной полосы и применена к некоторым инструментам (например, 62 и 21).
Здесь обеспечены примеры операций упомянутого выше устройства.
Формирование временного шума (TNS) может использоваться инструментом 11 для управления временной формой шума квантования в каждом окне преобразования.
В примерах, если фильтрация TNS активна в текущем кадре, то могут быть применены до двух фильтров на каждый спектр MDCT (или спектр MDST, или другой спектр или другое представление в области FD). Возможно применить множество фильтров и/или выполнить фильтрацию TNS в конкретном частотном диапазоне. В некоторых примерах это является необязательным.
Количество фильтров для каждой конфигурации и начальная и конечная частоты каждого фильтра заданы в следующей таблице:
<b>Ширина полосы</b>
<b>num_tns_filters</b>
<b>start_freq(f)</b>
<b>stop_freq(f)</b>
<b>sub_start(f, s)</b>
<b>sub_stop(f, s)</b>
NB
1
{12}
{80}
{{12,34,57}}
{{34,57,80}}
WB
1
{12}
{160}
{{12,61,110}}
{{61,110,160}}
SSWB
1
{12}
{240}
{{12,88,164}}
{{88,164,240}}
SWB
2
{12,160}
{160,320}
{{12,61,110},{160,213,266}}
{{61,110,160},{213,266,320}}
FB
2
{12,200}
{200,400}
{{12,74,137},{200,266,333}}
{{74,137,200},{266,333,400}}
Такая информация, как начальная и конечная частоты, может быть сообщена, например, детектором 58’ частотной полосы.
Где NB - узкополосный, WB - широкополосный, SSWB - полусуперширокополосный, SWB - суперширокополосный, и FB - полноширокополосный.
Ниже описаны этапы кодирования TNS. Сначала анализ может оценить набор коэффициентов отражения для каждого фильтра TNS. Затем эти коэффициенты отражения могут быть квантованы. И, наконец, спектр преобразования MDCT (или спектр MDST, или другой спектр, или другое представление FD) может быть отфильтрован с использованием квантованных коэффициентов отражения.
Полный анализ TNS, описанный ниже, повторяется для каждого фильтра TNS , где  (num_tns_filters обеспечивается приведенной выше таблицей).
Нормализованная автокорреляционная функция может быть вычислена (например, на этапе S41’) следующим образом, для каждого
где
и
где  и  заданы в приведенной выше таблице.
Нормализованная функция автокорреляции может быть обработана с помощью оконной функции с задержкой (например, на этапе S42’), например, с использованием:
Рекурсия Левинсона-Дербина, описанная выше, может использоваться (например, на этапе S43’) для получения коэффициентов LPC или других параметров фильтрации  и/или ошибки прогнозирования .
Решение включить/выключить фильтр TNS  в текущем кадре основано на коэффициенте усиления прогнозирования:
Если , то включить фильтр TNS
Например, c  и получаемым коэффициентом усиления прогнозирования, например, как:
Дополнительные описанные ниже этапы выполняются, только если включен фильтр TNS  (например, если этап S32 имеет результат "ДА").
Весовой коэффициент  вычислен как
где ,  и
Коэффициенты LPC или другие параметры фильтрации могут быть взвешены (например, на этапе S46’) с использованием коэффициента
Взвешенные коэффициенты LPC или другие параметры фильтрации могут быть преобразованы (например, на этапе S47’) коэффициенты отражения, например, с использованием следующего алгоритма:
где  являются окончательными оценочными коэффициентами отражения для фильтра TNS .
Если фильтр TNS  выключен (например, результат "НЕТ" в проверке этапа S32), то коэффициенты отражения могут быть просто установлены в 0: .
Теперь обсуждается процесс квантования, выполняемый на этапе S48’.
Для каждого фильтра TNS  полученные коэффициенты отражения могут быть квантованы, например, с использованием скалярное однородного квантования в области арксинуса
и
где  и  являются округлением к самой близкой функции целого числа, например.  может быть индексами продукции блока квантования, и  может быть квантованными коэффициентами отражения.
Порядок квантованных коэффициентов отражения может быть вычислен с использованием
Общее количество битов, использованных фильтрацией TNS в текущем кадре, может быть вычислено следующим образом
где
и
Значения  и  могут быть представлены в таблицах.
Спектр MDCT (или MDST)  (входные данные 15 на фиг. 1) может быть отфильтрован с использованием следующей процедуры:
где  является отфильтрованным спектром MDCT TNS (или MDST) (выходные данные15 на фиг. 1).
Со ссылкой на операции, выполненные в декодере (например, 20, 60), квантованные коэффициенты отражения могут быть получены для каждого фильтра TNS  с использованием
где  являются выходными индексами квантования.
Спектр MDCT (или MDST) , представленный декодеру 21 TNS (например, полученный из инструмента 63 глобального усиления), может быть отфильтрован с использованием следующего алгоритма
где  представляет собой выходные данные декодера TNS.
6. Обсуждение изобретения
Как разъяснялось выше, TNS может иногда вносить артефакты, ухудшая качество аудиокодера. Эти артефакты похожи на щелчки или шум и появляются в большинстве случаев с речевыми сигналами или тональными музыкальными сигналами.
Было замечено, что артефакты, сформированные TNS, возникают только в кадрах, в которых коэффициент усиления прогнозирования predGain является низким и близок к порогу thresh.
Можно было предположить, что увеличение порога легко решит проблему. Но для большинства кадров на самом деле полезно включить фильтрацию TNS, даже когда коэффициент усиления прогнозирования является низким.
Наше предлагаемое решение состоит в том, чтобы поддерживать такой же порог, но регулировать фильтр TNS, когда коэффициент усиления прогнозирования является низким, чтобы сократить энергию импульсного отклика.
Имеется много способов реализовать эту регулировку (что может называться, как "ослабление", например, когда получается подавление энергии импульсного отклика посредством сокращения параметров фильтра LP). Мы можем использовать весовые коэффициенты
где  - параметры фильтра LP (например, коэффициенты LPC) вычисленные на этапе c) кодера, и  - взвешенные параметры фильтра LP. Корректирующий (взвешенный) коэффициент  делается зависимым от коэффициента усиления прогнозирования таким образом, что применяется более высокое подавление энергии импульсного отклика () для более низких коэффициентов усиления прогнозирования, и в результате чего нет, например, подавления энергии импульсного отклика () для более высоких коэффициентов усиления прогнозирования.
Предлагаемое решение, как доказано, было очень эффективным при удалении всех артефактов на проблематичных кадрах с минимальным воздействием на другие кадры.
Теперь может быть сделана ссылка на фиг. 8(1)-8(3). Они показывают кадр аудиосигнала (сплошная линия) и частотную характеристику (штриховая линия) соответствующего фильтра прогнозирования TNS.
Фиг. 8(1): сигнал кастаньет
Фиг. 8(2): сигнал камертона
Фиг. 8(3): речевой сигнал
Коэффициент усиления прогнозирования относится к пологости временной огибающей сигнала (см., например, раздел 3 [2] или раздел 1.2 [3]).
Низкий коэффициент усиления прогнозирования подразумевает тенденциозно пологую временную огибающую, в то время как высокий коэффициент усиления прогнозирования подразумевает чрезвычайно не пологую временную огибающую.
Фиг. 8(1) показывает случай очень низкого коэффициента усиления прогнозирования (predGain=1,0). Это соответствует случаю очень стационарного аудиосигнала с пологой временной огибающей. В этом случае predGain=1 <thresh (например, thresh=1,5): фильтрация не выполняется (этап S33).
Фиг. 8(2) показывает случай очень высокого коэффициента усиления прогнозирования (12,3). Это соответствует случаю сильного и острого нарастания громкости с очень не пологой временной огибающей. В этом случае predGain=12,3 > thresh2 (threh2=2): фильтрация более высокой энергии импульсного отклика выполняется на этапе S36.
Фиг. 8(3) показывает случай, когда коэффициент усиления прогнозирования находится между thresh и thresh2, например, в диапазоне 1,5-2,0 (выше, чем первый порог, ниже, чем второй порог). Это соответствует случаю немного не пологой временной огибающей. В этом случае thresh<predGain<thresh2: фильтрация с более низкой энергией импульсного отклика выполнятся на этапе в S35, с использованием второго фильтра 15a с более низкой энергией импульсного отклика.
7. Другие примеры
Фиг. 7 показывает устройство 110, которое может реализовать устройство 10 или 50 кодера и/или выполнять по меньшей мере некоторые этапы способа 30 и/или 40’. Устройство 110 может содержать процессор 111 и блок 112 памяти долговременного хранения, хранящий инструкции, которые при их исполнении процессором 111 могут побудить процессор 111 выполнять фильтрацию и/или анализ TNS. Устройство 110 может содержать блок 116 ввода, который может получать входной сигнал (например, аудиосигнал). Процессор 111 может, таким образом, выполнять процессы TNS.
Фиг. 8 показывает устройство 120, которое может реализовать устройство 20 или 60 декодера и/или выполнить способ 40’. Устройство 120 может содержать процессор 121 и блок 122 памяти долговременного хранения, хранящий инструкции, которые при их исполнении процессором 121 могут побудить процессор 121 выполнять, среди прочего, операцию синтеза TNS. Устройство 120 может содержать блок 126 ввода, который может получать декодированное представление информационного сигнала (например, аудиосигнала) в FD. Процессор 121 может, таким образом, выполнять процессы для получения декодированного представления информационного сигнала, например, в TD. Это декодированное представление может быть предоставлено внешним блокам с использованием блока 127 вывода. Блок 127 вывода может содержать, например, блок связи для взаимодействия с внешним устройствами (например, с использованием беспроводной связи, такой как Bluetooth) и/или внешними пространствами памяти. Процессор 121 может хранить декодированное представление аудиосигнала в локальном пространстве 128 памяти.
В примерах системы 110 и 120 могут быть одним и тем же устройством.
В зависимости от некоторых требований реализации примеры могут быть реализованы в аппаратных средствах. Реализация может быть выполнена с использованием цифровых носителей информации, например, гибкого диска, цифрового универсального диска (DVD), диска Blu-ray, компакт-диска (CD), постоянного запоминающего устройства (ПЗУ; ROM), программируемого ПЗУ (ППЗУ; PROM), стираемого и программируемого ПЗУ (ЭПЗЗУ; EPROM), электрически стираемого ЭППЗУ (ЭСППЗУ EEPROM) или флэш-памяти, хранящих считываемые в электронном виде сигналы, которые могут выполнять соответствующий способ. Таким образом, цифровой носитель информации может быть машиночитаемым.
Обычно примеры могут быть реализованы как компьютерный программный продукт с программными командами, программные команды выполняют один из способов, когда компьютерный программный продукт исполняется на компьютере. Программные команды могут быть сохранены на машиночитаемом носителе.
Другие примеры содержат компьютерную программу для выполнения одного из способов, описанных в настоящем документе, сохраненных на машиночитаемой носителе. Другими словами, примером способа, таким образом, является компьютерная программа, имеющая программные команды для выполнения одного из способов, описанных в настоящем документе, когда компьютерная программа выполняется на компьютере.
Дополнительным примером способов, таким образом, является носитель данных (или цифровой носитель информации, или машиночитаемый носитель) содержащий записанную на нем компьютерную программу для выполнения одного из способов, описанных в настоящем документе. Носитель данных, цифровой носитель информации или носитель с записанными данными являются материальными и/или не временным носителем, а не нематериальными и временными сигналами.
Дополнительный пример содержит блок обработки, например, компьютер или программируемое логическое устройство, выполняющее один из способов, описанных в настоящем документе.
Дополнительный пример содержит компьютер с установленной на нем компьютерной программой для выполнения одного из способов, описанных в настоящем документе.
Дополнительный пример содержит устройство или систему, переносящую (например, в электронном виде или оптически) компьютерную программу для выполнения одного из способов, описанных в настоящем документе, к приемнику. Приемник может, например, являться компьютером, мобильным устройством, запоминающим устройством и т.п. Устройство или система могут, например, содержать файловый сервер для переноса компьютерной программы к приемнику.
В некоторых примерах программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может использоваться, чтобы выполнять некоторые или все функции способов, описанных в настоящем документе. В некоторых примерах программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором, чтобы выполнять один из способов, описанных в настоящем документе. Обычно способы могут быть выполнены любым подходящим аппаратным устройством.
Описанные выше примеры являются иллюстративным для обсуждаемых выше принципов. Подразумевается, что модификации и вариации подробностей, описанных в настоящем документе, будут очевидны. Таким образом, объем описания ограничен лишь формулой изобретения, а не подробностями, представленными в примерах настоящего документа.