Кодирование и декодирование позиций импульсов дорожек аудиосигнала
Иллюстрации
Показать всеИзобретение относится к средствам кодирования и декодирования закодированного аудиосигнала. Технический результат заключается в обеспечении кодирования и декодирования информации импульсов с использованием меньшего количества битов для представления информации импульсов, что обеспечит возможность уменьшения скорости передачи соответствующим образом закодированного аудиосигнала. Устройство содержит декодер информации импульсов и декодер сигналов. Декодер информации импульсов выполнен с возможностью декодировать множество позиций импульсов, причем каждая из позиций импульсов указывает одну из позиций дорожки одной из дорожек, чтобы указать позицию одного из импульсов дорожки, и причем декодер информации импульсов выполнен с возможностью декодировать множество позиций импульса посредством использования количества позиций дорожки, указывающего общее количество позиций дорожки по меньшей мере одной из дорожек, общего количества импульсов, указывающего общее количество импульсов по меньшей мере одной из дорожек, и одного номера состояния. 6 н. и 9 з.п. ф-лы, 7 ил.
Реферат
Настоящее изобретение имеет отношение к области обработки аудиосигнала и кодирования аудиосигнала и, в частности, к кодированию и декодированию позиций импульсов дорожек в аудиосигнале.
Обработка и/или кодирование аудиоданных совершенствовались многими способами. При кодировании аудиосигнала важную роль играют кодеры с линейным предсказанием. Когда кодируется аудиосигнал, например аудиосигнал, содержащий речь, кодеры с линейным предсказанием обычно кодируют представление огибающей спектра аудиосигнала. С этой целью кодеры с линейным предсказанием могут определять коэффициенты фильтра с предсказанием для представления огибающей спектра звука в закодированной форме. Коэффициенты фильтра затем могут использоваться декодером с линейным предсказанием для декодирования закодированного аудиосигнала посредством формирования синтезированного аудиосигнала с использованием коэффициентов фильтра с предсказанием.
Важными примерами для кодеров с линейным предсказанием являются кодеры ACELP (ACELP = линейное предсказание с возбуждением по алгебраической кодовой книге). Кодеры ACELP широко используются, например, в кодировании USAC (USAC = объединенное кодирование речи и аудиосигналов) и могут иметь дополнительные области применения, например в LD-USAC (объединенное кодирование речи и аудиосигналов с малой задержкой).
Кодеры ACELP обычно кодируют аудиосигнал, определяя коэффициенты фильтра с предсказанием. Чтобы достигнуть лучшего кодирования, кодеры ACELP определяют разностный сигнал, также называемый целевым сигналом, на основе аудиосигнала, который должен быть закодирован, и на основе уже определенных коэффициентов фильтра с предсказанием. Разностный сигнал, например, может быть сигналом разности, представляющим разность между аудиосигналом, который должен быть закодирован, и частями сигнала, которые закодированы посредством коэффициентов фильтра с предсказанием и, возможно, посредством коэффициентов адаптивного фильтра, полученных в результате анализа высоты звука. Затем кодер ACELP стремится закодировать разностный сигнал. Для этого кодер кодирует параметры алгебраической кодовой книги, которые используются для кодирования разностного сигнала.
Для кодирования разностного сигнала используются алгебраические кодовые книги. Обычно алгебраические кодовые книги содержат множество дорожек, например четыре дорожки, каждая из которых содержит 16 позиций дорожки. В такой конфигурации в общей сложности 4·16=64 типовых позиции могут быть представлены соответствующей алгебраической кодовой книгой, например, в соответствии с количеством отсчетов субкадра аудиосигнала, который должен быть закодирован.
Дорожки кодовой книги могут быть чередованы таким образом, что дорожка 0 кодовой книги может представлять отсчеты 0, 4, 8,..., 60 субкадра, дорожка 1 кодовой книги может представлять отсчеты 1, 5, 9,..., 61 субкадра, дорожка 2 кодовой книги может представлять отсчеты 2, 6, 10,..., 62 субкадра, и дорожка 3 кодовой книги может представлять отсчеты 3, 7, 11,..., 63 субкадра. Каждая дорожка может иметь постоянное количество импульсов. Или количество импульсов на каждую дорожку может меняться, например, в зависимости от других условий. Импульс может быть положительным или отрицательным и, например, может быть представлен как +1 (положительный импульс) или 0 (отрицательный импульс).
Для кодирования разностного сигнала при кодировании может быть выбрана конфигурация кодовой книги, которая лучше всего представляет оставшиеся части разностного сигнала. Для этого доступные импульсы могут быть расположены в подходящие позиции дорожки, которые лучше всего отражают части сигнала, которые должны быть закодированы. Кроме того, может быть указано, является ли соответствующий импульс положительным или отрицательным.
На стороне декодера декодер ACELP сначала декодирует параметры алгебраической кодовой книги. Декодер ACELP также может декодировать адаптивные параметры кодовой книги. Чтобы определить алгебраические параметры кодовой книги, декодер ACELP может определить множество позиций импульсов для каждой дорожки алгебраической кодовой книги. Кроме того, декодер ACELP также может декодировать информацию о том, является ли импульс в позиции дорожки положительным или отрицательным импульсом. Кроме того, декодер ACELP также может декодировать адаптивные параметры кодовой книги. На основе этой информации декодер ACELP обычно формирует сигнал возбуждения. Затем декодер ACELP применяет коэффициенты фильтра с предсказанием к сигналу возбуждения, чтобы сформировать синтезированный аудиосигнал для получения декодированного аудиосигнала.
В ACELP импульсы на дорожке обычно закодированы следующим образом. Если дорожка имеет длину 16, и если количество импульсов на этой дорожке равно одному, то мы можем закодировать позицию импульса ее позицией (4 бита) и знаком (1 бит), всего 5 битов. Если дорожка имеет длину 16 и количество импульсов равно двум, то первый импульс кодируется его позицией (4 бита) и знаком (1 бит). Для второго импульса мы должны закодировать позицию (только 4 бита), поскольку можем решить, что знак второго импульса положителен, если он находится слева от первого импульса, отрицателен, если он находится справа от первого импульса, и имеет такой же знак, как первый импульс, если он находится в такой же позиции, как первый импульс. Таким образом нам нужны только 9 битов, чтобы закодировать 2 импульса. Таким образом, по сравнению с кодированием позиций импульсов отдельно по 5 битов на каждый мы экономим 1 бит для каждой пары импульсов.
Кодируя более чем два импульса, мы можем закодировать импульсы попарно, и если количество импульсов нечетное, закодировать последний импульс отдельно. Так, например, для дорожки из 5 импульсов, нам понадобится 9+9+5=23 бита. Если у нас есть 4 дорожки, то 4×23=92 бита потребуется для кодирования субкадра длиной 64 с 4 дорожками и 5 импульсами на каждую дорожку. Однако будет очень ценно, если количество битов могло бы быть еще больше сокращено.
Было бы очень желательно обеспечить устройство для кодирования и соответствующее устройство для декодирования с улучшенной концепцией кодирования или декодирования, которые имеют средства кодирования или декодирования информации импульсов улучшенным образом с использованием меньшего количества битов для представления информации импульсов, поскольку это, например, уменьшило бы скорость передачи соответствующим образом закодированного аудиосигнала, и, кроме того, это, например, уменьшило бы размер памяти для хранения соответствующим образом закодированного аудиосигнала.
Таким образом, задача настоящего изобретения состоит в том, чтобы обеспечить улучшенные концепции для кодирования и декодирования импульсов дорожек аудиосигнала. Задачи настоящего изобретения достигаются посредством устройства для декодирования по п. 1 формулы изобретения, устройства для кодирования по п. 9 формулы изобретения, способа декодирования по п. 13 формулы изобретения, способа кодирования по п. 14 формулы изобретения и компьютерной программы по п. 15 формулы изобретения.
В соответствии с вариантами осуществления предполагается, что один номер состояния доступен для устройства для декодирования. Кроме того, предполагается, что количество позиций дорожки, указывающее общее количество позиций дорожки по меньшей мере одной из дорожек, соответствующей закодированному аудиосигналу, и общее количество импульсов, указывающее количество импульсов по меньшей мере одной из дорожек, доступны для устройства декодирования настоящего изобретения. Предпочтительно количество позиций дорожки и общее количество импульсов доступны для каждой дорожки, соответствующей закодированному аудиосигналу.
Например, каждая из 4 дорожек с 5 импульсами может достигнуть примерно 6,6×10^21 состояний, которые в соответствии с вариантами осуществления могут быть закодированы посредством 73 битов, что приблизительно на 21% более эффективно, чем кодирование описанного выше кодера текущего уровня техники, использующего 92 бита.
Сначала обеспечивается концепция, каким образом следует эффективно кодировать множество позиций импульсов дорожки аудиосигнала. В дальнейшем концепция расширяется, чтобы позволить кодировать не только позицию импульсов дорожки, но также и информацию о том, является ли импульс положительным или отрицательным. Кроме того, затем концепция расширяется, чтобы позволить эффективно кодировать информацию импульсов для множества дорожек. Концепции соответствующим образом применимы на стороне декодера.
Кроме того, варианты осуществления основаны на том факте, что если стратегия кодирования использует предопределенное количество битов, то любая конфигурация с таким же количеством импульсов на каждой дорожке требует того же количества битов. Если количество доступных битов фиксировано, то возможно непосредственно выбрать, сколько импульсов может быть закодировано с помощью заданного количества битов, и тем самым дать возможность кодирования с предопределенным качеством. Кроме того, с помощью этого подхода не требуется пробовать разное количество импульсов, пока не будет достигнута требуемая битовая скорость, а мы можем непосредственно выбрать правильное количество импульсов, тем самым уменьшая сложность.
На основе приведенных выше предположений может быть закодировано и/или декодировано множество позиций импульсов дорожки кадра аудиосигнала.
Хотя настоящее изобретение может использоваться для кодирования или декодирования аудиосигналов любого типа, например речевых сигналов или музыкальных сигналов, настоящее изобретение особенно полезно для кодирования или декодирования речевых сигналов.
В другом варианте осуществления декодер информации импульсов дополнительно выполнен с возможностью декодировать множество знаков импульсов с использованием количества позиций дорожки, общего количества импульсов и номера состояния, причем каждый из знаков импульсов указывает знак одного из множества импульсов. Декодер сигналов может быть выполнен с возможностью декодировать закодированный аудиосигнал посредством формирования синтезированного аудиосигнал с дополнительным использованием множества знаков импульсов.
В соответствии с дополнительным вариантом осуществления, в котором одна или более дорожек могут содержать по меньшей мере последнюю дорожку и одну или более других дорожек, декодер информации импульсов может быть выполнен с возможностью формировать номер первого подсостояния и номер второго подсостояния из номера состояния. Декодер информации импульсов может быть выполнен с возможностью декодировать первую группу позиций импульсов на основе номера первого подсостояния, и декодер информации импульсов также может быть выполнен с возможностью декодировать вторую группу позиций импульсов на основе номера второго подсостояния. Вторая группа позиций импульсов может состоять только из позиций импульсов, указывающих позиции последней дорожки. Первая группа позиций импульсов состоит только из позиций импульсов, указывающих позиции дорожки одной или более других дорожек.
В соответствии с другим вариантом осуществления декодер информации импульсов может быть выполнен с возможностью разделять номер состояния на номер первого подсостояния и номер второго подсостояния посредством деления номера состояния на f(pk, N) для получения целочисленной части и остатка в качестве результата деления, причем целочисленная часть представляет собой номер первого подсостояния, и остаток представляет собой номер второго подсостояния, причем pk указывает для каждой одной или более дорожек количество импульсов, и N указывает для каждой одной или более дорожек количество позиций дорожки. Здесь f(pk, N) является функцией, возвращающей количество состояний, которые могут быть достигнуты на дорожке длины N с pk импульсами.
В другом варианте осуществления декодер информации импульсов может быть выполнен с возможностью проводить проверку, сравнивая номер состояния или обновленный номер состояния с пороговым значением.
Декодер информации импульсов может быть выполнен с возможностью проводить проверку, сравнивая, является ли номер состояния или обновленный номер состояния больше, больше или равен, меньше или меньше или равен пороговому значению, причем блок анализа дополнительно выполнен с возможностью обновлять номер состояния или обновленный номер состояния в зависимости от результата проверки.
В варианте осуществления декодер информации импульсов может быть выполнен с возможностью сравнивать номер состояния или обновленный номер состояния с пороговым значением для каждой позиции дорожки одной из множества дорожек.
В соответствии с вариантом осуществления декодер информации импульсов может быть выполнен с возможностью разделять одну из дорожек на первый раздел дорожки, содержащий по меньшей мере одну позицию дорожки из множества позиций дорожки, и на второй раздел дорожки, содержащий оставшиеся другие позиции дорожки из множества позиций дорожки. Декодер информации импульсов может быть выполнен с возможностью формировать номер первого подсостояния и номер второго подсостояния на основе номера состояния. Кроме того, декодер информации импульсов может быть выполнен с возможностью декодировать первую группу позиций импульсов, ассоциированных с первым разделом дорожки, на основе номера первого подсостояния. Кроме того, декодер информации импульсов может быть выполнен с возможностью декодировать вторую группу позиций импульсов, ассоциированных со вторым разделом дорожки, на основе номера второго подсостояния.
В соответствии с вариантом осуществления обеспечено устройство для кодирования аудиосигнала. Устройство содержит процессор сигналов, выполненный с возможностью определять множество коэффициентов фильтра с предсказанием, ассоциированных с аудиосигналом, для формирования разностного сигнала на основе аудиосигнала и множества коэффициентов фильтра с предсказанием. Кроме того, устройство содержит кодер информации импульсов, выполненный с возможностью кодировать множество позиций импульсов, имеющих отношение к одной или более дорожкам, чтобы закодировать аудиосигнал, одна или более дорожек ассоциированы с разностным сигналом. Каждая из дорожек имеет множество позиций дорожки и множество импульсов. Каждая из позиций импульсов указывает одну из позиций дорожки одной из дорожек, чтобы указать позицию одного из импульсов дорожки. Кодер информации импульсов выполнен с возможностью кодировать множество позиций импульсов, формируя номер состояния таким образом, что позиции импульса могут быть декодированы на основе только номера состояния, количества позиций дорожки, указывающего общее количество позиций дорожки по меньшей мере одной из дорожек, и общего количества импульсов, указывающего общее количество импульсов по меньшей мере одной из дорожек.
В соответствии с другим вариантом осуществления кодер информации импульсов может быть выполнен с возможностью кодировать множество знаков импульсов, причем каждый из знаков импульсов указывает знак одного из множества импульсов. Кодер информации импульсов дополнительно может быть выполнен с возможностью кодировать множество знаков импульсов, формируя номер состояния таким образом, что знаки импульсов могут быть декодированы на основе только номера состояния, количества позиций дорожки, указывающего общее количество позиций дорожки по меньшей мере одной из дорожек, и общего количества импульсов.
В варианте осуществления кодер информации импульсов выполнен с возможностью добавлять целочисленное значение к промежуточному числу для каждого импульса в позиции дорожки для каждой позиции дорожки одной из дорожек, чтобы получать номер состояния.
В соответствии с другим вариантом осуществления кодер информации импульсов может быть выполнен с возможностью разделять одну из дорожек на первый раздел дорожки, содержащий по меньшей мере одну позицию дорожки из множества позиций дорожки, и на второй раздел дорожки, содержащий оставшиеся другие позиции дорожки из множества позиций дорожки. Кроме того, кодер информации импульсов может быть выполнен с возможностью кодировать номер первого подсостояния, соответствующий первому разделу. Кроме того, кодер информации импульсов может быть выполнен с возможностью кодировать номер второго подсостояния, соответствующий второму разделу. Кроме того, кодер информации импульсов может быть выполнен с возможностью объединить номер первого подсостояния и номер второго подсостояния для получения номера состояния.
Далее варианты осуществления настоящего изобретения будут описаны более подробно со ссылкой на фигуры.
Фиг. 1 иллюстрирует устройство для декодирования закодированного аудиосигнала в соответствии с вариантом осуществления,
Фиг. 2 иллюстрирует устройство для кодирования аудиосигнала в соответствии с вариантом осуществления,
Фиг. 3 иллюстрирует все возможные конфигурации для дорожки, имеющей два импульса без знака и три позиции дорожки,
Фиг. 4 иллюстрирует все возможные конфигурации для дорожки, имеющей один импульс со знаком и две позиции дорожки,
Фиг. 5 иллюстрирует все возможные конфигурации для дорожки, имеющей два импульса со знаком и две позиции дорожки,
Фиг. 6 - блок-схема последовательности операций, иллюстрирующая вариант осуществления, изображающая этапы обработки, проводимые декодером информации импульсов в соответствии с вариантом осуществления, и
Фиг. 7 - блок-схема последовательности операций, иллюстрирующая вариант осуществления, блок-схема изображает этапы обработки, проводимые кодером информации импульсов в соответствии с вариантом осуществления.
Фиг. 1 иллюстрирует устройство для декодирования закодированного аудиосигнала, причем одна или более дорожек ассоциированы с закодированным аудиосигналом, каждая из дорожек имеет множество позиций дорожки и множество импульсов.
Устройство содержит декодер 110 информации импульсов и декодер 120 сигналов. Декодер 110 информации импульсов выполнен с возможностью декодировать множество позиций импульсов. Каждая из позиций импульсов указывает одну из позиций дорожки одной из дорожек, чтобы указать позицию одного из импульсов дорожки.
Декодер 110 информации импульсов выполнен с возможностью декодировать множество позиций импульсов посредством использования количества позиций дорожки, указывающего общее количество позиций дорожки по меньшей мере одной из дорожек, общее количество импульсов, указывающее общее количество импульсов по меньшей мере одной из дорожек, и один номер состояния.
Декодер 120 сигналов выполнен с возможностью декодировать закодированный аудиосигнал посредством формирования синтезированного аудиосигнала с использованием множества позиций импульсов и множества коэффициентов фильтра с предсказанием, ассоциированных с закодированным аудиосигналом.
Номер состояния - это число, которое может быть закодировано кодером в соответствии с вариантами осуществления, которые будут описаны ниже. Номер состояния, например, содержит информацию о множестве позиций импульсов в компактном представлении, например в представлении, которое требует небольшого количества битов, и оно может быть декодировано, когда в кодере доступна информация о количестве позиций дорожки и общем количестве импульсов.
В варианте осуществления количество позиций дорожки и/или общее количество импульсов одной или каждой дорожки аудиосигнала могут быть доступны в декодере, поскольку количество позиций дорожки и/или общее количество импульсов являются статическими значениями, которые не изменяются и известны приемнику. Например, количество позиций дорожки может всегда быть равно 16 для каждой дорожки, и общее количество импульсов может всегда быть равно 4.
В другом варианте осуществления количество позиций дорожки и/или общее количество импульсов одной или каждой дорожки аудиосигнала могут быть явно переданы устройству для декодирования, например, устройством для кодирования.
В дополнительном варианте осуществления декодер может определить количество позиций дорожки и/или общее количество импульсов одной или каждой дорожки аудиосигнала посредством анализа других параметров, которые явно не указывают количество позиций дорожки и/или общее количество импульсов, но из которых могут быть получены количество позиций дорожки и/или общее количество импульсов.
В других вариантах осуществления декодер может анализировать другие доступные данные, чтобы получить количество позиций дорожки и/или общее количество импульсов одной или каждой дорожки аудиосигнала.
В дополнительном варианте осуществления декодер информации импульсов может быть также выполнен с возможностью декодировать, является ли импульс положительным импульсом или отрицательным импульсом.
В другом варианте осуществления декодер информации импульсов, кроме того, может быть выполнен с возможностью декодировать информацию импульсов, которая содержит информацию об импульсах для множества дорожек. Информация импульсов, например, может являться информацией о позиции импульсов в дорожке и/или информацией о том, является ли импульс положительным импульсом или отрицательным импульсом.
Фиг. 2 иллюстрирует устройство для кодирования аудиосигнала, содержащее процессор 210 сигналов и кодер 220 информации импульсов.
Процессор 210 сигналов выполнен с возможностью определять множество коэффициентов фильтра с предсказанием, ассоциированных с аудиосигналом, для формирования разностного сигнала на основе аудиосигнала и множества коэффициентов фильтра с предсказанием.
Кодер 220 информации импульсов выполнен с возможностью кодировать множество позиций импульсов, имеющих отношение к одной или более дорожкам, чтобы закодировать аудиосигнал. Одна или более дорожек ассоциированы с разностным сигналом, сформированному процессором 210 сигналов. Каждая из дорожек имеет множество позиций дорожки и множество импульсов. Кроме того, каждая из позиций импульсов указывает одну из позиций дорожки одной из дорожек, чтобы указать позицию одного из импульсов дорожки.
Кодер 220 информации импульсов выполнен с возможностью кодировать множество позиций импульсов посредством формирования номера состояния, с тем чтобы позиции импульсов могли быть декодированы на основе только номера состояния, количества позиций дорожки, указывающего общее количество позиций дорожки по меньшей мере одной из дорожек, и общего количества импульсов, указывающего общее количество импульсов по меньшей мере одной из дорожек.
Далее представлены основные концепции вариантов осуществления настоящего изобретения, имеющие отношение к кодированию позиций импульсов и, возможно, знака импульса (положительного импульса или отрицательного импульса) посредством формирования номера состояния.
Принципы кодирования вариантов осуществления настоящего изобретения основаны на том факте, что если рассматривается перечисление состояний всех возможных конфигураций из k импульсов в дорожке с n позициями дорожки, достаточно закодировать фактическое состояние импульсов дорожки. Кодирование такого состояния посредством по возможности наименьшего количества битов обеспечивает желаемое компактное кодирование. Посредством этого представлена концепция перечисления состояний, в которой каждая совокупность позиций импульсов и, возможно, также знаков импульсов представляют одно состояние, и каждое состояние уникально нумеруется.
Фиг. 3 иллюстрирует это для простого случая, для которого изображены все возможные конфигурации, когда рассматривается дорожка, имеющая два импульса и три позиции дорожки. Два импульса могут быть расположены в одной и той же позиции дорожки. В примере на фиг. 3 знак импульсов (например, является ли импульс положительным или отрицательным) не рассматривается, в таком примере все импульсы могут полагаться, например, положительными.
На фиг. 3 проиллюстрированы все возможные состояния для двух ненаправленных импульсов, расположенных на дорожке с тремя позициями дорожки (на фиг. 3: позиции дорожки 1, 2 и 3). Имеется только шесть разных возможных состояний (на фиг. 3, пронумерованы от 0 до 5), которые описывают, каким образом импульсы могут быть распределены на дорожке. Таким образом, достаточно использовать номер состояния в диапазоне от 0 до 5, чтобы описать фактическую существующую конфигурацию. Например, если номер состояния в примере на фиг. 3 имеет значение (4), и если декодер знает о схеме кодирования, декодер может прийти к заключению, что номер состояния =4 означает, что дорожка имеет один импульс в позиции 0 дорожки и другой импульс в позиции 2 дорожки. Таким образом, в примере на фиг. 3 достаточно трех битов для кодирования номера состояния, чтобы идентифицировать одно из шести различных состояний примера на фиг. 3.
Фиг. 4 иллюстрирует случай, изображающий все возможные состояния для одного направленного импульса, расположенного на дорожке с двумя позициями дорожки (на фиг. 4: позиции 1 и 2 дорожки). На фиг. 4 учитывается знак импульсов (например, является ли импульс положительным или отрицательным). Имеется четыре различных возможных состояния (на фиг. 4 пронумерованы от 0 до 3), которые описывают, каким образом импульс может быть распределен на дорожке, а также его знак (положительный или отрицательный). Достаточно использовать номер состояния в диапазоне от 0 до 3, чтобы описать фактическую существующую конфигурацию. Например, если номер состояния в примере на фиг. 4 имеет значение (2), и если декодер знает о схеме кодирования, декодер может прийти к заключению, что номер состояния = 2 означает, что дорожка имеет один импульс в позиции 1 дорожки, и что импульс является положительным импульсом.
Фиг. 5 иллюстрирует все еще дополнительный случай, в котором изображены все возможные конфигурации, когда рассматривается дорожка, имеющая два импульса и две позиции дорожки. Импульсы могут быть расположены в одной и той же позиции дорожки. В примере, показанном на фиг. 5, учитывается знак импульсов (например, является ли импульс положительным или отрицательным). Предполагается, что импульсы в одной и той же позиции дорожки имеют один и тот же знак (например, дорожки в одной и той же позиции дорожки либо все являются положительными, либо все являются отрицательными).
На фиг. 5 проиллюстрированы все возможные состояния для двух импульсов со знаком (например, импульсов, которые являются либо положительными, либо отрицательными), расположенных на дорожке с двумя позициями дорожки (на фиг. 5: позиции 1 и 2 дорожки). Имеется только восемь различных возможных состояний (на фиг. 5 пронумерованы от 0 до 7), которые описывают, каким образом импульсы могут быть распределены на дорожке. Таким образом, достаточно использовать номер состояния в диапазоне от 0 до 7, чтобы описать фактическую конфигурацию. Например, если номер состояния в примере на фиг. 5 имеет значение (3), и если декодер знает о схеме кодирования, декодер может прийти к заключению, что номер состояния =3 обозначает, что дорожка имеет один импульс в позиции 0 дорожки, который является положительным, и другой импульс в позиции 1 дорожки, который является отрицательным. Таким образом, в примере на фиг. 5 достаточно трех битов для кодирования номера состояния, чтобы идентифицировать одно из восьми различных состояний примера на фиг. 5.
В ACELP разностный сигнал может быть закодирован посредством фиксированного количества импульсов со знаком. Как описано выше, импульсы могут быть распределены, например, на четырех чередующихся дорожках таким образом, что дорожка 0 содержит позиции mod(n, 4)==0, дорожка 1 содержит позиции mod(n, 4)==1, и так далее. Каждая дорожка может иметь предопределенное количество единичных импульсов со знаком, которые могут накладываться, но когда они накладываются, импульсы имеют один и тот же знак.
Посредством кодирования импульсов должно быть достигнуто отображение позиций импульсов и их знаков в представление, которое использует наименьшее возможное количество битов. Кроме того, кодирование импульсов должно иметь расход битов, который является фиксированным, то есть любая совокупность импульсов имеет одно и то же количество битов.
Каждая дорожка сначала независимо кодируется, и затем состояния каждой дорожки объединены в одно число, которое представляет состояние целого субкадра. Этот подход дает математически оптимальный расход битов, если все состояния имеют равную вероятность, и расход битов является фиксированным.
Концепция перечисления состояний также может быть объяснена с использованием компактного представления различных совокупностей состояний.
Пусть xn - разностный сигнал, который мы хотим закодировать. Предположим, что рассматриваются, например, четыре чередованных дорожки алгебраической кодовой книги, тогда первая дорожка имеет отсчеты x0, x4, x8,..., xN-4, вторая дорожка имеет отсчеты x1, x5, x9,..., xN-3, и т.д. Предположим, что первая дорожка квантована с помощью одного единичного импульса со знаком и что T=8, посредством чего длина дорожки равна 2 (T= длина (отсчеты) разностного сигнала, который должен быть закодирован). Если T=8, и если для кодирования разностного сигнала используются 4 дорожки, каждая из 4 дорожек имеет 2 позиции дорожки. Например, можно рассмотреть первую дорожку, которая имеет две позиции x0 и x4 дорожки. Тогда импульс первой дорожки может появиться в любой из следующих совокупностей:
x0 | +1 | -1 | 0 | 0 |
x4 | 0 | 0 | +1 | -1 |
Для этой конфигурации имеется четыре разных состояния.
Аналогичным образом, если на первой дорожке имеется два импульса и первая дорожка имеет две позиции x0 и x4, то импульсы могут быть присвоены в следующих совокупностях:
x0 | +2 | -2 | +1 | +1 | -1 | -1 | 0 | 0 |
x4 | 0 | 0 | +1 | -1 | +1 | -1 | +2 | -2 |
Таким образом, эта конфигурация имеет 8 состояний.
Если длина разностного сигнала расширена до T=12, то каждая из 4 дорожек имеет 3 позиции дорожки. Первая дорожка получает еще один отсчет и теперь имеет позиции x0, x4 и x8 дорожки, таким образом, мы имеем:
x0, x4 | 2 импульса 8 состояний | 1 импульс 4 состояния | 1 импульс 4 состояния | 0 импульсов 1 состояние | 0 импульсов 1 состояние |
x8 | 0 | +1 | -1 | +2 | -2 |
Приведенная выше таблица означает, что имеется 8 различных состояний для x0 и x4, если x8=0 (x8 не имеет импульса); 4 различных состояния для x0 и x4, если x8=1 (x8 имеет положительный импульс); 4 различных состояния для x0 и x4, если x8=-1 (x8 имеет отрицательный импульс); 1 состояние для x0 и x4, если x8=2 (x8 имеет два положительных импульса); и 1 состояние для x0 и x4, если x8=-2 (x8 имеет два отрицательных импульса).
При этом количество состояний для первой строки было получено из двух предыдущих таблиц. Посредством сложения количества состояний в первой строке мы видим, что эта конфигурация имеет 18 состояний.
В примере с T=2 достаточно 5 битов для кодирования всех 18 различных возможных состояний. Тогда кодер, например, выбирает номер состояния из диапазона [0, 17], чтобы определить одну из этих 18 конфигураций. Если декодер знает о схеме кодирования, например, если он знает, какой номер состояния какую конфигурацию представляет, он может декодировать позиции импульсов и знаки импульсов для дорожки.
Ниже будут представлены подходящие способы кодирования и соответствующие способы декодирования в соответствии с вариантами осуществления. В соответствии с вариантами осуществления обеспечено устройство для кодирования, которое выполнено с возможностью исполнять один из представленных ниже способов кодирования. Кроме того, в соответствии с дополнительным вариантам осуществления представлено устройство для декодирования, которое выполнено с возможностью исполнять один из представленных ниже способов декодирования.
В вариантах осуществления для формирования номера состояния или декодирования номера состояния может быть вычислено количество возможных конфигураций для N позиций дорожки, имеющей p импульсов.
Импульсы могут иметь знак, и может использоваться рекурсивная формула, которая вычисляет количество состояний f(p, N) для дорожки, имеющей N позиций дорожки и p импульсов со знаком (импульсы могут быть положительными или отрицательными, но импульсы в одной и той же позиции дорожки имеют один и тот же знак), причем рекурсивная формула f(p, N) задана следующим образом:
Формула 1:
Начальные условия:
поскольку единственная позиция с одним или более импульсами требует одного бита (двух состояний) для знака. Рекурсивная формула предназначена для суммирования всех различных совокупностей.
А именно, если имеется p импульсов, текущая позиция может иметь от qN=0 до p импульсов, посредством чего оставшиеся N-1 позиций имеют p-qN импульсов. Количество состояний в текущей позиции и в оставшихся N-1 позициях перемножаются для получения количества состояний с этими комбинациями импульсов, и комбинации суммируются для получения общего количества состояний.
В вариантах осуществления рекурсивная функция может быть вычислена посредством итеративного алгоритма, причем рекурсия заменяется итерацией.
Поскольку оценка f(p, N) является относительно сложной в вычислительном отношении для приложений реального времени, в соответствии с некоторыми вариантами осуществления для вычисления f(p, N) может использоваться поиск по таблице. В соответствии с некоторыми вариантами осуществления таблица может быть вычислена автономно.
Далее представлены дополнительные концепции для кодирования и декодирования номера состояния.
Пусть f(p, N) обозначает количество возможных конфигураций для дорожки, имеющей N позиций дорожки и p импульсов со знаком.
Кодер информации импульсов может теперь проанализировать дорожку: если первая позиция на дорожке не имеет импульса, то оставшиеся N-1 позиций имеют p импульсов со знаком, и чтобы описать эту совокупность, нам нужно только f(p, N-1) состояний.
Иначе, если первая позиция имеет один или более импульсов, кодер информации импульсов определяет, что общее количество состояний больше, чем f(p, N-1).
Затем декодер информации импульсов, например, может начать с последней позиции и сравнить состояние с пороговым значением, например с f(p, N-1). Если оно больше, то декодер информации импульсов может решить, что последняя позиция имеет по меньшей мере один импульс. Декодер информации импульсов может тогда обновить состояние, чтобы получить обновленный номер состояния, посредством вычитания f(p, N-1) из состояния и уменьшить количество оставшихся импульсов на один.
Иначе, если в последней позиции нет импульса, декодер информации импульсов может сократить количество оставшихся позиций на одну. Повторение этой процедуру, пока не останется импульсов, обеспечит позиции импульсов без знака.
Чтобы также принять во внимание знаки импульсов, кодер информации импульсов может закодировать импульсы в самом нижнем бите состояния. В альтернативном варианте осуществления кодер информации импульсов может закодировать знак в самом высоком оставшемся бите состояния. Однако предпочтительно закодировать знак импульс в самом нижнем бите, поскольку его легче обработать относительно целочисленных вычислений.
Если в декодере информации импульсов найден первый импульс данной позиции, знак импульса определен последним битом. Затем оставшееся состояние смещается на один шаг вправо для получения обновленного номера состояния.
В варианте осущ