ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящая заявка испрашивает приоритет следующих приоритетных заявок: предварительная заявка на патент США 63/027,594 (ссылка: D20046USP1), поданная 20 мая 2020 года, и заявка на европейский патент 20175652.5 (ссылка: D20046EP), поданная 20 мая 2020 года, которые включены в настоящий документ посредством ссылки.
ТЕХНОЛОГИЯ
Настоящее раскрытие в целом относится к способам и устройству для декодирования закодированного битового потока MPEG-D USAC. Настоящее раскрытие дополнительно относится к таким способам и устройству, которые сокращают вычислительную сложность. Кроме того, настоящее раскрытие также относится к соответствующим компьютерным программным продуктам.
Хотя некоторые варианты осуществления будут описаны в настоящем документе со ссылкой на это раскрытие, следует понимать, что настоящее раскрытие не ограничивается такой областью применения и применимо в более широких контекстах.
УРОВЕНЬ ТЕХНИКИ
Любое обсуждение предшествующего уровня техники в раскрытии никоим образом не должно рассматриваться как признание того, что такой уровень техники широко известен или является частью общих знаний в данной области.
Декодеры для унифицированного кодирования речи и звука (USAC, unified speech and audio coding), как указано в международном стандарте ISO/IEC 23003-3 (далее стандарт MPEG-D USAC), включают в себя несколько модулей (блоков), которые требуют множества сложных вычислительных шагов. Каждый из этих вычислительных шагов может быть затратным для аппаратных систем, реализующих эти декодеры. Примеры таких модулей включают в себя модуль (или инструмент) упреждающего подавления искажений вследствие наложения спектров (FAC, forward-aliasing cancellation) и модуль кодирования с линейным предсказанием (LPC, Linear Prediction Coding).
В контексте адаптивной потоковой передачи при переключении на другую конфигурацию (например, другую битовую скорость, такую как битовая скорость, сконфигурированная в наборе адаптации в MPEG-DASH), чтобы воспроизвести сигнал точно с начала, необходимо предоставить декодеру кадр (AUn), представляющий соответствующий временной сегмент программы, и дополнительные предыдущие кадры (AUn-1, AUn-2, …, AUs) и данные конфигурации, предшествующие кадру AUn. В противном случае вследствие разных конфигураций кодирования (например, данных оконной обработки, данных относительно SBR, данных относительно стерекодирования (MPS212)) нельзя гарантировать, что декодер выдает правильный результат, декодируя лишь кадр AUn.
Таким образом, первый кадр AUn, декодируемый с новой (текущей) конфигурацией, может нести данные новой конфигурации и все предыдущие кадры (в форме AUn-x, представляющей временные сегменты перед AUn), которые необходимы для инициализации декодера с новой конфигурацией. Это может быть сделано, например, посредством кадра немедленного воспроизведения (IPF, Immediate Playout Frame).
В связи с вышеизложенным существует потребность в реализации процессов и модулей декодеров MPEG-D USAC, которые снижают вычислительную сложность.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В соответствии с первым аспектом настоящего раскрытия обеспечен декодер для декодирования закодированного битового потока MPEG-D USAC. Декодер может содержать приемник, выполненный с возможностью принимать закодированный битовый поток, причем битовый поток представляет последовательность значений отсчетов (далее называемых значениями звуковых отсчетов) и содержит множество кадров, причем каждый кадр содержит ассоциированные закодированные значения звуковых отсчетов, причем битовый поток содержит элемент предшествующего воспроизведения, включающий в себя один или несколько предыдущих кадров, необходимых декодеру для формирования полного сигнала, чтобы иметь возможность выдавать достоверные значения звуковых отсчетов, ассоциированные с текущим кадром, и причем битовый поток дополнительно содержит элемент конфигурации USAC, содержащий текущую конфигурацию USAC в качестве полезной нагрузки и текущий идентификатор битового потока. Декодер может дополнительно содержать модуль разбора, выполненный с возможностью выполнять разбор элемента конфигурации USAC вплоть до текущего идентификатора битового потока и сохранять начальную позицию элемента конфигурации USAC и начальную позицию текущего идентификатора битового потока в битовом потоке. Декодер может дополнительно содержать модуль определения, выполненный с возможностью определять, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, и если текущая конфигурация USAC отличается от предыдущей конфигурации USAC, сохранять текущую конфигурацию USAC. Также декодер может содержать инициализатор, выполненный с возможностью инициализировать декодер, если модуль определения определяет, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC, причем инициализация декодера может содержать декодирование одного или нескольких предыдущих кадров, включенных в элемент предшествующего воспроизведения. Инициализация декодера может дополнительно содержать переключение декодера с предыдущей конфигурации USAC на текущую конфигурацию USAC, в результате чего декодер настраивается на использование текущей конфигурации USAC, если модуль определения определяет, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC. Также декодер может быть выполнен с возможностью отбрасывать и не декодировать элемент предшествующего воспроизведения, если модуль определения определяет, что текущая конфигурация USAC идентична предыдущей конфигурации USAC.
В случае адаптивной потоковой передачи обработка битовых потоков MPEG-D USAC может включать в себя переключение с предыдущей на текущую, другую конфигурацию. Это может быть сделано, например, посредством кадра немедленного воспроизведения (IPF, Immediate Playout Frame). В этом случае элемент предшествующего воспроизведения может по-прежнему полностью декодироваться (т.е., включая предыдущие кадры) каждый раз, независимо от изменения конфигурации. Сконфигурированный, как указано выше, декодер позволяет избежать такого ненужного декодирования элементов предшествующего воспроизведения.
В некоторых вариантах осуществления модуль определения может быть выполнен с возможностью определять, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством сравнения текущего идентификатора битового потока с предыдущим идентификатором битового потока.
В некоторых вариантах осуществления модуль определения может быть выполнен с возможностью определять, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством сравнения длины текущей конфигурации USAC с длиной предыдущей конфигурации USAC.
В некоторых вариантах осуществления, если определено, что текущий идентификатор битового потока идентична предыдущему идентификатору битового потока, и/или если определено, что длина текущей конфигурации USAC идентична длине предыдущей конфигурации USAC, модуль определения может быть выполнен с возможностью определять, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством побитового сравнения текущей конфигурации USAC с предыдущей конфигурацией USAC.
В некоторых вариантах осуществления декодер может быть дополнительно выполнен с возможностью задерживать вывод достоверных значений звуковых отсчетов, ассоциированных с текущим кадром, на один кадр, причем задержка вывода достоверных значений звуковых отсчетов на один кадр может включать в себя буферизацию каждого кадра звуковых отсчетов перед выводом, и при этом декодер может быть дополнительно выполнен с возможностью, если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC, выполнять плавное микширование кадра предыдущей конфигурации USAC, буферизованного в декодере, с текущим кадром текущей конфигурации USAC.
В соответствии со вторым аспектом настоящего раскрытия обеспечен способ декодирования, посредством декодера, закодированного битового потока MPEG-D USAC. Способ может содержать прием закодированного битового потока, причем битовый поток представляет последовательность значений звуковых отсчетов и содержит множество кадров, причем каждый кадр содержит ассоциированные закодированные значения звуковых отсчетов, причем битовый поток содержит элемент предшествующего воспроизведения, включающий в себя один или несколько предыдущих кадров, необходимых декодеру для формирования полного сигнала, чтобы иметь возможность выдавать достоверные значения звуковых отсчетов, ассоциированные с текущим кадром, и причем битовый поток дополнительно содержит элемент конфигурации USAC, содержащий текущую конфигурацию USAC в качестве полезной нагрузки и текущий идентификатор битового потока. Способ может дополнительно содержать разбор элемента конфигурации USAC вплоть до текущего идентификатора битового потока и сохранение начальной позиции элемента конфигурации USAC и начальной позиции текущего идентификатора битового потока в битовом потоке. Способ может дополнительно содержать определение, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, и если текущая конфигурация USAC отличается от предыдущей конфигурации USAC, сохранение текущей конфигурации USAC. Также способ может содержать инициализацию декодера, если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC, причем инициализация декодера может содержать декодирование одного или нескольких предыдущих кадров, включенных в элемент предшествующего воспроизведения и переключение декодера с предыдущей конфигурации USAC на текущую конфигурацию USAC, в результате чего декодер настраивается на использование текущей конфигурации USAC, если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC. Способ может дополнительно содержать отбрасывание и отказ от декодирования, посредством декодера, элемента предшествующего воспроизведения, если определено, что текущая конфигурация USAC идентична с предыдущей конфигурации USAC.
В некоторых вариантах осуществления определение, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, может включать в себя сравнение текущего идентификатора битового потока с предыдущим идентификатором битового потока.
В некоторых вариантах осуществления определение, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, может включать в себя сравнение длины текущей конфигурации USAC с длиной предыдущей конфигурации USAC.
В некоторых вариантах осуществления, если определено, что текущий идентификатор битового потока идентичен предыдущему идентификатору битового потока, и/или если определено, что длина текущей конфигурации USAC идентична длине предыдущей конфигурации USAC, определение, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, может включать в себя побитовое сравнение текущей конфигурации USAC с предыдущей конфигурацией USAC.
В некоторых вариантах осуществления способ может дополнительно содержать задержку вывода достоверных значений звуковых отсчетов, ассоциированных с текущим кадром, на один кадр, причем задержка вывода достоверных значений звуковых отсчетов на один кадр может включать в себя буферизацию каждого кадра звуковых отсчетов перед выводом и, если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC, выполнение плавного микширования кадра предыдущей конфигурации USAC, буферизованного в декодере, с текущим кадром текущей конфигурации USAC.
В соответствии с третьим аспектом настоящего раскрытия обеспечен декодер для декодирования закодированного битового потока MPEG-D USAC, закодированный битовый поток включает в себя множество кадров, каждый из которых состоит из одного или нескольких субкадров, причем закодированный битовый поток включает в себя в качестве представления коэффициентов линейного предсказания (LPC, linear prediction coefficient) один или несколько наборов линейных спектральных частот (LSF, line spectral frequency) для каждого субкадра. Декодер может быть выполнен с возможностью декодировать закодированный битовый поток, причем декодирование закодированного битового потока декодером может содержать декодирование наборов LSF для каждого субкадра из битового потока. Также декодирование закодированного битового потока декодером может содержать преобразование декодированных наборов LSF в представления линейных спектральных пар (LSP, linear spectral pair) для последующей обработки. Декодер может быть дополнительно выполнен с возможностью временно хранить для каждого кадра декодированные наборы LSF для интерполяции со следующим кадром.
Сконфигурированный, как указано выше, декодер позволяет непосредственно использовать последний набор, сохраненный в представлении LSF, избегая необходимости преобразования последнего набора, сохраненного в представлении LSP, в представление LSF.
В некоторых вариантах осуществления последующая обработка может включать в себя определение коэффициентов LPC, основанных на представлениях LSP, посредством применения алгоритма поиска корней, причем применение алгоритма поиска корней может включать в себя масштабирование коэффициентов представлений LSP в алгоритме поиска корней, чтобы избежать переполнения в диапазоне с фиксированной запятой.
В некоторых вариантах осуществления применение алгоритма поиска корня может включать в себя поиск полинома F1(z) и/или F2 (z) из представлений LSP посредством расширения соответствующих полиномов произведения, причем масштабирование выполняется как масштабирование коэффициентов полинома по степени 2. Это масштабирование может включать в себя или соответствовать операции сдвига разряда влево.
В некоторых вариантах осуществления декодер может быть выполнен с возможностью извлекать квантованные LPC-фильтры, вычислять их взвешенные версии и вычислять соответствующие прореженные спектры, причем до вычисления прореженных спектров к коэффициентам LPC может быть применена модуляция на основе предварительно вычисленных значений, которые могут быть извлечены из одной или нескольких поисковых таблиц.
В соответствии с четвертым аспектом настоящего раскрытия обеспечен способ декодирования закодированного битового потока MPEG-D USAC, закодированный битовый поток включает в себя множество кадров, каждый из которых состоит из одного или нескольких субкадров, причем закодированный битовый поток включает в себя в качестве представления коэффициентов линейного предсказания (LPC) один или несколько наборов линейных спектральных частот (LSF) для каждого субкадра. Способ может включать в себя декодирование закодированного битового потока, причем декодирование закодированного битового потока может содержать декодирование наборов LSF для каждого субкадра из битового потока. Также декодирование закодированного битового потока может содержать преобразование декодированных наборов LSF в представления линейных спектральных пар (LSP) для последующей обработки. Способ может дополнительно включать в себя временное хранение для каждого кадра декодированных наборов LSF для интерполяции со следующим кадром.
В некоторых вариантах осуществления последующая обработка может включать в себя определение коэффициентов LPC, основанных на представлениях LSP, посредством применения алгоритма поиска корней, причем применение алгоритма поиска корней может включать в себя масштабирование коэффициентов представлений LSP в алгоритме поиска корней, чтобы избежать переполнения в диапазоне с фиксированной запятой.
В некоторых вариантах осуществления применение алгоритма поиска корня может включать в себя поиск полинома F1(z) и/или F2 (z) из представлений LSP посредством расширения соответствующих полиномов произведения, причем масштабирование выполняется как масштабирование коэффициентов полинома по степени 2. Это масштабирование может включать в себя или соответствовать операции сдвига разряда влево.
В соответствии с пятым аспектом настоящего раскрытия обеспечен декодер для декодирования закодированного битового потока MPEG-D USAC. Декодер может быть выполнен с возможностью реализовывать инструмент упреждающего подавления искажений вследствие наложения спектров (FAC) для подавления искажений вследствие наложения спектров во временной области и/или оконной обработки при переходе между закодированными кадрами линейного предсказания с алгебраическим кодовым возбуждением (ACELP, Algebraic Code Excited Linear Prediction) и кадрами, закодированными с преобразованием (TC), в кодеке в области линейного предсказания (LPD, linear prediction domain). Декодер может быть дополнительно выполнен с возможностью выполнять переход из LPD в частотную область (FD, frequency domain) и применять инструмент FAC, если предыдущий декодированный подвергнутый оконной обработке сигнал был закодирован с помощью ACELP. Декодер может быть дополнительно выполнен с возможностью выполнять переход из FD в LPD и применять инструмент FAC, если первое декодированное окно было закодировано с помощью ACELP,
причем один и тот же инструмент FAC может использоваться и при переходе из LPD в FD, и при переходе из FD в LPD.
Сконфигурированный, как указано выше, декодер позволяет использовать инструмент упреждающего подавления искажений вследствие наложения спектров (FAC) в обоих кодеках LPD и FD.
В некоторых вариантах осуществления может быть добавлен нулевой входной отклик ACELP, когда инструмент FAC используется для перехода из FD в LPD.
В соответствии с шестым аспектом настоящего раскрытия обеспечен способ декодирования закодированного битового потока MPEG-D USAC посредством декодера, реализующего инструмент упреждающего подавления искажений вследствие наложения спектров (FAC) для подавления искажений вследствие наложения спектров во временной области и/или оконной обработки при переходе между закодированными кадрами линейного предсказания с алгебраическим кодовым возбуждением (ACELP, Algebraic Code Excited Linear Prediction) и кадрами, закодированными с преобразованием (TC), в кодеке в области линейного предсказания (LPD). Способ может включать в себя выполнение перехода из LPD в частотную область (FD) и применение инструмента FAC, если предыдущий декодированный подвергнутый оконной обработке сигнал был закодирован с помощью ACELP. Способ может дополнительно включать в себя выполнение перехода из FD в LPD и применение инструмента FAC, если первое декодированное окно было закодировано с помощью ACELP, причем один и тот же инструмент FAC может использоваться и при переходе из LPD в FD, и при переходе из FD в LPD.
В некоторых вариантах осуществления способ может дополнительно включать в себя добавление нулевого входного отклика ACELP, когда инструмент FAC используется для перехода из FD в LPD.
В соответствии с седьмым аспектом настоящего раскрытия обеспечен компьютерный программный продукт с инструкциями, выполненными с возможностью заставлять устройство, имеющее функциональную возможность обработки, выполнять посредством декодера способ декодирования закодированного битового потока MPEG-D USAC, способ декодирования закодированного битового потока MPEG-D USAC, закодированный битовый поток включает в себя множество кадров, каждый из которых состоит из одного или нескольких субкадров, причем закодированный битовый поток включает в себя в качестве представления коэффициентов линейного предсказания (LPC) один или несколько наборов линейных спектральных частот (LSF) для каждого субкадра, или способ декодирования закодированного битового потока MPEG-D USAC посредством декодера, реализующего инструмент упреждающего подавления искажений вследствие наложения спектров (FAC) для подавления искажений вследствие наложения спектров во временной области и/или оконной обработки при переходе между закодированными кадрами линейного предсказания с алгебраическим кодовым возбуждением (ACELP) и кадрами, закодированными с преобразованием (TC), в кодеке в области линейного предсказания (LPD).
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Теперь будут описаны иллюстративные варианты осуществления раскрытия лишь в качестве примера со ссылкой на прилагаемые чертежи.
Фиг. 1 схематично иллюстрирует пример декодера MPEG-D USAC.
Фиг. 2 иллюстрирует пример способа декодирования посредством декодера закодированного битового потока MPEG-D USAC.
Фиг. 3 иллюстрирует пример закодированного битового потока MPEG-D USAC, содержащего элемент предшествующего воспроизведения и элемент конфигурации USAC.
Фиг. 4 иллюстрирует пример декодера для декодирования закодированного битового потока MPEG-D USAC.
Фиг. 5 иллюстрирует пример способа декодирования закодированного битового потока MPEG-D USAC, закодированный битовый поток включает в себя множество кадров, каждый из которых состоит из одного или нескольких субкадров, причем закодированный битовый поток включает в себя в качестве представления коэффициентов линейного предсказания (LPC) один или несколько наборов линейных спектральных частот (LSF) для каждого субкадра.
Фиг. 6 иллюстрирует дополнительный пример способа декодирования закодированного битового потока MPEG-D USAC, закодированный битовый поток включает в себя множество кадров, каждый из которых состоит из одного или нескольких субкадров, причем закодированный битовый поток включает в себя в качестве представления коэффициентов линейного предсказания (LPC) один или несколько наборов линейных спектральных частот (LSF) для каждого субкадра, причем способ включает в себя временное хранение для каждого кадра декодированных наборов LSF для интерполяции со следующим кадром.
Фиг. 7 иллюстрирует еще один дополнительный пример способа декодирования закодированного битового потока MPEG-D USAC, закодированный битовый поток включает в себя множество кадров, каждый из которых состоит из одного или нескольких субкадров, причем закодированный битовый поток включает в себя в качестве представления коэффициентов линейного предсказания (LPC) один или несколько наборов линейных спектральных частот (LSF) для каждого субкадра.
Фиг. 8 иллюстрирует пример способа декодирования закодированного битового потока MPEG-D USAC посредством декодера, реализующего инструмент упреждающего подавления искажений вследствие наложения спектров (FAC) для подавления искажений вследствие наложения спектров во временной области и/или оконной обработки при переходе между закодированными кадрами линейного предсказания с алгебраическим кодовым возбуждением (ACELP) и кадрами, закодированными с преобразованием (TC), в кодеке в области линейного предсказания (LPD).
Фиг. 9 иллюстрирует пример декодера для декодирования закодированного битового потока MPEG-D USAC, причем декодер выполнен с возможностью реализовывать инструмент упреждающего подавления искажений вследствие наложения спектров (FAC) для подавления искажений вследствие наложения спектров во временной области и/или оконной обработки при переходе между закодированными кадрами линейного предсказания с алгебраическим кодовым возбуждением (ACELP) и кадрами, закодированными с преобразованием (TC), в кодеке в области линейного предсказания (LPD).
Фиг. 10 иллюстрирует пример устройства, имеющего функциональные возможности обработки.
ОПИСАНИЕ ИЛЛЮСТРАТИВНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Обработка битовых потоков MPEG-D USAC
Обработка битовых потоков MPEG-D USAC согласно настоящему описанию относится к разным этапам декодирования закодированного битового потока MPEG-D USAC, применяемого соответствующим декодером. Здесь и далее битовые потоки MPEG-D USAC могут относиться к битовым потокам, совместимым со стандартом, изложенным в ISO/IEC 23003-3:2012, "Информационные технологии - Технологии MPEG-аудио - Часть 3: Унифицированное кодирование речи и звука", и в последующих версиях, поправках и исправлениях (далее MPEG-D USAC или USAC).
Со ссылкой на пример на фиг. 1 показан декодер 1000 MPEG-D USAC. Декодер 1000 включает в себя функциональный блок 1200 MPEG Surround для обработки стерео или многоканального сигнала. Функциональный блок 1200 MPEG Surround может быть описан, например, в пункте 7.11 стандарта USAC. Данный пункт включен в настоящий документ посредством ссылки во всей своей полноте. Функциональный блок 1200 MPEG Surround может включать в себя блок декодирования один к двум (OTT, one-to-two) в качестве примера блока повышающего микширования, который может выполнять повышающее микширование из моно в стерео. Декодер 1000 дополнительно включает в себя инструмент 1400 демультиплексора полезной нагрузки битового потока, который разделяет полезную нагрузку битового потока на части для каждого инструмента и предоставляет каждому из инструментов информацию о полезной нагрузке битового потока, относящуюся к этому инструменту; инструмент 1500 бесшумного декодирования масштабных коэффициентов, который извлекает информацию из демультиплексора полезной нагрузки битового потока, разбирает эту информацию и декодирует закодированные масштабные коэффициенты Хаффмана и дифференциальной импульсно-кодовой модуляции (DPCM, differential pulse-code modulation); инструмент 1500 спектрального бесшумного декодирования, который извлекает информацию из демультиплексора полезной нагрузки битового потока, разбирает эту информацию, декодирует арифметически закодированные данные и воссоздает квантованные спектры; инструмент 1500 обратного квантования, который извлекает квантованные значения для спектров и преобразовывает целочисленные значения в не масштабированные воссозданные спектры; этот блок квантования предпочтительно является блоком квантования с компандированием, коэффициент компандирования которого зависит от выбранного режима базового кодирования; инструмент 1500 заполнения шумом, который используется для заполнения спектральных провалов в декодированных спектрах, которые возникают, когда спектральные значения квантуются до нуля, например, вследствие сильного ограничения на потребление битов в кодере; инструмент 1500 изменения масштабирования, который преобразовывает целочисленное представление масштабных коэффициентов в фактические значения и умножает не масштабированные подвергнутые обратному квантованию спектры на соответствующие масштабные коэффициенты; инструмент 1900 M/S, описанный в ISO/IEC 14496-3; инструмент 1700 временного формирования шума (TNS, temporal noise shaping), описанный в ISO/IEC 14496-3; инструмент 1800 набора фильтров/переключения блоков, применяющий инверсию частотного отображения, которое было выполнено в кодере; для инструмента набора фильтров предпочтительно используется обратное модифицированное дискретное косинусное преобразование (IMDCT, inverse modified discrete cosine transform); инструмент 1800 набора фильтров/переключения блоков с деформацией шкалы времени, который заменяет обычный инструмент набора фильтров/переключения блоков, когда разрешен режим деформации шкалы времени; набор фильтров предпочтительно является таким же (IMDCT), как для обычного набора фильтров, дополнительно подвергнутые оконной обработке отсчеты временной области отображаются из деформированной временной области в линейную временную область посредством переменного во времени изменения дискретизации; инструмент классификатора сигнала, который анализирует исходный входной сигнал и формирует из него управляющую информацию, которая инициирует выбор разных режимов кодирования; анализ входного сигнала обычно зависит от реализации и пытается выбрать оптимальный режим базового кодирования для заданного кадра входного сигнала; вывод классификатора сигнала может также факультативно использоваться для влияния на поведение других инструментов, например, MPEG Surround, расширенное копирование спектральной полосы (SBR, spectral band replication), набор фильтров с деформацией шкалы времени и другие; и инструмент 1600 линейного предсказания с алгебраическим кодовым возбуждением (ACELP), который обеспечивает способ эффективного представления сигнала возбуждения во временной области посредством объединения долгосрочного предиктора (адаптивное кодовое слово) с импульсовидной последовательностью (инновационное кодовое слово). Декодер 1000 может дополнительно включать в себя инструмент 1300 LPC-фильтра, который производит сигнал во временной области из сигнала в области возбуждения, пропуская воссозданный сигнал возбуждения через синтезирующий фильтр линейного предсказания. Декодер 1000 также может включать в себя блок 1100 расширенного копирования спектральной полосы (eSBR). Блок 2200 eSBR может быть описан, например, в пункте 7.5 стандарта USAC. Этот пункт полностью включен в настоящий документ по ссылке. Блок 1100 eSBR принимает закодированный битовый аудиопоток или закодированный сигнал от кодера. Блок 1100 eSBR может формировать высокочастотный компонент сигнала, который сливается с декодированным низкочастотным компонентом для получения декодированного сигнала. Другими словами, блок 1100 eSBR может восстановить верхний диапазон аудиосигнала.
Теперь со ссылкой на примеры на фиг. 2 и 4 будет проиллюстрирован способ и декодер для декодирования закодированного битового потока MPEG-D USAC. На этапе S101 закодированный битовый поток MPEG-D USAC принимают посредством приемника 101. Битовый поток представляет последовательность значений звуковых отсчетов и содержит множество кадров, причем каждый кадр содержит ассоциированные закодированные значения звуковых отсчетов. Битовый поток содержит элемент предшествующего воспроизведения, включающий в себя один или несколько предыдущих кадров, необходимых декодеру 100 для формирования полного сигнала, чтобы иметь возможность выдавать достоверные значения звуковых отсчетов, ассоциированные с текущим кадром. Полный сигнал (правильное воспроизведение звуковых отсчетов), например, может относиться к формированию сигнала декодером во время запуска или перезапуска. Битовый поток дополнительно содержит элемент конфигурации USAC, содержащий текущую конфигурацию USAC как полезную нагрузку и текущий идентификатор битового потока (ID_CONFIG_EXT_STREAM_ID). Конфигурация USAC, включенная в элемент конфигурации USAC, может использоваться декодером 100 как текущая конфигурация, если возникает изменение конфигурации. Элемент конфигурации USAC может быть включен в битовый поток как часть элемента предшествующего воспроизведения.
На этапе S102 элемент конфигурации USAC (элемент предшествующего воспроизведения) разбирают посредством анализатора 102 вплоть до текущего идентификатора битового потока. Кроме того, сохраняют начальную позицию элемента конфигурации USAC и начальную позицию текущего идентификатора битового потока в битовом потоке.
Со ссылкой на пример на фиг. 3 схематично проиллюстрирована позиция элемента 1 конфигурации USAC в битовом потоке MPEG-D USAC относительно элемента 4 предшествующего воспроизведения. Как проиллюстрировано в примере на фиг. 3 и уже упомянуто выше, элемент 1 конфигурации USAC (элемент конфигурации USAC) включает в себя текущую конфигурацию 2 USAC и текущий идентификатор 3 битового потока. Элемент 4 предшествующего воспроизведения включает в себя предыдущие кадры 5, 6 (UsacFrame ()[n-1], UsacFrame ()[n-2]). Текущий кадр представлен как UsacFrame ()[n]. В примере на фиг. 3 элемент 4 предшествующего воспроизведения дополнительно включает в себя элемент 1 конфигурации USAC. Чтобы определить изменение конфигурации, элемент 4 предшествующего воспроизведения может быть разобран вплоть до элемента 1 конфигурации USAC, который сам может быть разобран вплоть до текущего идентификатора 3 битового потока.
Далее на этапе S103 посредством модуля 103 определения определяют, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, и если текущая конфигурация USAC отличается от предыдущей конфигурации USAC, сохраняют текущую конфигурацию USAC. Сохраненная конфигурация USAC затем используется декодером 100 как текущая конфигурация. Использование элемента конфигурации USAC согласно настоящему описанию позволяет тем самым избежать ненужного (каждый раз, независимо от изменения конфигурации) декодирования элемента предшествующего воспроизведения, в частности, предыдущих кадров, включенных в элемент предшествующего воспроизведения.
В варианте осуществления модуль 103 определения определяет (модуль 103 определения может быть выполнен с возможностью определять), отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством сравнения текущего идентификатора битового потока с предыдущим идентификатором битового потока. Если идентификатор битового потока отличается, можно определить, что конфигурация USAC изменилась.
В качестве альтернативы или дополнительно, если определено, что текущий идентификатор битового потока идентичен предыдущему идентификатору битового потока, в варианте осуществления модуль 103 определения может определить, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством сравнения длины текущей конфигурации USAC (config_length_in_bits: длина=начало идентификатора битового потока - начало конфигурации USAC) с длиной предыдущей конфигурации USAC. Если определено, что длина отличается, можно определить, что конфигурация USAC изменилась.
В случае, если текущий идентификатор битового потока и/или длина текущей конфигурации USAC указывают, что конфигурация USAC изменилась, текущую конфигурацию USAC сохраняют. Сохраненная текущая конфигурация USAC может использоваться позже в качестве предыдущей конфигурации USAC для сравнения, когда будет принят следующий элемент конфигурации USAC. В качестве примера это может быть выполнено следующим образом:
a. перейти назад к начальной позиции конфигурации USAC в битовом потоке;
b. выполнить считывание (и сохранение) полезной нагрузки конфигурации USAC (не разобранной) размером ((config_length_in_bits+7)/8) байтов.
Если определено, что текущий идентификатор битового потока идентичен предыдущему идентификатору битового потока, и/или если определено, что длина текущей конфигурации USAC идентична длине предыдущей конфигурации USAC, в варианте осуществления модуль103 определения может определить, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством побитового сравнения текущей конфигурации USAC с предыдущей конфигурацией USAC. В качестве примера это может быть выполнено следующим образом:
a. перейти назад к начальной позиции конфигурации USAC в битовом потоке;
b. выполнить побайтовое считывание полезной нагрузки конфигурации USAC (не разобранной) размером ((config_length_in_bits+7)/8) байтов;
c. сравнивать каждый новый байт полезной нагрузки с соответствующим байтом предыдущей полезной нагрузки;
d. если байт отличается, заменить старый (предыдущий) новым (текущим);
e. если замена была применена, конфигурация USAC изменилась.
Снова со ссылкой на примеры на фиг. 2 и 4 на этапе S104 декодер 100 инициализируют посредством инициализатора 104, если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC. Инициализация декодера 100 содержит декодирование одного или нескольких предыдущих кадров, включенных в элемент предшествующего воспроизведения, и переключение декодера 100 с предыдущей конфигурации USAC на текущую конфигурацию USAC, в результате чего декодер 100 настраивается на использование текущей конфигурации USAC, если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC. Если определено, что текущая конфигурация USAC идентична предыдущей конфигурацией USAC, на этапе S105 отбрасывают элемент предшествующего воспроизведения и не выполняют декодирование посредством декодера 100. В этом случае можно избежать декодирования элемента предшествующего воспроизведения каждый раз, независимо от изменения конфигурации USAC, поскольку изменение конфигурации может быть определено на основе элемента конфигурации USAC, т.е. без декодирования элемента предшествующего воспроизведения.
В варианте осуществления вывод достоверных значений звуковых отсчетов, ассоциированных с текущим кадром, могут быть задержаны декодером 100 на один кадр. Задержка вывода достоверных значений звуковых отсчетов на один кадр может включать в себя буферизацию каждого кадра звуковых отсчетов перед выводом, причем если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC, декодером 100 выполняется плавное микширование кадра предыдущей конфигурации USAC, буферизованного в декодере 100, с текущим кадром текущей конфигурации USAC.
В связи с этим можно считать, что в декодере 100 обеспечена схема маскировки ошибок, которая может внести в вывод декодера 100 дополнительную задержку на один кадр. Дополнительная задержка означает, что последний вывод (например, PCM) предыдущей конфигурации все еще может быть доступен в тот момент, когда будет определено, что конфигурация USAC изменилась. Это позволяет начать плавное микширование (затухание) на 128 отсчетов раньше, чем описано в стандарте MPEG-D USAC, т.е. в конце последнего предыдущего кадра, а не в начале состояния сброшенного кадра. Это означает, что сброс декодера не должен применяться вообще.
В целом сброс декодера на один кадр по вычислительной сложности сравним с декодированием обычного кадра. Таким образом, это позволяет снизить сложность одного кадра в тот момент времени, когда затраты составляли бы уже (количество предыдущих кадров+1) * (сложность для одного кадра), что привело бы к пиковой нагрузке. Таким образом, плавное микширование (или затухание) вывода, относящегося к текущей (новой) конфигурации, может начаться уже в конце последнего предыдущего кадра. Как правило декодер должен быть сброшен с предыдущей (старой) конфигурацией, чтобы получить дополнительные 128 отсчетов, которые используются для плавного микширования с первыми 128 отсчетами первого текущего (фактического) кадра (ни одного из предыдущих кадров) с текущей (новой) конфигурацией.
Теперь со ссылкой на пример на фиг. 5 проиллюстрирован способ декодирования закодированного битового потока MPEG-D USAC, закодированный битовый поток включает в себя множество кадров, каждый из которых состоит из одного или нескольких субкадров, причем закодированный битовый поток включает в себя в качестве представления коэффициентов линейного предсказания (LPC) один или несколько наборов линейных спектральных частот (LSF) для каждого субкадра. На этапе S201 принимают закодированный битовый поток MPEG-D USAC. Затем декодирование закодированного битового потока включает в себя на этапе S202 декодирование посредством декодера (декодер выполнен с возможностью декодировать) наборов LSF для каждого субкадра из битового потока. Затем на этапе S203 декодированные наборы LSF преобразовывают посредством декодера в представления линейных спектральных пар (LSP) для последующей обработки.
Обычно пары LSP имеют несколько свойств (например, меньшую чувствительность к шуму квантования), которые дают им преимущество перед прямым квантованием коэффициентов LPC.
Со ссылкой на фиг. 6 в варианте осуществления для каждого кадра декодированные наборы LSF могут быть временно сохранены декодером для интерполяции со следующим кадром, этап S204a. В этом отношении также может быть достаточно сохранить только последний набор в представлении LSF, поскольку последний набор из предыдущего кадра необходим для целей интерполяции. Временное хранение наборов LSF позволяет напрямую использовать наборы LSF:
без необходимости преобразовывать последний набор, сохраненный в представлении LSP, в представление LSF:
Со ссылкой на пример на фиг. 7 в качестве альтернативы или дополнительно в варианте осуществления последующая обработка может включать в себя определение коэффициентов LPC на основе представлений LSP посредством применения алгоритма поиска корней, причем применение алгоритма поиска корней может включать в себя масштабирование, этап S204b. Коэффициенты представлений LSP могут быть масштабированы в рамках алгоритма поиска корней, чтобы избежать переполнения в диапазоне c фиксированной запятой.
В варианте осуществления применение алгоритма поиска корней может включать поиск полинома F1(z) и/или F2(z) из представлений LSP посредством расширения соответствующих полиномов произведения, при этом масштабирование может быть выполнено как масштабирование коэффициентов полинома по степени 2. Это определяет операцию сдвига разряда влево 1<<LPD_COEFF_SCALE, значение LPD_COEFF_SCALE по умолчанию равно 8. В качестве примера это может быть выполнено следующим образом.
Представление LSP полинома LP состоит просто из местоположения корней P и Q, т.е. такого ω, что . Поскольку они встречаются попарно, необходимо передать только половину фактических корней (условно от 0 до π). Поэтому общее количество коэффициентов для P и Q равно p - количеству исходных коэффициентов LP (не считая ). Обычный алгоритм для их поиска заключается в оценке полинома в последовательности близко расположенных точек вокруг единичной окружности и наблюдения, когда результат меняет знак; когда это происходит, корень должен лежать между проверяемыми точками. Поскольку корни P перемежаются с корнями Q, достаточно одного прохода, чтобы найти корни обоих многочленов. Хотя пары LSP находятся в диапазоне [-1,1] по определению (cos()), для коэффициентов LP это не так. Поэтому в алгоритме поиска корней необходимо выполнить масштабирование. Ниже приведен соответствующий пример кода:
Найти полином F1(z) или F2 (z) из пар LSP.
Это выполняется посредством расширения полиномов произведения:
где LSP_i являются парами LSP в косинусной области.
R.A.Salami, Октябрь 1990 года
Приведенный ниже псевдокод реализует показанное выше масштабирование (не является частью алгоритма R.A. Salami):
Масштабирование в алгоритме поиска корней, чтобы избежать переполнения в диапазоне с фиксированной запятой:
В некоторых вариантах осуществления декодер может быть выполнен с возможностью извлекать квантованные LPC-фильтры, вычислять их взвешенные версии и вычислять соответствующие прореженные спектры, причем до вычисления прореженных спектров к коэффициентам LPC может быть применена модуляция на основе предварительно вычисленных значений, которые могут быть извлечены из одной или нескольких поисковых таблиц.
В общем случае при вычислении коэффициента усиления с возбуждением посредством кода с преобразованием (TCX, transform coded excitation) до применения обратного модифицированного дискретного косинусного преобразования (MDCT, modified discrete cosine transform) могут быть извлечены два квантованных LPC-фильтра, соответствующие обеим крайним точкам блока MDCT (т.е. левой и правой точкам сворачивания), могут быть вычислены их взвешенные версии, и могут быть вычислены соответствующие прореженные спектры. Эти взвешенные спектры LPC могут быть вычислены посредством применения нечетного дискретного преобразования Фурье (ODFT, odd discrete Fourier transform) к коэффициентам LPC-фильтра. Перед вычислением ODFT к коэффициентам LPC может быть применена комплексная модуляция, с тем чтобы частотные ячейки ODFT могли быть отлично выровнены с частотными ячейками преобразования MDCT. Это может быть описано, например, в пункте 7.15.2 стандарта USAC. Этот пункт полностью включен в настоящий документ по ссылке. Поскольку единственными возможными значениями для M (ccfl/16) могут быть 64 и 48, для этой комплексной модуляции может использоваться поиск по таблице.
Пример модуляции с использованием таблицы поиска приведен ниже:
Теперь со ссылкой на примеры на фиг. 8 и 9 проиллюстрирован способ декодирования закодированного битового потока MPEG-D USAC посредством декодера, реализующего инструмент упреждающего подавления искажений вследствие наложения спектров (FAC) для подавления искажений вследствие наложения спектров во временной области и/или оконной обработки при переходе между закодированными кадрами линейного предсказания с алгебраическим кодовым возбуждением (ACELP) и кадрами, закодированными с преобразованием (TC), в кодеке в области линейного предсказания (LPD).
Инструмент FAC может быть описан в пункте 7.16 стандарта USAC, например. Этот пункт полностью включен в настоящий документ по ссылке. Обычно упреждающее подавление искажений вследствие наложения спектров (FAC) выполняется во время переходов между кадрами ACELP и TC в кодеке LPD, чтобы получить окончательный сигнал синтеза. Цель FAC состоит в том, чтобы подавить искажения вследствие наложения спектров во временной области и оконной обработки, внесенные TC, и которые не могут быть подавлены предыдущим или последующим кадром ACELP.
На этапе S301 закодированный битовый поток MPEG-D USAC принимается декодером 300. На этапе S302 выполняется переход из LPD в частотную область (FD), и применяется инструмент 301 FAC, если предыдущий декодированный подвергнутый оконной обработке сигнал был закодирован с помощью ACELP. Кроме того, на этапе S303 выполняется переход из FD в LPD, и применяется (тот же самый) инструмент 301 FAC, если первое декодированное окно было закодировано с помощью ACELP. Какой переход будет выполнен, может быть установлено в процессе декодирования, поскольку это зависит от того, как был закодирован битовый поток MPEG-D USAC. Использование всего одной функции (lpd_fwd_alias_cancel_tool ()) позволяет использовать меньше кода и памяти и, таким образом, уменьшить вычислительную сложность.
В варианте осуществления дополнительно может быть добавлен нулевой входной отклик ACELP (ACELP ZIR, zero input response), когда инструмент 301 FAC используется для перехода из FD в LPD. ACELP ZIR фактически может представлять собой синтезированный выходной сигнал последнего закодированного субкадра ACELP, который используется в сочетании с инструментом FAC, чтобы формировать первые новые выходные отсчеты после переключения кодека с LPD на FD. Добавление ACELP ZIR к инструменту FAC (например, как вход в инструмент FAC) обеспечивает незаметный переход из FD в LPD и/или использование одного и того же инструмента FAC для переходов из LPD в FD и/или из FD в LPD.
Как отмечено выше, один и тот же инструмент FAC может быть применен и к переходу из LPD в FD, и к переходу из FD в LPD. В данном случае использование одного и того же инструмента может означать, что одна и та же функция в коде приложения декодирования применяется (или вызывается) независимо от перехода между LPD и FD или наоборот. Например эта функция может представлять собой функцию lpd_fwd_alias_cancel_tool(), описанную ниже.
Функция, реализующая инструмент FAC (например, функция lpd_fwd_alias_cancel_tool()) может принимать информацию, относящуюся к коэффициентам фильтра, ZIR, длине субкадра, длине FAC и/или сигналу FAC в качестве ввода. В представленном ниже примере кода эта информация может быть представлена как *lp_filt_coeff (коэффициенты фильтра), *zir (ZIR), len_subfrm (длина субкадра), fac_length (длина FAC) и *fac_signal (сигнал FAC).
Как отмечено выше, функция, реализующая инструмент FAC (например, функция lpd_fwd_alias_cancel_tool()) может быть разработана таким образом, чтобы ее можно было вызывать во время любых случаев декодирования, независимо от текущей области кодирования (например, LPD или FD). Это означает, что одна и та же функция может быть вызвана при переключении с FD на LPD или наоборот. В соответствии с этим предложенный инструмент FAC или функция, реализующая инструмент FAC, обеспечивают техническое преимущество или улучшение по сравнению с предшествующими реализациями в отношении выполнение кода при декодировании. Кроме того, полученная в результате гибкость при декодировании допускает оптимизацию кода, не доступную в предшествующих реализациях (например, в реализациях, которые используют разные функции для реализации инструментов FAC в FD и LPD).
Далее приведен пример кода для функции, реализующей инструмент FAC:
Как можно видеть из приведенного выше примера кода, функцию lpd_fwd_alias_cancel_tool(), реализующую инструмент FAC, можно вызывать независимо от текущей области кодирования (например, FD или LPD), и она может соответствующим образом обрабатывать переходы между областями кодирования.
Со ссылкой на пример на фиг. 10 следует отметить, что способы согласно настоящему описанию также могут быть реализованы соответствующими компьютерными программными продуктами с инструкциями, выполненными с возможностью заставить устройство 400, имеющее функциональные возможности 401 обработки, выполнять упомянутые способы.
Интерпретация
Если специально не указано иное, как очевидно из последующих обсуждений, следует понимать, что во всех обсуждениях раскрытия использование таких терминов, как "обработка", "вычисление", "определение", анализ" и т.п., относится к действиям и/или процессам компьютера или вычислительной системы, или подобных электронных устройств, которые манипулируют и/или преобразуют данные, представленные в виде физических, например, электронных, величин, в другие данные, аналогично представленные в виде физических величин.
Аналогичным образом термин "процессор" может относиться к любому устройству или части устройства, которые обрабатывают электронные данные, чтобы преобразовать эти электронные данные в другие электронные данные. "Компьютер", "вычислительная машина" или "вычислительная платформа" могут включать в себя один или несколько процессоров.
Как указано выше, способы, описанные в настоящем документе, могут быть реализованы как компьютерный программный продукт с инструкциями, выполненными с возможностью заставлять устройство, имеющее функциональную возможность обработки, выполнять упомянутые способы. Может использоваться любой процессор, способный выполнять набор инструкций (последовательных или иных), определяющих действия, которые должны быть выполнены. Таким образом, одним из примеров может быть типичная система обработки, которая может включать в себя один или несколько процессоров. Каждый процессор может включать в себя один или несколько элементов из центрального процессора, графического процессора, тензорного процессора и программируемого блока ЦОС. Система обработки дополнительно может включать в себя подсистему памяти, включающую в себя основное ОЗУ и/или статическое ОЗУ, и/или ПЗУ. Для связи между компонентами может быть предусмотрена шинная подсистема. Система обработки также может представлять собой распределенную систему обработки с процессорами, соединенными посредством сети. Если система обработки требует наличия дисплея, такой дисплей может быть предусмотрен, например, жидкокристаллический дисплей (LCD, liquid crystal display), дисплей на светоизлучающих диодах (LED, light emitting diode) любого типа, например, в том числе дисплей на органических светоизлучающих диодах (OLED, organic light emitting diode), или дисплей на катодно-лучевой трубке (CRT, cathode ray tube). Если требуется ручной ввод данных, система обработки также может включать в себя устройство ввода, например, одно или несколько устройств из устройства ввода буквенно-цифровых данных, такого как клавиатура, устройства управления указателем, такого как мышь, и т.д. Система обработки также может включать в себя систему хранения данных, например, дисковый накопитель. Система обработки может включать в себя устройство вывода звука, например, один или несколько громкоговорителей или портов для наушников, и устройство сетевого интерфейса.
Компьютерный программный продукт может представлять собой, например, программное обеспечение. Программное обеспечение может быть реализовано различными способами. Программное обеспечение может передаваться или приниматься по сети через устройство сетевого интерфейса или распространяться через носитель. Носитель может включать в себя, но без ограничения, энергонезависимый носитель, энергозависимый носитель и передающий носитель. Энергонезависимые носители могут включать в себя, например, оптические, магнитные диски и магнитооптические диски. Энергозависимые носители могут включать в себя динамическую память, например, основную память. Передающие носители могут включать в себя коаксиальные кабели, медные провода и оптоволокно, в том числе провода, составляющие шинную подсистему. Передающие носители также могут принимать форму акустических или световых волн, например, генерируемых при радиоволновой и инфракрасной передаче данных. Например, термин "носитель", соответственно, включает в себя, но без ограничения, твердотельную память, компьютерный продукт, воплощенный на оптических и магнитных носителях; носитель, несущий распространяемый сигнал, обнаруживаемый по меньшей мере одним процессором или одним или несколькими процессорами и представляющий набор инструкций, которые при их исполнении реализуют способ; и передающий носитель в сети, несущий распространяемый сигнал, обнаруживаемый по меньшей мере одним процессором из одного или нескольких процессоров и представляющий набор инструкций.
Следует отметить, что когда выполняемый способ включает в себя несколько элементов, например, несколько этапов, не подразумевается упорядочивание таких элементов, если специально не указано иное.
Следует понимать, что этапы обсуждаемых способов выполняются в одном иллюстративном варианте осуществления соответствующим процессором (или процессорами) обрабатывающей (например, компьютерной) системы, исполняющей инструкции (компьютерно-читаемый код), хранящиеся в памяти. Также следует понимать, что раскрытие не ограничено какой-либо конкретной методикой реализации или программирования, и что раскрытие может быть реализовано с использованием любых подходящих методик для реализации функциональности, описанной в настоящем документе. Раскрытие не ограничено каким-либо конкретным языком программирования или операционной системой.
Ссылка в настоящем раскрытии на "один вариант осуществления", "некоторые варианты осуществления" или "вариант осуществления" означает, что конкретный признак, описанный в связи с вариантом осуществления, включен по меньшей мере в один вариант воплощения настоящего раскрытия. Таким образом, фразы "в одном варианте осуществления", "в некоторых вариантах осуществления" или "в варианте осуществления", встречающиеся в различных местах настоящего раскрытия, не обязательно относятся к одному и тому же варианту осуществления. Кроме того, конкретные признаки могут быть объединены любым подходящим образом, как будет очевидно специалисту в данной области техники из настоящего раскрытия, в одном или нескольких вариантах осуществления.
В приведенной ниже формуле изобретения и приведенном здесь описании любой из терминов "содержащий", "состоящий из" или "который содержит" является открытым термином, который означает включение по меньшей мере последующих элементов/характеристик, но не исключает другие. Таким образом, термин "содержащий", когда он используется в формуле изобретения, не должен толковаться как ограничивающий средства, элементы или этапы, перечисленные далее. Любой из терминов "включающий в себя" или "который включает", используемый в настоящем документе, также является открытым термином, который также означает включение по меньшей мере элементов/характеристик, которые следуют за этим термином, но не исключая другие. Таким образом, "включать в себя" является синонимом значения "содержать".
Следует понимать, что в приведенном выше описании иллюстративных вариантов осуществления раскрытия различные признаки раскрытия иногда сгруппированы вместе в одном иллюстративном варианте осуществления, фигуре или описании с целью упрощения раскрытия и облегчения понимания одного или нескольких различных аспектов изобретения. Однако такой способ раскрытия не следует толковать как отражающий намерение, что формула изобретения требует больше признаков, чем явно указано в каждом пункте формулы. Напротив, как следует из следующей ниже формулы изобретения, аспекты изобретения заключены в меньшем количестве признаков, чем все признаки одного раскрытого выше иллюстративного варианта осуществления. Таким образом, последующая за описанием формула изобретения тем самым включена в настоящее описание, при этом каждый пункт формулы изобретения является самостоятельным, как отдельный иллюстративный вариант осуществления настоящего раскрытия.
Кроме того, хотя некоторые описанные здесь иллюстративные варианты осуществления включают в себя некоторые, но не другие признаки, включенные в другие варианты осуществления, комбинации признаков различных иллюстративных вариантов осуществления подразумеваются в пределах объема раскрытия и образуют разные иллюстративные варианты осуществления, как будет понятно специалистам в данной области. Например, в следующих пунктах формулы изобретения любой из заявленных примерных вариантов осуществления может быть использован в любой комбинации.
В приведенном здесь описании изложены многочисленные конкретные детали. Однако понятно, что варианты осуществления раскрытия могут быть реализованы без этих конкретных деталей. В других случаях известные способы, структуры устройств и технологии не были показаны подробно, чтобы не препятствовать пониманию настоящего описания.
Таким образом, хотя были описаны предположительно наилучшие варианты осуществления раскрытия, специалисты в данной области поймут, что другие и дальнейшие изменения могут быть сделаны без отступления от духа раскрытия, и предполагается, что заявлены все такие изменения и модификации, которые входят в объем раскрытия. Например, в способах, описанных в рамках объема настоящего раскрытия, могут быть добавлены или исключены этапы.
название | год | авторы | номер документа |
---|---|---|---|
КОДЕР АУДИОСИГНАЛА, ДЕКОДЕР АУДИОСИГНАЛА, СПОСОБ КОДИРОВАНИЯ ИЛИ ДЕКОДИРОВАНИЯ АУДИОСИГНАЛА С УДАЛЕНИЕМ АЛИАСИНГА (НАЛОЖЕНИЯ СПЕКТРОВ) | 2010 |
|
RU2591011C2 |
ПЕРЕХОД ОТ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ С ПРЕОБРАЗОВАНИЕМ К КОДИРОВАНИЮ/ДЕКОДИРОВАНИЮ С ПРЕДСКАЗАНИЕМ | 2014 |
|
RU2675216C1 |
СПОСОБЫ, УСТРОЙСТВА И СИСТЕМЫ ДЛЯ УЛУЧШЕНИЯ УНИФИЦИРОВАННОГО ДЕКОДИРОВАНИЯ И КОДИРОВАНИЯ РЕЧИ И ЗВУКА | 2018 |
|
RU2779265C2 |
АУДИОКОДЕР ДЛЯ КОДИРОВАНИЯ МНОГОКАНАЛЬНОГО СИГНАЛА И АУДИОДЕКОДЕР ДЛЯ ДЕКОДИРОВАНИЯ КОДИРОВАННОГО АУДИОСИГНАЛА | 2016 |
|
RU2679571C1 |
КОДЕР, ИСПОЛЬЗУЮЩИЙ ПРЯМОЕ ПОДАВЛЕНИЕ ПОМЕХ ДИСКРЕТИЗАЦИИ | 2011 |
|
RU2575809C2 |
АУДИОКОДЕР ДЛЯ КОДИРОВАНИЯ МНОГОКАНАЛЬНОГО СИГНАЛА И АУДИОДЕКОДЕР ДЛЯ ДЕКОДИРОВАНИЯ КОДИРОВАННОГО АУДИОСИГНАЛА | 2016 |
|
RU2680195C1 |
КОДЕР АУДИО И ДЕКОДЕР, ИМЕЮЩИЙ ГИБКИЕ ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ КОНФИГУРАЦИИ | 2012 |
|
RU2575390C2 |
НАПОЛНЕНИЕ ШУМОМ БЕЗ ПОБОЧНОЙ ИНФОРМАЦИИ ДЛЯ CELP-ПОДОБНЫХ КОДЕРОВ | 2014 |
|
RU2648953C2 |
РАСПОЛОЖЕНИЕ ЭЛЕМЕНТА КАДРА В КАДРАХ ПОТОКА БИТОВ, ПРЕДСТАВЛЯЮЩЕГО АУДИО СОДЕРЖИМОЕ | 2012 |
|
RU2589399C2 |
ПЕРЕДАЧА ДЛИНЫ ЭЛЕМЕНТА КАДРА ПРИ КОДИРОВАНИИ АУДИО | 2012 |
|
RU2571388C2 |
Изобретение относится к области вычислительной техники для обработки аудиоданных. Технический результат заключается в снижении вычислительной сложности при декодировании закодированного битового потока MPEG-D USAC. Технический результат достигается за счет этапов, на которых: декодируют наборы LSF для каждого субкадра из битового потока; и преобразовывают декодированные наборы LSF в представления линейных спектральных пар (LSP) для последующей обработки, причем последующая обработка включает в себя определение коэффициентов LPC, основанных на представлениях LSP, посредством применения алгоритма поиска корней, и причем применение алгоритма поиска корней включает в себя масштабирование коэффициентов представлений LSP в алгоритме поиска корней, чтобы избежать переполнения в диапазоне с фиксированной запятой, причем применение алгоритма поиска корня включает в себя поиск полинома F1(z) и/или F2 (z) из представлений LSP посредством расширения соответствующих полиномов произведения, причем масштабирование выполняется как масштабирование коэффициентов полинома по степени 2, и причем масштабирование включает в себя операцию сдвига разряда влево. 7 н. и 6 з.п. ф-лы, 10 ил.
1. Декодер для декодирования закодированного битового потока MPEG-D USAC, декодер содержит:
приемник, выполненный с возможностью принимать закодированный битовый поток, причем битовый поток представляет последовательность значений звуковых отсчетов и содержит множество кадров, причем каждый кадр содержит ассоциированные закодированные значения звуковых отсчетов, причем битовый поток содержит элемент предшествующего воспроизведения, включающий в себя один или несколько предыдущих кадров, необходимых декодеру для формирования полного сигнала, чтобы иметь возможность выдавать достоверные значения звуковых отсчетов, ассоциированные с текущим кадром, и причем битовый поток дополнительно содержит элемент конфигурации USAC, содержащий текущую конфигурацию USAC в качестве полезной нагрузки и текущий идентификатор битового потока;
модуль разбора, выполненный с возможностью выполнять разбор элемента конфигурации USAC вплоть до текущего идентификатора битового потока и сохранять начальную позицию элемента конфигурации USAC и начальную позицию текущего идентификатора битового потока в битовом потоке;
модуль определения, выполненный с возможностью определять, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством сравнения длины текущей конфигурации USAC config_length_in_bits с длиной предыдущей конфигурации USAC, и если текущая конфигурация USAC отличается от предыдущей конфигурации USAC, сохранять текущую конфигурацию USAC, причем модуль определения выполнен с возможностью переходить назад к начальной позиции элемента конфигурации USAC в битовом потоке и выполнять считывание и сохранять неразобранную полезную нагрузку конфигурации USAC размером (config_length_in_bits+7)/8) байтов; и
инициализатор, выполненный с возможностью инициализировать декодер, если модуль определения определяет, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC, причем инициализация декодера содержит:
декодирование одного или нескольких предыдущих кадров, включенных в элемент предшествующего воспроизведения,
переключение декодера с предыдущей конфигурации USAC на текущую конфигурацию USAC, в результате чего декодер настраивается на использование текущей конфигурации USAC, если модуль определения определяет, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC, и
причем декодер выполнен с возможностью отбрасывать и не декодировать элемент предшествующего воспроизведения, если модуль определения определяет, что текущая конфигурация USAC идентична предыдущей конфигурации USAC.
2. Декодер по п. 1, в котором модуль определения выполнен с возможностью определять, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством сравнения текущего идентификатора битового потока с предыдущим идентификатором битового потока.
3. Декодер по п. 1 или 2, в котором, если определено, что текущий идентификатор битового потока идентична предыдущему идентификатору битового потока, и/или если определено, что длина текущей конфигурации USAC идентична длине предыдущей конфигурации USAC, модуль определения выполнен с возможностью определять, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством побитового сравнения текущей конфигурации USAC с предыдущей конфигурацией USAC.
4. Декодер по любому из пп. 1-3, причем декодер дополнительно выполнен с возможностью задерживать вывод достоверных значений звуковых отсчетов, ассоциированных с текущим кадром одним кадром, причем задержка вывода достоверных значений звуковых отсчетов на один кадр включает в себя буферизацию каждого кадра звуковых отсчетов перед выводом, и причем декодер дополнительно выполнен с возможностью, если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC, выполнять плавное микширование кадра предыдущей конфигурации USAC, буферизованного в декодере, с текущим кадром текущей конфигурации USAC.
5. Способ декодирования посредством декодера закодированного битового потока MPEG-D USAC, способ содержит этапы, на которых:
принимают закодированный битовый поток, причем битовый поток представляет последовательность значений звуковых отсчетов и содержит множество кадров, причем каждый кадр содержит ассоциированные закодированные значения звуковых отсчетов, причем битовый поток содержит элемент предшествующего воспроизведения, включающий в себя один или несколько предыдущих кадров, необходимых декодеру для формирования полного сигнала, чтобы иметь возможность выдавать достоверные значения звуковых отсчетов, ассоциированные с текущим кадром, и причем битовый поток дополнительно содержит элемент конфигурации USAC, содержащий текущую конфигурацию USAC в качестве полезной нагрузки и текущий идентификатор битового потока;
выполняют разбор элемента конфигурации USAC вплоть до текущего идентификатора битового потока и сохраняют начальную позицию элемента конфигурации USAC и начальную позицию текущего идентификатора битового потока в битовом потоке;
определяют, отличается ли текущая конфигурация USAC от предыдущей конфигурации USAC, посредством сравнения длины текущей конфигурации USAC config_length_in_bits с длиной предыдущей конфигурации USAC, и если текущая конфигурация USAC отличается от предыдущей конфигурации USAC, сохраняют текущую конфигурацию USAC, причем определение включает в себя переход назад к начальной позиции элемента конфигурации USAC в битовом потоке и выполнение считывания и сохранения неразобранной полезной нагрузки конфигурации USAC размером (config_length_in_bits+7)/8), байтов; и
инициализируют декодер, если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC,
в котором инициализация декодера содержит этапы, на которых:
декодируют один или несколько предыдущих кадров, включенных в элемент предшествующего воспроизведения, и переключают декодер с предыдущей конфигурации USAC на текущую конфигурацию USAC, в результате чего декодер настраивается на использование текущей конфигурации USAC, если определено, что текущая конфигурация USAC отличается от предыдущей конфигурации USAC,
причем способ дополнительно содержит этап, на котором:
отбрасывают и отказываются декодировать, посредством декодера, элемент предшествующего воспроизведения, если определено, что текущая конфигурация USAC идентична предыдущей конфигурации USAC.
6. Декодер для декодирования закодированного битового потока MPEG-D USAC, закодированный битовый поток включает в себя множество кадров, каждый из которых состоит из одного или нескольких субкадров, причем закодированный битовый поток включает в себя в качестве представления коэффициентов линейного предсказания (LPC, linear prediction coefficient) один или несколько наборов линейных спектральных частот (LSF, line spectral frequency) для каждого субкадра,
причем декодер выполнен с возможностью:
декодировать закодированный битовый поток, и
причем декодирование закодированного битового потока декодером содержит:
декодирование наборов LSF для каждого субкадра из битового потока; и
преобразование декодированных наборов LSF в представления линейных спектральных пар (LSP, linear spectral pair) для последующей обработки,
причем последующая обработка включает в себя определение коэффициентов LPC, основанных на представлениях LSP, посредством применения алгоритма поиска корней, причем применение алгоритма поиска корней включает в себя масштабирование коэффициентов представлений LSP в алгоритме поиска корней, чтобы избежать переполнения в диапазоне с фиксированной запятой, применение алгоритма поиска корня включает в себя поиск полинома F1(z) и/или F2 (z) из представлений LSP посредством расширения соответствующих полиномов произведения, причем масштабирование выполняется как масштабирование коэффициентов полинома по степени 2, и причем масштабирование включает в себя операцию сдвига разряда влево, и причем декодер дополнительно выполнен с возможностью временно сохранять для каждого кадра декодированные наборы LSF для интерполяции со следующим кадром.
7. Декодер по п. 6, причем декодер выполнен с возможностью извлекать квантованные LPC-фильтры, вычислять их взвешенные версии и вычислять соответствующие прореженные спектры, причем модуляция применяется к коэффициентам LPC до вычисления прореженных спектров на основе предварительно вычисленных значений.
8. Декодер по п. 7, в котором предварительно вычисленные значения извлекаются из одной или нескольких поисковых таблиц.
9. Способ декодирования закодированного битового потока MPEG-D USAC, закодированный битовый поток включает в себя множество кадров, каждый из которых состоит из одного или нескольких субкадров, причем закодированный битовый поток включает в себя в качестве представления коэффициентов линейного предсказания (LPC) один или несколько наборов линейных спектральных частот (LSF) для каждого субкадра,
причем способ включает в себя этапы, на которых:
декодируют закодированный битовый поток,
причем декодирование закодированного битового потока содержит этапы, на которых:
декодируют наборы LSF для каждого субкадра из битового потока; и
преобразовывают декодированные наборы LSF в представления линейных спектральных пар (LSP) для последующей обработки,
причем последующая обработка включает в себя определение коэффициентов LPC, основанных на представлениях LSP, посредством применения алгоритма поиска корней, и причем применение алгоритма поиска корней включает в себя масштабирование коэффициентов представлений LSP в алгоритме поиска корней, чтобы избежать переполнения в диапазоне с фиксированной запятой,
причем применение алгоритма поиска корня включает в себя поиск полинома F1(z) и/или F2 (z) из представлений LSP посредством расширения соответствующих полиномов произведения, причем масштабирование выполняется как масштабирование коэффициентов полинома по степени 2, и причем масштабирование включает в себя операцию сдвига разряда влево, и
причем способ дополнительно включает в себя временно хранение для каждого кадра декодированных наборов LSF для интерполяции со следующим кадром.
10. Декодер для декодирования закодированного битового потока MPEG-D USAC, причем декодер выполнен с возможностью реализовывать инструмент упреждающего подавления искажений вследствие наложения спектров (FAC, forward-aliasing cancellation) для подавления искажений вследствие наложения спектров во временной области и/или оконной обработки при переходе между закодированными кадрами линейного предсказания с алгебраическим кодовым возбуждением (ACELP, Algebraic Code Excited Linear Prediction) и кадрами, закодированными с преобразованием (TC, transform coded), в кодеке в области линейного предсказания (LPD, linear prediction domain), причем декодер дополнительно выполнен с возможностью:
выполнять переход из LPD в частотную область (FD, frequency domain) и применять инструмент FAC, если предыдущий декодированный подвергнутый оконной обработке сигнал был закодирован с помощью ACELP;
выполнять переход из FD в LPD и применять инструмент FAC, если первое декодированное окно было закодировано с помощью ACELP,
причем один и тот же инструмент FAC используется и при переходе из LPD в FD, и при переходе из FD в LPD, причем использование одного и того же инструмента FAC соответствует применению одной и той же функции lpd_fwd_alias_cancel_tool() в коде приложения декодирования, и причем упомянутая функция принимает информацию, относящуюся к коэффициентам фильтра, нулевому входному отклику, длине субкадра, длине FAC и/или сигналам FAC в качестве ввода.
11. Декодер по п. 10, в котором добавлен нулевой входной отклик ACELP добавлен, когда инструмент FAC используется для перехода из FD в LPD.
12. Способ декодирования закодированного битового потока MPEG-D USAC посредством декодера, реализующего инструмент упреждающего подавления искажений вследствие наложения спектров (FAC) для подавления искажений вследствие наложения спектров во временной области и/или оконной обработки при переходе между закодированными кадрами линейного предсказания с алгебраическим кодовым возбуждением (ACELP) и кадрами, закодированными с преобразованием (TC), в кодеке в области линейного предсказания (LPD), способ содержит этапы, на которых:
выполняют переход из LPD в частотную область (FD) и применяют инструмент FAC, если предыдущий декодированный подвергнутый оконной обработке сигнал был закодирован с помощью ACELP;
выполняют переход из FD в LPD и применяют инструмент FAC, если первое декодированное окно было закодировано с помощью ACELP,
причем один и тот же инструмент FAC используется и при переходе из LPD в FD, и при переходе из FD в LPD, причем использование одного и того же инструмента FAC соответствует применению одной и той же функции lpd_fwd_alias_cancel_tool() в коде приложения декодирования, и причем упомянутая функция принимает информацию, относящуюся к коэффициентам фильтра, нулевому входному отклику, длине субкадра, длине FAC и/или сигналам FAC в качестве ввода.
13. Носитель, имеющий программные инструкции, хранящиеся на нем, которые, при исполнении на устройстве, имеющем функциональную возможность обработки, побуждают его выполнять способ по пп. 5, 9 или 12.
WO 2018130577 A1, 19.07.2018 | |||
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
EP 3483882 A1, 15.05.2019 | |||
ПЕРЕДАЧА ДЛИНЫ ЭЛЕМЕНТА КАДРА ПРИ КОДИРОВАНИИ АУДИО | 2012 |
|
RU2571388C2 |
СПОСОБ ДЛЯ ДЕКОДИРОВАНИЯ И КОДИРОВАНИЯ МАТРИЦЫ ПОНИЖАЮЩЕГО МИКШИРОВАНИЯ, СПОСОБ ДЛЯ ПРЕДСТАВЛЕНИЯ АУДИОКОНТЕНТА, КОДЕР И ДЕКОДЕР ДЛЯ МАТРИЦЫ ПОНИЖАЮЩЕГО МИКШИРОВАНИЯ, АУДИОКОДЕР И АУДИОДЕКОДЕР | 2014 |
|
RU2648588C2 |
Авторы
Даты
2024-09-19—Публикация
2021-05-18—Подача