RU2574849C2 - Apparatus and method for encoding and decoding audio signal using aligned look-ahead portion - Google Patents
Apparatus and method for encoding and decoding audio signal using aligned look-ahead portion Download PDFInfo
- Publication number
- RU2574849C2 RU2574849C2 RU2013141919/08A RU2013141919A RU2574849C2 RU 2574849 C2 RU2574849 C2 RU 2574849C2 RU 2013141919/08 A RU2013141919/08 A RU 2013141919/08A RU 2013141919 A RU2013141919 A RU 2013141919A RU 2574849 C2 RU2574849 C2 RU 2574849C2
- Authority
- RU
- Russia
- Prior art keywords
- window
- frame
- data
- encoding
- prediction
- Prior art date
Links
- 230000005236 sound signal Effects 0.000 title claims abstract description 72
- 238000004458 analytical method Methods 0.000 claims abstract description 161
- 230000002194 synthesizing Effects 0.000 claims description 67
- 230000015572 biosynthetic process Effects 0.000 claims description 63
- 238000003786 synthesis reaction Methods 0.000 claims description 63
- 238000006243 chemical reaction Methods 0.000 claims description 53
- 230000003595 spectral Effects 0.000 claims description 45
- 230000000875 corresponding Effects 0.000 claims description 20
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 230000001131 transforming Effects 0.000 claims description 7
- 230000001276 controlling effect Effects 0.000 claims 2
- 230000001702 transmitter Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 238000000034 method Methods 0.000 description 16
- 238000005070 sampling Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 9
- 230000003044 adaptive Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000005284 excitation Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001233887 Ania Species 0.000 description 1
- 238000005311 autocorrelation function Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
- 229920003048 styrene butadiene rubber Polymers 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001052 transient Effects 0.000 description 1
Images
Abstract
Description
Настоящее изобретение относится к кодированию аудиосигнала и, в частности, к кодированию аудиосигнала, основанному на переключаемых аудиокодерах и соответственно управляемых аудиодекодерах, особенно подходящих для приложений с малой задержкой.The present invention relates to encoding an audio signal and, in particular, to encoding an audio signal based on switchable audio encoders and accordingly controlled audio decoders, especially suitable for low-latency applications.
Известны несколько концепций кодирования аудиосигнала, основанных на переключаемых кодеках. Одна известная концепция кодирования аудиосигнала - это так называемый кодек Расширенного широкополосного адаптивного кодирования с переменной скоростью (AMR-WB+), как описано в 3 GPP TS 26.290 B10.0.0 (2011-03). AMR-WB+ аудиокодек содержит все режимы 1-9 кодека AMR-WB для речевых сигналов и AMR-WB VAD и DTX. AMR-WB+ расширяет кодек AMR-WB, посредством добавления TCX, расширения полосы частот и стерео.Several audio coding concepts based on switchable codecs are known. One well-known audio coding concept is the so-called Advanced Broadband Adaptive Variable Speed Encoding (AMR-WB +) codec, as described in 3 GPP TS 26.290 B10.0.0 (2011-03). AMR-WB + audio codec contains all modes 1-9 of the AMR-WB codec for speech signals and AMR-WB VAD and DTX. AMR-WB + extends the AMR-WB codec by adding TCX, bandwidth extension and stereo.
AMR-WB+ аудиокодек обрабатывает входные кадры, равные 2048 дискретным значениям, c внутренней частотой дискретизации FS. Внутренняя частота дискретизации ограничена диапазоном 12800-38400 Гц. Кадры по 2048 дискретных значений делятся на два критически дискретизированных равных диапазона частот. Результатом этого являются два суперкадра по 1024 дискретных значения, соответствующих низкочастотному (LF) и высокочастотному (HF) диапазонам. Каждый суперкадр делится на четыре кадра по 256 дискретных значений. Дискретизация c внутренней частотой дискретизации получается путем использования регулируемой схемы преобразования дискретизации, которая повторно дискретизирует входной сигнал.AMR-WB + audio codec processes input frames equal to 2048 discrete values, with an internal sampling frequency F S. The internal sampling rate is limited to the range of 12800-38400 Hz. Frames of 2048 discrete values are divided into two critically sampled equal frequency ranges. The result of this is two superframes of 1024 discrete values corresponding to the low-frequency (LF) and high-frequency (HF) ranges. Each superframe is divided into four frames of 256 discrete values. Sampling with an internal sampling rate is obtained by using an adjustable sampling conversion circuit that resambles the input signal.
LF и HF сигналы затем кодируются с использованием двух различных подходов: LF кодируется и декодируется с помощью "основного" кодера/декодера, основанного на переключаемом ACELP и возбуждения кодированным преобразованием (TCX). В режиме ACELP используется стандартный кодек AMR-WB. HF сигнал кодируется относительно небольшим числом бит (16 бит/кадр) с помощью метода расширения полосы частот (BWE). Параметры, передаваемые от кодера декодеру, являются битами выбора режима, параметрами LF и параметрами HF. Параметры для каждого суперкадра в 1024 дискретных значений разделены на четыре пакета одинакового размера. Когда входной сигнал является стерео-сигналом, левый и правый каналы объединяются в моно-сигнал для кодирования ACELP/TCX, тогда как кодирование стерео принимает оба входных канала. На стороне декодера LF и HF диапазоны декодируются отдельно, после чего они объединяются в синтезирующем банке фильтров. Если выходной сигнал ограничен только моно-сигналом, параметры стерео опускаются, и декодер функционирует в режиме моно. AMR-WB+ кодек применяет анализ LP и для режима ACELP, и для режима TCX при кодировании сигнала LF. Коэффициенты LP линейно интерполируются в каждом подкадре с 64 дискретными значениями. Окно анализа LP является полукосинусом с длиной в 384 дискретных значения. Для кодирования основного моно-сигнала для каждого кадра используется или кодирование ACELP или TCX. Режим кодирования выбирается на основании метода «анализ через синтез» с обратной связью. Для кадров ACELP рассматриваются только кадры с 256 дискретными значениями, тогда как в режиме TCX возможны кадры с 256, 512 или 1024 дискретными значениями. Окно, используемое для анализа LPC в AMR-WB+, изображено на фиг. 5b. Используется симметричное окно анализа LPC с опережающим просмотром в 20 мс. Опережающий просмотр означает, что, как показано на фиг. 5b, окно анализа LPC для текущего кадра, изображенное под номером 500, простирается не только в пределах текущего кадра, обозначенного между 0 и 20 мс на фиг. 5b и изображенного под номером 502, но простирается в будущий кадр между 20 и 40 мс. Это означает, что при использовании этого окна анализа LPC необходима дополнительная задержка в 20 мс, то есть целый будущий кадр. Поэтому часть опережающего просмотра, обозначенная как 504 на фиг. 5b, вносит вклад в систематическую задержку, связанную с AMR-WB+ кодером. Другими словами, будущий кадр должен быть полностью доступен, чтобы могли быть вычислены коэффициенты анализа LPC для текущего кадра 502.LF and HF signals are then encoded using two different approaches: LF is encoded and decoded using a “main” encoder / decoder based on switchable ACELP and encoded transform excitation (TCX). In ACELP mode, the standard AMR-WB codec is used. The HF signal is encoded with a relatively small number of bits (16 bits / frame) using the bandwidth extension method (BWE). The parameters transmitted from the encoder to the decoder are mode selection bits, LF parameters, and HF parameters. The parameters for each superframe of 1024 discrete values are divided into four packets of the same size. When the input signal is a stereo signal, the left and right channels are combined into a mono signal for ACELP / TCX encoding, while stereo encoding receives both input channels. On the decoder side, LF and HF ranges are decoded separately, after which they are combined in a synthesizing filter bank. If the output signal is limited only to a mono signal, the stereo parameters are omitted, and the decoder operates in mono mode. The AMR-WB + codec uses LP analysis for both ACELP and TCX modes when encoding an LF signal. LP coefficients are linearly interpolated in each subframe with 64 discrete values. The LP analysis window is a half-sine with a length of 384 discrete values. For encoding the main mono signal for each frame, either ACELP or TCX encoding is used. The encoding mode is selected based on the feedback analysis method. For ACELP frames, only frames with 256 discrete values are considered, while in TCX mode, frames with 256, 512, or 1024 discrete values are possible. The window used for LPC analysis in AMR-WB + is depicted in FIG. 5b. A symmetric LPC analysis window is used with a 20 ms lead time. Advance viewing means that, as shown in FIG. 5b, the LPC analysis window for the current frame, shown at 500, extends not only within the current frame, designated between 0 and 20 ms in FIG. 5b and shown at 502, but extends into a future frame between 20 and 40 ms. This means that when using this LPC analysis window, an additional delay of 20 ms is required, i.e. an entire future frame. Therefore, the look-ahead portion designated 504 in FIG. 5b contributes to the systematic delay associated with the AMR-WB + encoder. In other words, the future frame must be fully accessible so that LPC analysis coefficients for the
Фиг. 5a изображает другой кодер, так называемый кодер AMR-WB и, в частности, окно анализа LPC, используемое для вычисления коэффициентов анализа для текущего кадра. Еще раз, текущий кадр простирается между 0 и 20 мс, а будущий кадр простирается между 20 и 40 мс. В отличие от фиг. 5b, окно анализа LPC AMR-WB, обозначенное как 506, имеет часть 508 опережающего просмотра лишь в 5 мс, то есть временной интервал между 20 мс и 25 мс. Следовательно, задержка, вносимая анализом LPC, в значительной степени уменьшается относительно фиг. 5a. С другой стороны, однако, было установлено, что большая часть опережающего просмотра для определения коэффициентов LPC, то есть большая часть опережающего просмотра для окна анализа LPC, приводит к лучшим коэффициентам LPC и, следовательно, меньшей энергии в остаточном сигнале и, следовательно, более низкой битовой скорости, так как предсказание LPC лучше совпадает с исходным сигналом.FIG. 5a shows another encoder, the so-called AMR-WB encoder, and in particular, the LPC analysis window used to calculate the analysis coefficients for the current frame. Once again, the current frame extends between 0 and 20 ms, and the future frame extends between 20 and 40 ms. In contrast to FIG. 5b, the AMR-WB LPC analysis window, designated as 506, has a lead-in
Хотя фиг. 5a и 5b относятся к кодерам, имеющим только одно окно анализа для определения коэффициентов LPC для одного кадра, фиг. 5c изображает ситуацию для речевого кодера G.718. Спецификация G718 (06-2008) относится к системам передачи и цифровым медиа системам и сетям и, в частности, описывает цифровое терминальное оборудование и, в частности, кодирование голосовых и аудиосигналов для такого оборудования. В частности, этот стандарт относится к надежному узкополосному и широкополосному встроенному кодированию с переменной скоростью речи и звука от 8-32 Кбит/с, как это определено в рекомендации ITU-T G718. Входной сигнал обрабатывается с использованием 20 мс кадров. Задержка кодека зависит от частоты дискретизации ввода и вывода. Для широкополосного ввода и широкополосного вывода полная алгоритмическая задержка этого кодирования составляет 42,875 мс. Она состоит из одного 20 мс кадра, 1,875 мс задержки входного и выходного фильтров повторной дискретизации, 10 мс для опережающего просмотра кодера, одной мс задержки постфильтрации и 10 мс в декодере для обеспечения операции добавления с наложением кодирования с преобразованием более высоких слоев. Для узкополосного ввода и узкополосного вывода более высокие слои не используются, но 10 мс задержка декодера используется для улучшения эффективности кодирования при наличии стирания кадров и для музыкальных сигналов. Если вывод ограничен слоем 2, задержка кодека может быть уменьшена на 10 мс. Описание кодера следующее. Два нижних слоя применяются к сигналу с предыскажениями, дискретизированному с частотой 12,8 кГц, а три верхних слоя используются в области входного сигнала, дискретизированного с частотой 16 кГц. Основной слой основан на технологии линейного предсказания с кодовым возбуждением (CELP), в которой речевой сигнал моделируется сигналом возбуждения, прошедшим через синтезирующий фильтр линейного предсказания (LP), представляющим собой огибающую спектра. Фильтр LP квантуется в области спектральной частоты иммитанса (ISF), используя переключаемый прогнозирующий подход и многоступенчатое векторное квантование. Анализ основного тона без обратной связи выполняется отслеживающим основной тон алгоритмом, чтобы гарантировать гладкий контур основного тона. Два одновременных контура эволюции основного тона сравниваются и выбирается дорожка, которая выдает более гладкий контур, чтобы сделать оценку основного тона более надежной. Предварительная обработка на уровне кадра содержит высокочастотную фильтрацию, преобразование частоты дискретизации к 12800 дискретным значениям в секунду, внесение предыскажений, спектральный анализ, обнаружение узкополосных вводов, обнаружение голосовой активности, оценку помех, шумоподавление, анализ с линейным предсказанием, преобразование LP в ISF и интерполяцию, вычисление взвешенного речевого сигнала, анализ основного тона без обратной связи, обновление фонового шума, классификацию сигналов для выбора режима кодирования и маскирование стирания кадра. Кодирование слоя 1 с использованием выбранного типа кодирования содержит невокализированный режим кодирования, вокализированный режим кодирования, переходный режим кодирования, общий режим кодирования, прерывистую передачу и генерацию комфортного шума (DTX/CNG).Although FIG. 5a and 5b relate to encoders having only one analysis window for determining LPC coefficients for one frame, FIG. 5c depicts a situation for a G.718 speech encoder. Specification G718 (06-2008) relates to transmission systems and digital media systems and networks and, in particular, describes digital terminal equipment and, in particular, encoding voice and audio signals for such equipment. In particular, this standard refers to reliable narrow-band and wide-band embedded coding with variable speech and sound speeds from 8-32 Kbps, as defined in ITU-T G718. The input signal is processed using 20 ms frames. Codec delay depends on the sampling rate of the input and output. For broadband input and broadband output, the total algorithmic delay of this encoding is 42.875 ms. It consists of one 20 ms frame, 1.875 ms delay of the input and output resampling filters, 10 ms for the advanced viewing of the encoder, one ms post-filtering delay, and 10 ms in the decoder to provide encoding with conversion of higher layers. For narrow-band input and narrow-band output, higher layers are not used, but the 10 ms decoder delay is used to improve coding efficiency in the presence of frame erasure and for music signals. If the output is limited to layer 2, the codec delay can be reduced by 10 ms. The description of the encoder is as follows. The two lower layers are applied to the pre-emphasis signal sampled at a frequency of 12.8 kHz, and the three upper layers are used in the area of the input signal sampled at a frequency of 16 kHz. The base layer is based on Code Excited Linear Prediction (CELP) technology, in which a speech signal is modeled by an excitation signal that passes through a linear prediction synthesis filter (LP), which is an envelope of the spectrum. The LP filter is quantized in the spectral frequency domain of the immitance (ISF) using a switchable predictive approach and multi-stage vector quantization. Feedback analysis of the pitch is performed by a pitch tracking algorithm to ensure a smooth pitch contour. The two simultaneous contours of the evolution of the fundamental tone are compared and a track is selected that produces a smoother outline to make the assessment of the fundamental tone more reliable. Pre-processing at the frame level includes high-pass filtering, converting the sampling frequency to 12800 discrete values per second, predistorting, spectral analysis, detecting narrow-band inputs, detecting voice activity, noise estimation, noise reduction, linear prediction analysis, converting LP to ISF and interpolating, calculation of the weighted speech signal, analysis of the fundamental tone without feedback, updating the background noise, classification of signals for choosing the encoding mode and mask vanie frame erasure. Encoding a
Анализ с долгосрочным предсказанием или линейным предсказанием (LP) с использованием автокорреляционного подхода определяет коэффициенты синтезирующего фильтра модели CELP. В CELP, однако, долгосрочное предсказание обычно является "адаптивной кодовой книгой" и, таким образом, отличается от линейного предсказания. Следовательно, линейное предсказание может рассматриваться более как краткосрочное предсказание. Автокорреляция речи, обработанной с помощью оконной функции, преобразуется в коэффициенты LP с использованием алгоритма Левинсона-Дарбина. Затем коэффициенты LPC преобразуются в спектральные пары иммитанса (ISP) и, следовательно, к спектральным частотам иммитанса (ISF) для целей интерполяции и квантования. Интерполированные подвергнутые квантованию и обратному квантованию коэффициенты преобразуются обратно в область LP для построения синтезирующего и взвешивающего фильтров для каждого подкадра. В случае кодирования активного кадра сигнала оцениваются два набора коэффициентов LP в каждом кадре, используя два окна анализа LPC, обозначенные как 510 и 512 на фиг. 5c. Окно 512 называется "окном LPC середины кадра", а окно 510 называется "окном LPC конца кадра". Часть 514 опережающего просмотра в 10 мс используется для вычисления автокорреляции конца кадра. Структура кадра показана на фиг. 5c. Кадр делится на четыре подкадра, каждый подкадр имеет продолжительность 5 мс, которая соответствует 64 дискретным значениям при частоте дискретизации 12,8 кГц. Окна для анализа конца кадра и для анализа середины кадра имеют центр в четвертом подкадре и втором подкадре соответственно, как показано на фиг. 5c. Окно Хэмминга с длиной в 320 дискретных значений используется для обработки с помощью оконной функции. Коэффициенты определены в G.718, раздел 6.4.1. Вычисление автокорреляции описано в разделе 6.4.2. Алгоритм Левинсона-Дарбина описан в разделе 6.4.3, преобразование LP в ISP описано в разделе 6.4.4, а преобразование ISP в LP описано в разделе 6.4.5.Analysis with long-term prediction or linear prediction (LP) using the autocorrelation approach determines the coefficients of the synthesis filter of the CELP model. In CELP, however, long-term prediction is usually an “adaptive codebook” and thus differs from linear prediction. Therefore, linear prediction can be considered more as a short-term prediction. Autocorrelation of speech processed using a window function is converted to LP coefficients using the Levinson-Darbin algorithm. The LPC coefficients are then converted to immitance spectral pairs (ISP) and, therefore, to immitance spectral frequencies (ISF) for interpolation and quantization. The interpolated quantized and inverse quantized coefficients are converted back to the LP region to construct synthesizing and weighting filters for each subframe. In the case of encoding an active signal frame, two sets of LP coefficients in each frame are estimated using two LPC analysis windows, indicated as 510 and 512 in FIG. 5c.
Параметры кодирования речи, такие как задержка и усиление адаптивной кодовой книги, индекс и усиление алгебраической кодовой книги ищутся путем минимизации ошибки между входным сигналом и синтезированным сигналом в перцепционно взвешенной области. Перцепционное взвешивание выполняется путем пропускания сигнала через перцепционно взвешивающий фильтр, полученный из коэффициентов фильтра LP. Перцепционно взвешенный сигнал также используется в анализе основного тона без обратной связи.Speech encoding parameters such as delay and gain of the adaptive codebook, index and gain of the algebraic codebook are sought by minimizing the error between the input signal and the synthesized signal in a perceptually weighted region. Perceptual weighting is performed by passing a signal through a perceptual weighting filter obtained from the LP filter coefficients. A perceptually weighted signal is also used in open-loop pitch analysis.
Кодер G.718 является исключительно речевым кодером, имеющим только один режим кодирования речи. Поэтому кодер G.718 не является переключаемым кодером и, следовательно, этот кодер имеет тот недостаток, что он обеспечивает только один режим кодирования речи в пределах основного слоя. Следовательно, будут иметь место проблемы с качеством, когда этот кодер будет применен к другим сигналам, отличным от речевых сигналов, то есть к обычным аудиосигналам, для которых модель, стоящая за кодированием CELP, не подходит.The G.718 encoder is an exclusively speech encoder having only one speech encoding mode. Therefore, the G.718 encoder is not a switchable encoder and, therefore, this encoder has the disadvantage that it provides only one speech encoding mode within the main layer. Therefore, there will be quality problems when this encoder is applied to signals other than speech signals, that is, ordinary audio signals for which the model behind the CELP encoding is not suitable.
Дополнительным переключаемым кодеком является так называемый кодек USAC, то есть унифицированный кодек для речи и звука, как определено в ISO/IEC CD 23003-3 от 24 сентября 2010. Окно анализа LPC, используемое для этого переключаемого кодека, обозначено на фиг. 5d под номером 516. Опять же, предполагается текущий кадр, простирающийся между 0 и 20 мс, и, следовательно, оказывается, что часть 618 опережающего просмотра этого кодека равна 20 мс, то есть значительно больше, чем часть опережающего просмотра G.718. Следовательно, хотя кодер USAC обеспечивает хорошее качество звука вследствие наличия у него переключения, задержка является значительной из-за части 518 опережающего просмотра окна анализа LPC на фиг. 5d. Общая структура USAC имеет следующий вид. Во-первых, имеется общая пред/постобработка, состоящая из функционального блока окружения MPEG (MPEGS) для обработки стерео или для многоканальной обработки и блока усовершенствованной SBR (eSBR), который обрабатывает параметрическое представление более высоких звуковых частот во входном сигнале. Кроме того, имеются две ветви, одна состоит из пути инструмента модифицированного усовершенствованного кодирования аудио (AAC), а другая состоит из пути, основанного на кодировании с линейным предсказанием (область LP или LPC), который в свою очередь показывает или представление в частотной области, или представление во временной области остатка LPC. Все переданные спектры и для AAC, и для LPC представлены в области MDCT после квантования и арифметического кодирования. Представление во временной области использует схему кодирования с возбуждением ACELP. Инструмент ACELP обеспечивает способ эффективно представить сигнал возбуждения во временной области путем объединения долгосрочного прогнозирующего механизма (адаптивного кодового слова) с импульсоподобной последовательностью (инновационного кодового слова). Реконструированное возбуждение отправляется через синтезирующий фильтр LP для формирования сигнала во временной области. Ввод для инструмента ACELP содержит адаптивную и инновационную кодовые книги, значения усиления адаптивного и инновационного кодов, другие управляющие данные и обратно квантованные и интерполированные коэффициенты фильтра LPC. Выводом инструмента ACELP является реконструированный во временной области аудиосигнал.An additional switchable codec is the so-called USAC codec, that is, a unified codec for speech and sound, as defined in ISO / IEC CD 23003-3 of September 24, 2010. The LPC analysis window used for this switchable codec is indicated in FIG. 5d is numbered 516. Again, it is assumed that the current frame extends between 0 and 20 ms, and therefore it turns out that the forward look part 618 of this codec is 20 ms, that is, significantly larger than the G.718 look-ahead part. Therefore, although the USAC encoder provides good sound quality due to having a switch, the delay is significant due to the LPC
Инструмент TCX декодирования на основе MDCT используется для возвращения взвешенного представления остатка LP из области MDCT назад в сигнал во временной области, он выводит взвешенный сигнал во временной области, включающий в себя взвешенную синтезирующую фильтрацию LP. IMDCT может быть сконфигурирован поддерживать 256, 512 или 1024 спектральных коэффициентов. Ввод для инструмента TCX содержит (подвергнутые обратному квантованию) спектры MDCT и подвергнутые обратному квантованию и интерполированные коэффициенты фильтра LPC. Выводом инструмента TCX является реконструированный аудиосигнал во временной области.The MDCT-based decoding tool TCX is used to return a weighted representation of the LP remainder from the MDCT region back to a signal in the time domain; it outputs a weighted signal in the time domain including the weighted synthesizing LP filtering. IMDCT can be configured to support 256, 512, or 1024 spectral coefficients. The input for the TCX instrument contains (back quantized) MDCT spectra and back quantized and interpolated LPC filter coefficients. The output of the TCX instrument is a reconstructed time-domain audio signal.
Фиг. 6 показывает ситуацию в USAC, где изображены окна 516 анализа LPC для текущего кадра и 520 для прошлого или последнего кадра, и где, кроме того, изображено окно 522 TCX. Окно 522 TCX имеет центр в центре текущего кадра, простираясь между 0 и 20 мс и простираясь на 10 мс в прошлый кадр и 10 мс в будущий кадр, простирающийся между 20 и 40 мс. Следовательно, окно 516 анализа LPC требует части опережающего просмотра LPC между 20 и 40 мс, то есть 20 мс, в то время как окно анализа TCX дополнительно имеет часть опережающего просмотра, простирающуюся между 20 и 30 мс в будущий кадр. Это означает, что задержка, вносимая окном 516 анализа USAC, равна 20 мс, в то время как задержка, вносимая в кодер окном TCX, равна 10 мс. Следовательно, становится ясно, что части опережающего просмотра обоих видов окон не выровнены друг с другом. Поэтому даже при том, что окно 522 TCX вносит лишь задержку в 10 мс, общая задержка кодера равна, тем не менее, 20 мс из-за окна 516 анализа LPC. Поэтому даже при том, что есть довольно небольшая часть опережающего просмотра для окна TCX, это не уменьшает полную алгоритмическую задержку кодера, так как полная задержка определяется наибольшим вкладом, то есть равна 20 мс из-за окна 516 анализа LPC, простирающегося на 20 мс в будущий кадр, то есть охватывающего не только текущий кадр, но и дополнительно охватывающего будущий кадр.FIG. 6 shows a situation in USAC, where
Задачей настоящего изобретения является обеспечение улучшенной концепции кодирования для кодирования или декодирования аудиосигнала, которая, с одной стороны, обеспечивает хорошее качество аудио и которая, с другой стороны, приводит к уменьшению задержки.It is an object of the present invention to provide an improved coding concept for encoding or decoding an audio signal, which, on the one hand, provides good audio quality and which, on the other hand, leads to a reduction in delay.
Эта цель достигается с помощью устройства для кодирования аудиосигнала по п. 1, способа кодирования аудиосигнала по п. 15, аудиодекодера по п. 16, способа декодирования аудиосигнала по п. 24 или компьютерной программы по п. 25.This goal is achieved using a device for encoding an audio signal according to
В соответствии с настоящим изобретением применена переключаемая схема аудиокодека, имеющая ветвь кодирования с преобразованием и ветвь кодирования с предсказанием. Важно отметить, что два вида окон, то есть окно анализа кодирования с предсказанием с одной стороны и окно анализа кодирования с преобразованием с другой стороны, выровнены в отношении их части опережающего просмотра так, что часть опережающего просмотра кодирования с преобразованием и часть опережающего просмотра кодирования с предсказанием идентичны или отличаются друг от друга менее чем 20% части опережающего просмотра кодирования с предсказанием или менее чем 20% части опережающего просмотра кодирования с преобразованием. Следует отметить, что окно опережающего анализа используется не только в ветви кодирования с предсказанием, но оно фактически используется в обеих ветвях. Анализ LPC также используется для формирования шумов в области преобразования. Поэтому, другими словами, части опережающего просмотра идентичны или очень близки друг к другу. Это гарантирует, что достигается оптимальный компромисс, и что ни качество звука, ни параметры задержки не будут установлены субоптимальным образом. Следовательно, для кодирования с предсказанием в окне анализа было обнаружено, что анализ LPC тем лучше, чем больше опережающий просмотр, но, с другой стороны, увеличивается задержка для большей части опережающего просмотра. С другой стороны, то же самое справедливо для окна TCX. Чем больше часть опережающего просмотра окна TCX, тем сильнее может быть уменьшена битовая скорость TCX, так как более длительные окна TCX приводят к более низким битовым скоростям в общем случае. Поэтому, в соответствии с настоящим изобретением, части опережающего просмотра идентичны или весьма близки друг к другу и, в частности, отличаются друг от друга менее чем на 20%. Поэтому часть опережающего просмотра, которая нежелательна по причинам задержки, с другой стороны, оптимально используется обеими ветвями кодирования/декодирования.In accordance with the present invention, a switchable audio codec circuit having a transform encoding branch and a predictive encoding branch is applied. It is important to note that two types of windows, that is, a predictive encoding analysis window on the one hand and a transform encoding analysis window on the other hand, are aligned with respect to their part of the leading look-up so that the part of the leading look-up of the encoding with conversion and the part of the look-ahead of the encoding with less than 20% of the predictive coding preview portion of the transform are identical or different from each other with prediction, or less than 20% of the predictive encoding preview portion of the transform. It should be noted that the forward analysis window is used not only in the prediction coding branch, but it is actually used in both branches. LPC analysis is also used to generate noise in the transform domain. Therefore, in other words, the parts of the leading look are identical or very close to each other. This ensures that an optimal compromise is achieved and that neither sound quality nor delay parameters are set in a suboptimal way. Therefore, for predictive coding, it was found in the analysis window that the LPC analysis is better, the larger the look-ahead, but, on the other hand, the delay increases for most look-ahead. On the other hand, the same is true for the TCX window. The larger the portion of the TCX window look-ahead, the stronger the TCX bit rate can be reduced, since longer TCX windows result in lower bit rates in general. Therefore, in accordance with the present invention, the parts of the leading viewing are identical or very close to each other and, in particular, differ from each other by less than 20%. Therefore, a portion of the look-ahead that is undesirable for delay reasons, on the other hand, is optimally used by both encoding / decoding branches.
Ввиду этого настоящее изобретение обеспечивает улучшенную концепцию кодирования, с одной стороны, с низкой задержкой, когда часть опережающего просмотра для обоих окон анализа установлена небольшой, и обеспечивает, с другой стороны, концепцию кодирования/декодирования с хорошими характеристиками вследствие того, что задержка, которая должна быть внесена по причинам качества звука или причинам битовой скорости, в любом случае оптимально используется обеими ветвями кодирования, а не только одной ветвью кодирования.In view of this, the present invention provides an improved coding concept, on the one hand, with a low latency, when the part of the look-ahead for both analysis windows is set small, and provides, on the other hand, a good coding / decoding concept due to the delay, which should be introduced for sound quality reasons or bit rate reasons, in any case it is optimally used by both coding branches, and not just by one coding branch.
Устройство для кодирования аудиосигнала, имеющего поток дискретных значений, содержит блок применения оконной функции для применения окна анализа кодирования с предсказанием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для предсказывающего анализа и для применения окна анализа кодирования с преобразованием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с преобразованием. Окно анализа кодирования с преобразованием связано с дискретными значениями аудиосигнала текущего кадра дискретных значений аудиосигнала заданной части опережающего просмотра будущего кадра дискретных значений аудиосигнала, являющихся частью опережающего просмотра кодирования с преобразованием.An apparatus for encoding an audio signal having a discrete value stream comprises a window function application unit for applying a predictive coding analysis window to a stream of discrete audio values to obtain predictive analysis data processed by a window function and for applying a transform analysis coding window to a discrete value stream audio signal for receiving processed using the window function data for analysis with conversion. The transform coding analysis window is associated with discrete audio values of the current frame of discrete audio values of a given portion of the forward look-ahead of the future frame of discrete audio values that are part of the look-ahead of the transform coding.
Кроме того, окно анализа кодирования с предсказанием связано по меньшей мере с частью дискретных значений аудиосигнала текущего кадра и с дискретными значениями аудиосигнала заданной части будущего кадра, являющегося частью опережающего просмотра кодирования с предсказанием.In addition, the prediction encoding analysis window is associated with at least a portion of the discrete audio values of the current frame and with discrete audio values of a predetermined portion of the future frame that is part of the predictive encoding look-ahead.
Часть опережающего просмотра кодирования с преобразованием и часть опережающего просмотра кодирования с предсказанием идентичны друг другу или отличаются друг от друга менее чем 20% части опережающего просмотра кодирования с предсказанием или менее чем 20% части опережающего просмотра кодирования с преобразованием и поэтому довольно близки друг к другу. Устройство дополнительно содержит процессор кодирования для генерации данных, кодированных с предсказанием, для текущего кадра, используя обработанные с помощью оконной функции данные для опережающего анализа, или для генерации данных, кодированных с преобразованием, для текущего кадра, используя данные окна для анализа с преобразованием.The conversion coding look-ahead part and the predictive coding look-ahead part are identical to each other or less than 20% of the predictive coding look-ahead part or less than 20% of the look-ahead coding look-up and are therefore quite close to each other. The device further comprises a coding processor for generating predictive encoded data for the current frame using windowed data for advanced analysis, or for generating transform encoded data for the current frame using window data for transform analysis.
Аудиодекодер для декодирования кодированного аудиосигнала содержит декодер параметров предсказания для выполнения декодирования данных для кадра, кодированного с предсказанием, из кодированного аудиосигнала и, для второй ветви, декодер параметров преобразования для выполнения декодирования данных для кадра, кодированного с преобразованием, из закодированного аудиосигнала.An audio decoder for decoding an encoded audio signal comprises a prediction parameter decoder for decoding data for a prediction encoded frame from the encoded audio signal and, for a second branch, a transform parameter decoder for decoding data for the encoded conversion frame from the encoded audio signal.
Декодер параметров преобразования сконфигурирован для выполнения спектрально-временного преобразования, которое предпочтительно является подверженным искажениям преобразованием, таким как MDCT или MDST или любым другим подобным преобразованием, и для применения окна синтеза к преобразованным данным для получения данных для текущего кадра и будущего кадра. Окно синтеза, примененное аудиодекодером, таково, что оно имеет первую перекрывающуюся часть, смежную вторую неперекрывающуюся часть и смежную третью перекрывающуюся часть, при этом третья перекрывающаяся часть связана с дискретными значениями аудиосигнала для будущего кадра, а неперекрывающаяся часть связана с данными текущего кадра. Кроме того, чтобы иметь хорошее качество звука на стороне декодера, добавляющий перекрытие блок применяется для наложения и добавления обработанных с помощью окна синтеза дискретных значений, связанных с третьей перекрывающейся частью окна синтеза для текущего кадра, и обработанных с помощью окна синтеза дискретных значений, связанных с первой перекрывающейся частью окна синтеза для будущего кадра, для получения первой части дискретных значений аудиосигнала для будущего кадра, при этом оставшиеся дискретные значения аудиосигнала для будущего кадра являются обработанными с помощью окна синтеза дискретными значениями, связанными со второй неперекрывающейся частью окна синтеза для будущего кадра, полученной без добавления перекрытия, когда текущий кадр и будущий кадр содержат данные, кодированные с преобразованием.The transform parameter decoder is configured to perform a spectral-temporal transform, which is preferably a distorted transform, such as MDCT or MDST or any other similar transform, and to apply the synthesis window to the transformed data to obtain data for the current frame and future frame. The synthesis window used by the audio decoder is such that it has a first overlapping part, an adjacent second non-overlapping part and an adjacent third overlapping part, while the third overlapping part is associated with discrete audio signal values for the future frame, and the non-overlapping part is associated with the data of the current frame. In addition, in order to have good sound quality on the side of the decoder, an overlapping block is used to superimpose and add discrete values processed by the synthesis window associated with the third overlapping part of the synthesis window for the current frame and processed by the synthesis window of discrete values associated with the first overlapping part of the synthesis window for the future frame, to obtain the first part of the discrete values of the audio signal for the future frame, while the remaining discrete values of the audio signal for future frames are discrete values processed using the synthesis window associated with the second non-overlapping part of the synthesis window for the future frame obtained without adding overlap when the current frame and the future frame contain data encoded with conversion.
Предпочтительные варианты воплощения настоящего изобретения имеют ту особенность, что опережающие просмотры для ветви кодирования с преобразованием, такой как ветвь TCX, и ветви кодирования с предсказанием, такой как ветвь ACELP, идентичны друг другу, так что оба режима кодирования имеют максимально доступный опережающий просмотр при ограничениях, накладываемых на задержку. Кроме того, является предпочтительным, чтобы перекрытие окна TCX ограничивалось частью опережающего просмотра, чтобы переключение с режима кодирования с преобразованием на режим кодирования с предсказанием от одного кадра к следующему кадру было легко осуществимо без каких-либо проблем с искажениями.Preferred embodiments of the present invention have the feature that the leading views for the transform coding branch, such as the TCX branch, and the predictive coding branches, such as the ACELP branch, are identical to each other, so that both encoding modes have the most accessible leading viewing with limitations superimposed on the delay. In addition, it is preferable that the TCX window overlap be limited to a portion of the look-ahead, so that switching from a coding mode with conversion to a coding mode predicting from one frame to the next frame is easily possible without any distortion problems.
Дополнительной причиной ограничить перекрытие опережающим просмотром является желание не вводить задержку на стороне декодера. Если бы имелось окно TCX с опережающим просмотром в 10 мс и, например, перекрытием 20 мс, это ввело бы еще 10 мс задержки в декодере. Когда имеется окно TCX с опережающим просмотром в 10 мс и перекрытием в 10 мс, нет никакой дополнительной задержки на стороне декодера. Хорошим следствием этого является более легкое переключение.An additional reason to limit the overlap to leading viewing is the desire not to introduce a delay on the side of the decoder. If there were a TCX window with a 10 ms look-ahead and, for example, 20 ms overlap, this would introduce another 10 ms of delay in the decoder. When there is a TCX window with 10 ms look-ahead and 10 ms overlap, there is no additional delay on the decoder side. A good consequence of this is an easier switchover.
Поэтому является предпочтительным, чтобы вторая неперекрывающаяся часть окна анализа и, конечно, окно синтеза простирались до конца текущего кадра, а третья перекрывающаяся часть начиналась только относительно будущего кадра. Кроме того, ненулевая часть окна анализа/синтеза кодирования TCX или кодирования с преобразованием выравнивается с началом кадра так, чтобы, опять же, было возможно легкое и низкое по эффективности переключение с одного режима на другой режим.Therefore, it is preferable that the second non-overlapping part of the analysis window and, of course, the synthesis window extend to the end of the current frame, and the third overlapping part starts only relative to the future frame. In addition, the nonzero part of the TCX coding analysis / synthesis window or transform coding window is aligned with the beginning of the frame so that, again, it is possible to switch easily from one mode to another mode with low efficiency.
Кроме того, является предпочтительным, чтобы целый кадр, состоящий из множества подкадров, например четырех подкадров, мог быть или полностью кодирован в режиме кодирования с преобразованием (таком как режим TCX) или полностью кодирован в режиме кодирования с предсказанием (таком как режим ACELP).Furthermore, it is preferable that an entire frame consisting of a plurality of subframes, for example four subframes, can be either fully encoded in transform coding mode (such as TCX mode) or fully encoded in predictive coding mode (such as ACELP mode).
Кроме того, является предпочтительным использовать не только одно окно анализа LPC, а два различных окна анализа LPC, где одно окно анализа LPC выровнено с центром четвертого подкадра и является окном анализа конца кадра, в то время как другое окно анализа выровнено с центром второго подкадра и является окном анализа середины кадра. Если кодер переключается на кодирование с преобразованием, то, тем не менее, является предпочтительным передавать только один набор данных коэффициентов LPC, полученный из анализа LPC, основанного на окне анализа LPC конца кадра. Кроме того, на стороне декодера является предпочтительным не использовать эти данные LPC непосредственно для синтеза кодирования с преобразованием, и, в частности, спектрального взвешивания коэффициентов TCX. Вместо этого предпочтительно интерполировать данные TCX, полученные из окна анализа LPC конца кадра текущего кадра с помощью данных, полученных окном анализа LPC конца кадра из прошлого кадра, то есть кадра, непосредственно предшествующего во времени текущему кадру. Путем передачи только одного набора коэффициентов LPC для целого кадра в режиме TCX может быть получено дополнительное уменьшение битовой скорости по сравнению с передачей двух наборов данных коэффициентов LPC для анализа середины кадра и анализа кадра конца. Однако, когда кодер переключается на режим ACELP, оба набора коэффициентов LPC передаются от кодера декодеру.In addition, it is preferable to use not only one LPC analysis window, but two different LPC analysis windows, where one LPC analysis window is aligned with the center of the fourth subframe and is an end-of-frame analysis window, while the other analysis window is aligned with the center of the second subframe and is a mid-frame analysis window. If the encoder switches to transform coding, it is nevertheless preferable to transmit only one set of LPC coefficient data obtained from the LPC analysis based on the end-of-frame LPC analysis window. In addition, on the decoder side, it is preferable not to use this LPC data directly for the synthesis of transform coding, and in particular spectral weighting of TCX coefficients. Instead, it is preferable to interpolate the TCX data obtained from the LPC analysis window of the end of the frame of the current frame using the data obtained by the LPC analysis window of the end of the frame from the last frame, i.e., the frame immediately preceding the current frame in time. By transmitting only one set of LPC coefficients for an entire frame in TCX mode, an additional reduction in bit rate can be obtained compared to transmitting two sets of LPC coefficient data for mid-frame analysis and end frame analysis. However, when the encoder switches to ACELP mode, both sets of LPC coefficients are transmitted from the encoder to the decoder.
Кроме того, является предпочтительным, чтобы окно анализа LPC середины кадра заканчивалось сразу на следующей границе кадра текущего кадра и дополнительно простиралось в прошлый кадр. Это не вносит никакой задержки, так как прошлый кадр уже доступен и может использоваться без какой-либо задержки.In addition, it is preferable that the mid-frame LPC analysis window terminates immediately at the next frame boundary of the current frame and extends further to the last frame. This does not introduce any delay since the last frame is already available and can be used without any delay.
С другой стороны является предпочтительным, чтобы окно анализа конца кадра начиналось где-нибудь в пределах текущего кадра, а не в начале текущего кадра. Это, однако, не является проблемой, так как для формирования взвешивания TCX используется среднее набора данных LPC конца кадра для прошлого кадра и набора данных LPC кадра конца для текущего кадра, так что в итоге все данные в некотором смысле используются для вычисления коэффициентов LPC. Следовательно, начало окна анализа конца кадра предпочтительно находится в пределах части опережающего просмотра окна анализа конца прошлого кадра.On the other hand, it is preferable that the end-of-frame analysis window starts somewhere within the current frame, rather than at the beginning of the current frame. This, however, is not a problem, since the average of the end-of-frame LPC dataset for the last frame and the end-frame LPC dataset for the current frame are used to generate TCX weighting, so that in the end all the data is used in some sense to calculate the LPC coefficients. Therefore, the start of the end-of-frame analysis window is preferably within a portion of the leading view of the end-of-frame analysis window.
На стороне декодера получается значительно уменьшенное служебное сигнализирование для переключения с одного режима на другой режим. Причина состоит в том, что неперекрывающаяся часть окна синтеза, которая предпочтительно симметрична в своих пределах, не связана с дискретными значениями текущего кадра, а связана с дискретными значениями будущего кадра, и поэтому простирается только в пределах части опережающего просмотра, то есть только в будущем кадре. Следовательно, окно синтеза таково, что только первая перекрывающаяся часть, предпочтительно начинающаяся в средней части текущего кадра, находится в пределах текущего кадра, а вторая неперекрывающаяся часть простирается от конца первой перекрывающейся части до конца текущего кадра и, поэтому, вторая перекрывающаяся часть совпадает с частью опережающего просмотра. Поэтому, когда имеется переход от TCX к ACELP, данные, полученные из перекрывающейся части окна синтеза, просто отбрасываются и заменяются данными кодирования с предсказанием, которые доступны с самого начала будущего кадра из ветви ACELP.On the decoder side, a significantly reduced overhead is obtained for switching from one mode to another mode. The reason is that the non-overlapping part of the synthesis window, which is preferably symmetrical in its limits, is not associated with discrete values of the current frame, but is associated with discrete values of the future frame, and therefore extends only within the part of the leading view, that is, only in the future frame . Therefore, the synthesis window is such that only the first overlapping part, preferably starting in the middle part of the current frame, is within the current frame, and the second non-overlapping part extends from the end of the first overlapping part to the end of the current frame and, therefore, the second overlapping part coincides with the part leading view. Therefore, when there is a transition from TCX to ACELP, data obtained from the overlapping part of the synthesis window is simply discarded and replaced with predictive coding data, which are available from the very beginning of the future frame from the ACELP branch.
С другой стороны, когда имеется переключение от ACELP к TCX, применяется специальное окно перехода, которое начинается сразу в начале текущего кадра, то есть кадра сразу после переключения, с неперекрывающейся части, так что не нужно реконструировать никакие данные, чтобы найти перекрывающихся "партнеров". Вместо этого неперекрывающаяся часть окна синтеза предоставляет правильные данные без какого-либо перекрытия и без какой-либо добавляющей перекрытие процедуры, необходимых в декодере. Только для перекрывающихся частей, то есть третьей части окна для текущего кадра и первой части окна для следующего кадра, добавляющая перекрытие процедура полезна и выполняется, чтобы иметь, как в прямом MDCT, непрерывное возрастание/затухание от одного блока к другому, чтобы в конце получить хорошее качество звука без необходимости увеличивать битовую скорость из-за критически дискретизированных свойств MDCT, что также известно в области техники под термином "устранение искажений во временной области (TDAC).On the other hand, when there is a switch from ACELP to TCX, a special transition window is applied, which starts immediately at the beginning of the current frame, that is, the frame immediately after the switch, from the non-overlapping part, so that no data needs to be reconstructed to find overlapping "partners" . Instead, the non-overlapping portion of the synthesis window provides the correct data without any overlap and without any overlap-adding procedure required by the decoder. Only for overlapping parts, that is, the third part of the window for the current frame and the first part of the window for the next frame, the overlap-adding procedure is useful and is performed to have, as in direct MDCT, continuous increase / decrease from one block to another, in order to finally get good sound quality without the need to increase bit rate due to the critically sampled properties of MDCT, which is also known in the art under the term “time domain distortion correction (TDAC).
Кроме того, декодер полезен тем, что для режима кодирования ACELP передаются данные LPC, полученные из окна середины кадра и окна конца кадра в кодере, в то время как для режима кодирования TCX используется только один набор данных LPC, полученный из окна конца кадра. Однако, для декодированных спектрально взвешенных данных TCX переданные данные LPC как таковые не используются, а данные усредняются с соответствующими данными из окна анализа LPC конца кадра, полученного для прошлого кадра.In addition, the decoder is useful in that for the ACELP encoding mode, LPC data received from the middle of the frame window and the end of the frame window in the encoder is transmitted, while for the TCX encoding mode, only one LPC data set obtained from the end of the frame window is used. However, for decoded spectrally weighted TCX data, the transmitted LPC data is not used as such, and the data is averaged with the corresponding data from the LPC analysis window of the end of the frame obtained for the last frame.
Ниже описаны предпочтительные варианты воплощения настоящего изобретения со ссылкой на прилагаемые чертежи, на которых:Preferred embodiments of the present invention are described below with reference to the accompanying drawings, in which:
фиг. 1a изображает блок-схему переключаемого аудиокодера;FIG. 1a is a block diagram of a switchable audio encoder;
фиг. 1b изображает блок-схему соответствующего переключаемого декодера;FIG. 1b is a block diagram of a corresponding switchable decoder;
фиг. 1c изображает более подробно декодер параметров преобразования, изображенный на фиг. 1b;FIG. 1c shows in more detail the transform parameter decoder shown in FIG. 1b;
фиг. 1d изображает более подробно режим кодирования с преобразованием декодера на фиг. 1a;FIG. 1d depicts in more detail the encoding mode with transform of the decoder in FIG. 1a;
фиг. 2a изображает предпочтительный вариант воплощения для блока применения оконной функции, применяемого в кодере для анализа LPC с одной стороны и анализа кодирования с преобразованием с другой стороны, он является представлением окна синтеза, используемого в декодере кодирования с преобразованием на фиг. 1b;FIG. 2a shows a preferred embodiment for a window function application block used in an encoder for LPC analysis on the one hand and transform coding analysis on the other hand, it is a representation of the synthesis window used in the transform coding decoder in FIG. 1b;
фиг. 2b изображает последовательность выровненных окон анализа LPC и окон TCX для промежутка времени более двух кадров;FIG. 2b shows a sequence of aligned LPC analysis windows and TCX windows for a time span of more than two frames;
фиг. 2c изображает ситуацию для перехода от TCX к ACELP и окно перехода для перехода от ACELP к TCX;FIG. 2c shows a situation for transition from TCX to ACELP and a transition window for transition from ACELP to TCX;
фиг. 3a изображает более подробно кодер на фиг. 1a;FIG. 3a shows in more detail the encoder of FIG. 1a;
фиг. 3b изображает процедуру анализа посредством синтеза для выбора режима кодирования для кадра;FIG. 3b shows a synthesis analysis procedure for selecting a coding mode for a frame;
фиг. 3c изображает дополнительный вариант воплощения для выбора между режимами для каждого кадра;FIG. 3c shows an additional embodiment for choosing between modes for each frame;
фиг. 4a изображает вычисление и использование данных LPC, полученных путем использования двух различных окон анализа LPC для текущего кадра;FIG. 4a shows the calculation and use of LPC data obtained by using two different LPC analysis windows for the current frame;
фиг. 4b изображает использование данных LPC, полученных путем обработки с помощью оконной функции, используя окно анализа LPC для ветви TCX кодера;FIG. 4b shows the use of LPC data obtained by processing using a window function using the LPC analysis window for a TCX encoder branch;
фиг. 5a изображает окно анализа LPC для AMR-WB;FIG. 5a shows an LPC analysis window for AMR-WB;
фиг. 5b изображает симметричные окна для AMR-WB+ для анализа LPC;FIG. 5b shows symmetric windows for AMR-WB + for LPC analysis;
фиг. 5c изображает окна анализа LPC для кодера G.718;FIG. 5c shows LPC analysis windows for a G.718 encoder;
фиг. 5d изображает окна анализа LPC, используемые в USAC; иFIG. 5d shows the LPC analysis windows used in USAC; and
фиг. 6 изображает окно TCX для текущего кадра относительно окна анализа LPC для текущего кадра.FIG. 6 shows a TCX window for the current frame relative to the LPC analysis window for the current frame.
Фиг. 1a изображает устройство для кодирования аудиосигнала, имеющего поток дискретных значений аудиосигнала. Поступление дискретных значений аудиосигнала или аудиоданных в кодер показано под номером 100. Аудиоданные поступают в блок 102 применения оконной функции для применения окна анализа кодирования с предсказанием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с предсказанием. Блок 102 применения оконной функции дополнительно сконфигурирован применять окно анализа кодирования с преобразованием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с преобразованием. В зависимости от варианта осуществления окно LPC применяется не непосредственно к исходному сигналу, а к сигналу "с предыскажениями" (как в AMR-WB, AMR-WB+, G718 и USAC). С другой стороны, окно TCX применяется непосредственно к исходному сигналу (как в USAC). Однако оба окна могут также применяться к одним и тем же сигналам, или окно TCX может также применяться к обработанному аудиосигналу, полученному из исходного сигнала, посредством предыскажения или любого другого взвешивания, используемого для улучшения качества или эффективности сжатия.FIG. 1a shows an apparatus for encoding an audio signal having a stream of discrete values of an audio signal. The arrival of the discrete values of the audio signal or audio data to the encoder is shown at
Окно анализа кодирования с преобразованием связано с дискретными значениями аудиосигнала в текущем кадре дискретных значений аудиосигнала и с дискретными значениями аудиосигнала заданной части будущего кадра дискретных значений аудиосигнала, являющегося частью опережающего просмотра кодирования с преобразованием.The conversion coding analysis window is associated with discrete values of the audio signal in the current frame of discrete values of the audio signal and with discrete values of the audio signal of a given part of the future frame of discrete values of the audio signal, which is part of the look-ahead coding with conversion.
Кроме того, окно анализа кодирования с предсказанием связано с по меньшей мере частью дискретных значений аудиосигнала текущего кадра и с дискретными значениями аудиосигнала заданной части будущего кадра, являющегося частью опережающего просмотра кодирования с предсказанием.In addition, the prediction encoding analysis window is associated with at least a portion of the discrete audio values of the current frame and with discrete audio values of a predetermined portion of the future frame that is part of the predictive encoding look-ahead.
Как указано в блоке 102, часть опережающего просмотра кодирования с преобразованием и часть опережающего просмотра кодирования с предсказанием выровнены друг с другом, что означает, что эти части или идентичны, или достаточно близки друг к другу, например, отличаются друг от друга менее чем 20% части опережающего просмотра кодирования с предсказанием или менее чем 20% части опережающего просмотра кодирования с преобразованием. Предпочтительно, когда части опережающего просмотра идентичны или отличаются друг от друга менее чем 5% части опережающего просмотра кодирования с предсказанием или менее чем 5% части опережающего просмотра кодирования с преобразованием.As indicated in block 102, the conversion coding look-ahead part and the predictive coding look-ahead part are aligned with each other, which means that these parts are either identical or close enough to each other, for example, less than 20% differ from each other parts of the look-ahead coding review with prediction or less than 20% of the parts of the look-ahead coding with conversion. Preferably, when the leading parts of the look-ahead are identical or different from each other, less than 5% of the parts of the leading-look coding with predictions or less than 5% of the parts of the leading-look coding with conversion.
Кодер дополнительно содержит процессор 104 кодирования для генерации данных, кодированных с предсказанием, для текущего кадра с использованием обработанных с помощью оконной функции данных для анализа с предсказанием или для генерации данных, кодированных с преобразованием, для текущего кадра с использованием обработанных с помощью оконной функции данных для анализа с преобразованием.The encoder further comprises an encoding processor 104 for generating predicted encoded data for the current frame using windowed data for prediction analysis or for generating transform encoded data for the current frame using windowed data for analysis with conversion.
Кроме того, кодер предпочтительно содержит выходной интерфейс 106 для приема для текущего кадра и, фактически, для каждого кадра данных 108a LPC и данных, кодированных с преобразованием, (таких как данные TCX) или данных, кодированных с предсказанием, (данных ACELP) по линии 108b. Процессор 104 кодирования обеспечивает эти два вида данных и принимает, в качестве входной информации, обработанные с помощью оконной функции данные для анализа с предсказанием, обозначенные как 110a, и обработанные с помощью оконной функции данные для анализа с преобразованием, обозначенные как 110b. Кроме того, устройство для кодирования содержит селектор режима кодирования или контроллер 112, который принимает в качестве входных данных аудиоданные 100 и который обеспечивает в качестве выходных данных управляющую информацию для процессора 104 кодирования через линии 114a управления или управляющую информацию для выходного интерфейса 106 через линию 114b управления.In addition, the encoder preferably comprises an
Фиг. 3a показывает более подробно процессор 104 кодирования и блок 102 применения оконной функции. Блок 102 применения оконной функции предпочтительно содержит в качестве первого модуля блок 102a применения оконной функции анализа кодирования с предсказанием или LPC и в качестве второго компонента или модуля блок 102b применения оконной функции кодирования с преобразованием (такой как блок применения оконной функции TCX). Как показано стрелкой 300, окно анализа LPC и окно TCX выровнены друг с другом, так что части опережающего просмотра обоих окон идентичны друг другу, что означает, что обе части опережающего просмотра простираются до одного и того же момента времени в будущий кадр. Верхняя ветвь на фиг. 3a от блока 102a применения оконной функции LPC и далее вправо является ветвью кодирования с предсказанием, содержащей LPC анализатор и интерполятор 302, фильтр перцепционного взвешивания или блок 304 взвешивания и вычислитель 306 параметров кодирования с предсказанием, такой как вычислитель параметров ACELP. Аудиоданные 100 обеспечиваются для блока 102a применения оконной функции LPC и блока 304 перцепционного взвешивания. Кроме того, аудиоданные обеспечиваются для блока применения оконной функции TCX, и нижняя ветвь от выхода блока применения оконной функции TCX вправо составляет ветвь кодирования с преобразованием. Эта ветвь кодирования с преобразованием содержит блок 310 частотно-временного преобразования, блок 312 спектрального взвешивания и блок 314 кодирования с обработкой/квантованием. Блок 310 частотно-временного преобразования предпочтительно реализован как вносящее искажения преобразование, такое как MDCT, MDST или любое другое преобразование, которое имеет число входных значений больше, чем число выходных значений. Частотно-временное преобразование имеет, в качестве входных данных, обработанные с помощью оконной функции выходные данные блока 102b применения оконной функции TCX или, говоря в общем случае, кодирования с преобразованием.FIG. 3a shows in more detail the encoding processor 104 and the window function application unit 102. The window function application unit 102 preferably comprises, as a first module, a predictive coding analysis window function or
Хотя фиг. 3a показывает для ветви кодирования с предсказанием обработку LPC с алгоритмом кодирования ACELP, могут также применяться другие кодеры с предсказанием, такие как CELP или любые другие кодеры во временной области, известные в области техники, хотя алгоритм ACELP предпочтителен вследствие его качества с одной стороны и его эффективности с другой стороны.Although FIG. 3a shows for the predictive coding branch LPC processing with the ACELP coding algorithm, other predictive encoders such as CELP or any other time-domain encoders known in the art may also be used, although the ACELP algorithm is preferred because of its quality on the one hand and its efficiency on the other hand.
Кроме того, для ветви кодирования с преобразованием в блоке 310 частотно-временного преобразования предпочтительна, в частности, обработка MDCT, хотя также могут выполняться любые другие преобразования в спектральной области.Furthermore, for the transform coding branch in the time-
Кроме того, фиг. 3a изображает спектральное взвешивание 312 для преобразования спектральных значений, выводимых блоком 310, в область LPC. Это спектральное взвешивание 312 выполняется с помощью данных взвешивания, полученных из данных анализа LPC, генерируемых блоком 302 в ветви кодирования с предсказанием. Альтернативно, однако, преобразование из временной области в область LPC может также выполняться во временной области. В этом случае фильтр анализа LPC будет размещен перед блоком 102b применения оконной функции TCX, чтобы вычислить остаточные данные предсказания во временной области. Однако было обнаружено, что преобразование из временной области в область LPC предпочтительно выполнять в спектральной области путем спектрального взвешивания в данных, кодированных с преобразованием, используя данные анализа LPC, преобразованные из данных LPC в соответствующие весовые коэффициенты в спектральной области, такой как область MDCT.In addition, FIG. 3a shows
Фиг. 3b изображает общий вид для иллюстрации анализа посредством синтеза или определения "с обратной связью" режима кодирования для каждого кадра. С этой целью кодер, изображенный на фиг. 3c, содержит полный кодер кодирования с преобразованием и декодер кодирования с преобразованием, как это показано под номером 104b, и, дополнительно, содержит полный кодер кодирования с предсказанием и соответствующий декодер, обозначенный как 104a на фиг. 3c. Оба блока 104a, 104b принимают в качестве входных данных аудиоданные и выполняют полную операцию кодирования/декодирования. Затем результаты операции кодирования/декодирования для обеих ветвей 104a, 104b кодирования сравниваются с исходным сигналом и определяется показатель качества, чтобы узнать, какой режим кодирования обеспечивает лучшее качество. Показатель качества может быть сегментированным значением SNR или средним сегментированным SNR, таким как, например, описанное в разделе 5.2.3 из 3GPP TS 26.290. Однако также могут применяться любые другие показатели качества, которые обычно основаны на сравнении результата кодирования/декодирования с исходным сигналом.FIG. 3b is a perspective view for illustrating analysis by synthesizing or determining a “feedback” coding mode for each frame. To this end, the encoder shown in FIG. 3c, comprises a complete transform coding encoder and a transform encoding decoder, as shown under 104b, and further comprises a complete predictive encoding encoder and a corresponding decoder, designated 104a in FIG. 3c. Both
На основании показателя качества, который предоставляется от каждой ветви 104a, 104b решающему блоку 112, решающий блок решает, должен ли рассматриваемый кадр кодироваться с использованием ACELP или TCX. После принятия решения есть несколько путей выполнения выбора режима кодирования. Один путь состоит в том, что решающий блок 112 управляет соответствующими блоками 104a, 104b кодера/декодера, чтобы просто вывести результат кодирования для текущего кадра на выходной интерфейс 106 так, чтобы гарантировалось, что для некоторого кадра только один результат кодирования передается в выходном кодированном сигнале в 107.Based on the quality score that is provided from each
Альтернативно, оба устройства 104a, 104b могут передать свой результат кодирования выходному интерфейсу 106, и оба результата хранятся в выходном интерфейсе 106 до тех пор, пока решающий блок не прикажет выходному интерфейсу через линию 105 вывести или результат блока 104b, или блока 104a.Alternatively, both
Фиг. 3b изображает более подробно концепцию фиг. 3c. В частности, блок 104a содержит полный кодер ACELP, полный декодер ACELP и устройство 112a сравнения. Устройство 112a сравнения обеспечивает показатель качества для устройства 112c сравнения. То же самое справедливо для устройства 112b сравнения, которое имеет показатель качества в результате сравнения закодированного с помощью TCX и снова декодированного сигнала с исходным аудиосигналом. Затем оба устройства 112a, 112b сравнения обеспечивают свои показатели качества в конечное устройство 112c сравнения. В зависимости от того, какой показатель качества лучше, устройство сравнения выбирает CELP или TCX. Решение может быть уточнено путем введения дополнительных факторов в процесс принятия решения.FIG. 3b shows in more detail the concept of FIG. 3c. In particular,
Альтернативно, может выполняться режим без обратной связи для определения режима кодирования для текущего кадра, основанный на анализе сигнала аудиоданных для текущего кадра. В этом случае решающий блок 112 на фиг. 3c будет выполнять анализ сигнала аудиоданных для текущего кадра и будет затем или управлять кодером ACELP или кодером TCX, чтобы фактически закодировать текущий аудиокадр. В этой ситуации кодер не нуждается в полном декодере, и будет достаточен вариант осуществления только этапов кодирования кодером. Классификации сигналов и принятие решений относительно сигналов без обратной связи также описаны, например, в AMR-WB+ (3 GPP TS 26.290).Alternatively, a non-feedback mode may be performed to determine the encoding mode for the current frame based on the analysis of the audio signal for the current frame. In this case, the
Фиг. 2a изображает предпочтительный вариант осуществления блока 102 применения оконной функции и, в частности, окон, предоставляемых блоком применения оконной функции.FIG. 2a shows a preferred embodiment of a window function application unit 102 and, in particular, windows provided by a window function application unit.
Предпочтительно, окно анализа кодирования с предсказанием для текущего кадра центрирован в центре четвертого подкадра, и это окно обозначено номером 200. Кроме того, предпочтительно использовать дополнительное окно анализа LPC, то есть окно анализа LPC середины кадра, обозначенное под номером 202 и имеющее центр в центре второго подкадра текущего кадра. Кроме того, окно кодирования с преобразованием, такое как, например, окно 204 MDCT, размещено относительно двух окон 200, 202 анализа LPC, как изображено на фигуре. В частности, часть 206 опережающего просмотра из окна анализа имеет такую же длину по времени, как часть 208 опережающего просмотра окна анализа кодирования с предсказанием. Обе части опережающего просмотра простираются на 10 мс в будущий кадр. Кроме того, предпочтительно, чтобы окно анализа кодирования с преобразованием имело не только перекрывающуюся часть 206, но имело неперекрывающуюся часть 208 между 10 и 20 мс и первую перекрывающуюся часть 210. Перекрывающиеся части 206 и 210 таковы, что добавляющий перекрытие блок в декодере выполняет обработку с добавлением перекрытия в перекрывающейся части, и процедура добавления перекрытия не является необходимой для неперекрывающейся части.Preferably, the predictive coding analysis window for the current frame is centered in the center of the fourth subframe, and this window is indicated by 200. In addition, it is preferable to use an additional LPC analysis window, that is, the mid-frame LPC analysis window, labeled 202 and having a center in the center second subframe of the current frame. In addition, a transform coding window, such as, for example,
Предпочтительно, первая перекрывающаяся часть 210 начинается в начале кадра, то есть при 0 мс и простирается до центра кадра, то есть 10 мс. Кроме того, неперекрывающаяся часть простирается от конца первой части кадра 210 до конца кадра при 20 мс, так что вторая перекрывающаяся часть 206 полностью совпадает с частью опережающего просмотра. Это имеет преимущества из-за переключения с одного режима на другой режим. С точки зрения эффективности TCX было бы лучше использовать синусоидальное окно с полным перекрытием (перекрытие 20 мс, как в USAC). Это, однако, сделало бы необходимым использование технологии, такой как прямое устранение искажений для переходов между TCX и ACELP. Прямое устранение искажений используется в USAC для устранения искажений, вносимых отсутствием следующих кадров TCX (замененных ACELP). Прямое устранение искажений требует существенного количества битов и, таким образом, является неподходящим для постоянной битовой скорости и, в частности, кодека с низкой битовой скоростью, как предпочтительный вариант воплощения описанного кодека. Поэтому в соответствии с вариантами воплощения изобретения вместо использования FAC (прямого устранения искажений) уменьшается перекрытие окна TCX, и окно смещается в будущее так, чтобы вся перекрывающаяся часть 206 была размещена в будущем кадре. Кроме того, окно, изображенное на фиг. 2a для кодирования с преобразованием, имеет, тем не менее, максимальное перекрытие для получения идеальной реконструкции в текущем кадре, когда следующий кадр является ACELP, без использования прямого устранения искажений. Это максимальное перекрытие предпочтительно установлено равным 10 мс, что является доступным опережающим просмотром во времени, то есть 10 мс, как видно из фиг. 2a.Preferably, the first overlapping
Хотя фиг. 2a была описана со ссылкой на кодер, в котором окно 204 для кодирования с преобразованием является окном анализа, следует отметить, что окно 204 также представляет собой окно синтеза для декодирования с преобразованием. В предпочтительном варианте воплощения окно анализа идентично окну синтеза, и оба окна симметричны сами по себе. Это означает, что оба окна симметричны относительно (горизонтальной) осевой линии. В других приложениях, однако, могут использоваться несимметричные окна, где окно анализа отличается по форме от окна синтеза.Although FIG. 2a has been described with reference to an encoder in which the
Фиг. 2b изображает последовательность окон на части прошлого кадра, последующем текущем кадре, будущем кадре, который следует за текущим кадром, и следующим за будущим кадром, который следует после будущего кадра.FIG. 2b depicts a sequence of windows on a portion of a past frame, subsequent to the current frame, future frame that follows the current frame, and next to the future frame that follows the future frame.
Становится ясным, что добавляющая перекрытие часть, обработанная добавляющим перекрытие процессором, изображенная под номером 250, простирается от начала каждого кадра до середины каждого кадра, то есть между 20 и 30 мс для вычисления данных будущего кадра и между 40 и 50 мс для вычисления данных TCX для следующего за будущим кадра или между нулем и 10 мс для вычисления данных для текущего кадра. Однако для вычисления данных во второй половине каждого кадра нет добавленного перекрытия, и поэтому не нужна никакая техника прямого устранения искажений. Это связано с тем, что окно синтеза имеет не перекрывающуюся часть во второй половине каждого кадра.It becomes clear that the overlap-adding part, processed by the overlap-adding processor, depicted at
Как правило, длина окна MDCT равна удвоенной длине кадра. Это имеет место также и в настоящем изобретении. Однако когда, опять же, рассматривается фиг. 2a, становится ясно, что окно анализа/синтеза простирается только от нуля до 30 мс, а полная длина окна равна 40 мс. Эта полная длина имеет большое значение для обеспечения входных данных для соответствующей операции свертки и обратной свертки вычисления MDCT. Чтобы расширить окно до полной длины 40 мс, 5 мс нулевых значений добавлены между -5 и 0 мс, и 5 мс нулевых значений MDCT также добавлены в конце кадра между 30 и 35 мс. Однако эти дополнительные части, имеющие только нули, не играют никакой роли, когда дело доходит до рассмотрения задержки, так как кодеру или декодеру известно, что последние пять мс окна и первые пять мс окна это нули, так что эти данные уже присутствуют без какой-либо задержки.Typically, the MDCT window length is twice the frame length. This also occurs in the present invention. However, when, again, FIG. 2a, it becomes clear that the analysis / synthesis window extends only from zero to 30 ms, and the total window length is 40 ms. This full length is of great importance in providing input for the corresponding convolution and inverse convolution of the MDCT calculation. To expand the window to a full length of 40 ms, 5 ms of zero values are added between -5 and 0 ms, and 5 ms of zero MDCT values are also added at the end of the frame between 30 and 35 ms. However, these additional parts, with only zeros, do not play any role when it comes to considering the delay, since the encoder or decoder knows that the last five ms of the window and the first five ms of the window are zeros, so this data is already present without any or delays.
Фиг. 2c изображает два возможных перехода. Для перехода от TCX к ACELP, однако, не нужны никакие специальные предосторожности, так как когда предполагается относительно фиг. 2a, что будущий кадр является кадром ACELP, то данные, полученные с помощью декодирования TCX последнего кадра для части 206 опережающего просмотра, могут быть просто удалены, так как кадр ACELP начинается сразу в начале будущего кадра и, следовательно, нет промежутка без данных. Данные ACELP являются самосогласованными и, следовательно, декодер, когда имеется переключение с TCX на ACELP, использует данные, вычисленные по TCX для текущего кадра, отбрасывает данные, полученные с помощью обработки TCX для будущего кадра и вместо этого использует данные будущего кадра из ветви ACELP.FIG. 2c shows two possible transitions. For the transition from TCX to ACELP, however, no special precautions are necessary, since when assumed with respect to FIG. 2a that the future frame is an ACELP frame, the data obtained by TCX decoding the last frame for the look-
Однако когда выполняется переход от ACELP к TCX, то используется специальное окно перехода, как показано на фиг. 2c. Это окно начинается в начале кадра от нуля до 1, имеет неперекрывающуюся часть 220 и имеет перекрывающуюся часть в конце, обозначенную как 222, которая идентична перекрывающейся части 206 прямого окна MDCT.However, when the transition from ACELP to TCX is performed, a special transition window is used, as shown in FIG. 2c. This window starts at the beginning of the frame from zero to 1, has a
Это окно дополнительно заполняется нулями между -12,5 мс и нулем в начале окна и между 30 и 35,5 мс в конце, то есть после части 222 опережающего просмотра. Это приводит к увеличенной длине преобразования. Длина равна 50 мс, но длина прямого окна анализа/синтеза равна только 40 мс. Это, однако, не уменьшает эффективность или увеличивает битовую скорость, и это более длинное преобразование необходимо, когда имеет место переключение с ACELP на TCX. Окно перехода, используемое в соответствующем декодере, идентично окну, изображенному на фиг. 2c.This window is additionally filled with zeros between -12.5 ms and zero at the beginning of the window and between 30 and 35.5 ms at the end, that is, after
Далее более подробно обсуждается декодер. Фиг. 1b изображает аудиодекодер для декодирования закодированного аудиосигнала. Аудиодекодер содержит декодер 180 параметров предсказания, при этом декодер параметров предсказания сконфигурирован выполнять декодирование данных для кадра кодированного с предсказанием, из закодированного аудиосигнала, принятого в 181 и поступающего в интерфейс 182. Декодер дополнительно содержит декодер 183 параметров преобразования для выполнения декодирования данных для кадра кодированного с преобразованием, аудиосигнала на линии 181. Декодер параметров преобразования сконфигурирован для выполнения, предпочтительно, подверженного искажениям спектрально-временного преобразования и для применения окна синтеза к преобразованным данным для получения данных для текущего кадра и будущего кадра. Окно синтеза имеет первую перекрывающуюся часть, смежную вторую неперекрывающуюся часть и смежную третью перекрывающуюся часть, как показано на фиг. 2a, при этом третья перекрывающаяся часть связана только с дискретными значениями аудиосигнала для будущего кадра, а неперекрывающаяся часть связана только с данными текущего кадра. Кроме того, добавляющий перекрытие блок 184 обеспечен для наложения и добавления дискретных значений окна синтеза, связанных с третьей перекрывающейся частью окна синтеза для текущего кадра и окна синтеза при дискретных значениях, связанных с первой перекрывающейся частью окна синтеза для будущего кадра, для получения первой части дискретных значений аудиосигнала для будущего кадра. Остальные дискретные значения аудиосигнала для будущего кадра являются обработанными с помощью оконной функции синтеза дискретными значениями, связанными со второй неперекрывающейся частью окна синтеза для будущего кадра, полученного без добавления перекрытия, когда текущий кадр и будущий кадр содержат данные, кодированные с преобразованием. Однако когда имеет место переключение с одного кадра на следующий кадр, полезным является объединитель 185, который должен заботиться о хорошем переключении с одного режима кодирования на другой режим кодирования, чтобы в конце получить декодируемые аудиоданные на выходе объединителя 185.The decoder is discussed in more detail below. FIG. 1b shows an audio decoder for decoding an encoded audio signal. The audio decoder comprises a
Фиг. 1c изображает более подробно конструкцию декодера 183 параметров преобразования.FIG. 1c shows in more detail the construction of a
Декодер содержит каскад 183a обработки декодера, который сконфигурирован для выполнения всей обработки, необходимой для декодирования закодированных спектральных данных, такой как арифметическое декодирование, или декодирование по алгоритму Хаффмана, или, в общем случае, статистическое декодирование и последующее обратное квантование, заполнение шумом и т.д. для получения декодированных спектральных значений на выходе блока 183. Эти спектральные значения подаются на вход блока 183b спектрального взвешивания. Блок 183b спектрального взвешивания принимает данные спектрального взвешивания от вычислителя 183c взвешенных данных LPC, которому подаются данные LPC, генерируемые блоком анализа предсказания на стороне кодера и принимаемые в декодере через входной интерфейс 182. Затем выполняется обратное спектральное преобразование, которое содержит, в качестве первого этапа, предпочтительно обратное преобразование 183d DCT-IV и последующую обратную свертку и обработку 183e с помощью оконной функции синтеза, прежде чем данные для будущего кадра, например, будут предоставлены добавляющему перекрытие блоку 184. Добавляющий перекрытие блок может выполнять операцию добавления перекрытия, когда доступны данные для следующего будущего кадра. Блоки 183d и 183e вместе составляют спектральное/временное преобразование или, в варианте воплощения на фиг. 1с, предпочтительное обратное преобразование MDCT (MDCT-1).The decoder comprises a
В частности, блок 183d принимает данные для кадра в 20 мс и увеличивает объем данных в этапе обратной свертки блока 183e до данных для 40 мс, то есть в два раза большее количество данных по сравнению с тем, что было до этого, и затем к этим 40 мс данных применяется окно синтеза, имеющее продолжительность в 40 мс (когда добавлены нулевые части в начале и конце окна). Затем на выходе блока 183e доступны данные для текущего блока и данные в пределах части опережающего просмотра для будущего блока.In particular,
Фиг. 1d изображает соответствующую обработку на стороне кодера. Функции, которые обсуждались в контексте фиг. 1d, реализованы в процессоре 104 кодирования или соответствующих блоках на фиг. 3a. Частотно-временное преобразование 310 на фиг. 3a предпочтительно реализовано как MDCT и содержит этап 310a применения оконной функции, свертки, где операция применения оконной функции в блоке 310a реализована в виде блока 103d применения оконной функции TCX. Следовательно, фактически первой операцией в блоке 310 на фиг. 3a является операция свертки, чтобы вернуть 40 мс входных данных к 20 мс данным кадра. Затем, со свернутыми данными, которые теперь получили вклад искажений, выполняется DCT-IV, как показано в блоке 310d. Блок 302 (анализ LPC) предоставляет данные LPC, полученные с помощью анализа с использованием окна LPC конца кадра, блоку 302b (LPC к MDCT), а блок 302d генерирует весовые коэффициенты для осуществления спектрального взвешивания с помощью блока 312 спектрального взвешивания. Предпочтительно, 16 коэффициентов LPC для одного кадра в 20 мс в режиме кодирования TCX преобразуются в 16 весовых коэффициентов MDCT-области, предпочтительно путем использования oDFT (нечетного дискретного преобразования Фурье). Для других режимов, таких как режимы NB, имеющих частоту дискретизации 8 кГц, число коэффициентов LPC может быть ниже, например, 10. Для других режимов с более высокими частотами дискретизации также может иметься больше чем 16 коэффициентов LPC. Результатом этого oDFT являются 16 весовых значений, и каждое весовое значение связано с полосой спектральных данных, полученных блоком 310b. Спектральное взвешивание происходит путем деления всех спектральных значений MDCT для одной полосы на такое же весовое значение, связанное с этой полосой, для очень эффективного выполнения этой операции спектрального взвешивания в блоке 312. Следовательно, каждая из 16 полос значений MDCT делятся на соответствующий весовой коэффициент, чтобы вывести спектрально взвешенные спектральные значения, которые затем дополнительно обрабатываются блоком 314, как известно в области техники, то есть, например, путем квантования и статистического кодирования.FIG. 1d shows the corresponding processing on the encoder side. The functions discussed in the context of FIG. 1d are implemented in coding processor 104 or corresponding blocks in FIG. 3a. Time-
С другой стороны, на стороне декодера спектральное взвешивание, соответствующее блоку 312 на фиг. 1d, будет умножением, выполняемым блоком 183b применения спектральных весовых коэффициентов, изображенным на фиг. 1с.On the decoder side, on the other hand, spectral weighting corresponding to block 312 in FIG. 1d will be the multiplication performed by the
Далее обсуждаются фиг. 4a и фиг. 4b, чтобы показать, как данные LPC, генерируемые окном анализа LPC или генерируемые двумя окнами анализа LPC, изображенными на фиг. 2, используются в режиме ACELP или в режиме TCX/MDCT.Next, FIG. 4a and FIG. 4b to show how the LPC data generated by the LPC analysis window or generated by the two LPC analysis windows shown in FIG. 2, are used in ACELP mode or in TCX / MDCT mode.
После применения окна анализа LPC, выполняется вычисление автокорреляции с помощью обработанных с помощью оконной функции данных LPC. Затем применяется алгоритм Левинсона Дарбина к автокорреляционной функции. Затем 16 коэффициентов LP для каждого анализа LP, то есть 16 коэффициентов для окна середины кадра и 16 коэффициентов для окна конца кадра, преобразуются в значения ISP. Следовательно, этапы от вычисления автокорреляции до преобразования ISP выполняются, например, в блоке 400 на фиг. 4a.After applying the LPC analysis window, autocorrelation is calculated using the LPC data processed using the window function. Then the Levinson Darbin algorithm is applied to the autocorrelation function. Then, 16 LP coefficients for each LP analysis, that is, 16 coefficients for the mid-frame window and 16 coefficients for the end-frame window, are converted to ISP values. Therefore, the steps from calculating autocorrelation to ISP conversion are performed, for example, in
Затем вычисления продолжаются на стороне кодера в виде квантования коэффициентов ISP. Затем коэффициенты ISP опять подвергаются обратному квантованию и преобразуются обратно в область коэффициентов LP. Следовательно, получаются данные LPC или, говоря иначе, 16 коэффициентов LPC, которые немного отличаются от коэффициентов LPC, полученных в блоке 400 (из-за квантования и обратного квантования), и которые затем могут использоваться непосредственно для четвертого подкадра, как показано на этапе 401. Для других подкадров, однако, предпочтительно выполнять несколько интерполяций как, например, описано в разделе 6.8.3 Рек. ITU-T G.718 (06/2008). Данные LPC для третьего подкадра вычисляются путем интерполяции данных LPC конца кадра и середины кадра, представленной блоком 402. Предпочтительной интерполяцией является, деление всех соответствующих данных на два и их сложение, то есть среднее данных LPC конца кадра и середины кадра. Чтобы вычислить данные LPC для второго подкадра, как изображено в блоке 403, дополнительно выполняется интерполяция. В частности, 10% значений данных LPC конца кадра последнего кадра, 80% данных LPC середины кадра для текущего кадра и 10% значений данных LPC для конца кадра текущего кадра используются, чтобы в итоге вычислить данные LPC для второго подкадра.Then the calculations are continued on the encoder side in the form of quantization of the ISP coefficients. Then, the ISP coefficients are again inverse quantized and converted back to the LP coefficient domain. Therefore, LPC data or, in other words, 16 LPC coefficients is obtained, which are slightly different from the LPC coefficients obtained in block 400 (due to quantization and inverse quantization), and which can then be used directly for the fourth subframe, as shown in
Наконец, вычисляются данные LPC для первого подкадра, как показано в блоке 404, путем формирования среднего между данными LPC конца кадра последнего кадра и данными LPC середины кадра текущего кадра.Finally, LPC data for the first subframe is calculated, as shown in
Для выполнения кодирования ACELP оба квантованных набора параметров LPC, то есть от анализа середины кадра и анализа конца кадра, передаются декодеру.To perform ACELP encoding, both quantized sets of LPC parameters, i.e., from mid-frame analysis and end-of-frame analysis, are transmitted to the decoder.
На основании результатов для отдельных подкадров, вычисленных блоками 401-404, выполняются вычисления ACELP, как указано в блоке 405, для получения данных ACELP, которые будут переданы декодеру.Based on the results for the individual subframes computed by blocks 401-404, ACELP calculations are performed, as indicated in
Далее описывается фиг. 4b. Опять же, в блоке 400 вычисляются данные LPC середины кадра и конца кадра. Однако так как имеем режим кодирования TCX, только данные LPC конца кадра передаются декодеру, а данные LPC середины кадра не передаются декодеру. В частности, непосредственно коэффициенты LPC не передаются декодеру, а передаются значения, полученные после преобразования ISP и квантования. Следовательно, является предпочтительным, чтобы, как и данные LPC, квантованные значения ISP, полученные из коэффициентов данных LPC конца кадра, передавались декодеру.Next, FIG. 4b. Again, in
Однако в кодере должны быть выполнены процедуры этапов 406-408 для получения весовых коэффициентов для получения весовых коэффициентов для взвешивания спектральных данных MDCT текущего кадра. С этой целью интерполируются данные LPC конца кадра текущего кадра и данные LPC конца кадра предыдущего кадра. Однако предпочтительно не интерполировать непосредственно коэффициенты данных LPC, полученные непосредственно из анализа LPC. Вместо этого предпочтительно интерполировать квантованные и снова подвергнутые обратному квантованию значения ISP, полученные из соответствующих коэффициентов LPC. Следовательно, данные LPC, используемые в блоке 406, так же как данные LPC, используемые для других вычислений в блоке 401-404, всегда, предпочтительно, являются данными ISP, подвергнутыми квантованию и обратному квантованию, полученными из исходных 16 коэффициентов LPC на каждое окно анализа LPC.However, the procedures of steps 406-408 must be performed in the encoder to obtain weights to obtain weights for weighting the MDCT spectral data of the current frame. To this end, the LPC data of the end of the frame of the current frame and the LPC data of the end of the frame of the previous frame are interpolated. However, it is preferable not to directly interpolate the LPC data coefficients obtained directly from the LPC analysis. Instead, it is preferable to interpolate the quantized and again quantized ISP values obtained from the corresponding LPC coefficients. Therefore, the LPC data used in
Интерполяция в блоке 406 является предпочтительно чистым усреднением, то есть соответствующие значения складываются и делятся на два. Затем, в блоке 407 спектральные данные MDCT текущего кадра взвешиваются с использованием интерполированных данных LPC и, в блоке 408, выполняется дальнейшая обработка взвешенных спектральных данных, чтобы в конце получить закодированные спектральные данные, которые будут переданы от кодера декодеру. Следовательно, процедуры, выполняемые на этапе 407, соответствуют блоку 312, а процедура, выполняемая в блоке 408 на фиг. 4b соответствует блоку 314 на фиг. 3a. Соответствующие операции фактически выполняются на стороне декодера. Следовательно, те же самые интерполяции необходимы на стороне декодера, чтобы вычислить коэффициенты спектрального взвешивания с одной стороны или вычислить коэффициенты LPC для отдельных подкадров путем интерполяции с другой стороны. Поэтому фиг. 4a и фиг. 4b одинаково применимы к стороне декодера в отношении процедур в блоках 401-404 или 406 на фиг. 4b.The interpolation in
Настоящее изобретение в частности полезно для вариантов осуществления кодека с низкой задержкой. Это означает, что такие кодеки разработаны так, чтобы иметь алгоритмическую или систематическую задержку предпочтительно менее 45 мс и, в некоторых случаях, даже равную или менее 35 мс. Тем не менее, часть опережающего просмотра для анализа LPC и анализа TCX необходима для получения хорошего качества звука. Поэтому необходим хороший компромисс между этими двумя противоречивыми требованиями. Было обнаружено, что хороший компромисс между задержкой с одной стороны и качеством с другой стороны может быть получен посредством переключаемого аудиокодера или декодера, имеющих длительность кадра 20 мс, но также было найдено, что значения для длин кадров между 15 и 30 мс также обеспечивают приемлемые результаты. С другой стороны, было обнаружено, что часть опережающего просмотра в 10 мс приемлема, когда речь идет о проблемах задержки, но значения между 5 мс и 20 мс также полезны в зависимости от соответствующего применения. Кроме того, было обнаружено, что соотношение между частью опережающего просмотра и длиной кадра является полезным, когда оно равно 0,5, но и другие значения между 0,4 и 0,6 также полезны. Кроме того, хотя изобретение было описано с ACELP с одной стороны и MDCT-TCX с другой стороны, другие алгоритмы, работающие во временной области, такие как CELP или любые другие алгоритмы с предсказанием или формой сигнала также полезны. Что касается TCX/MDCT, также могут применяться другие алгоритмы кодирования области преобразования, такие как MDST или любые другие основанные на преобразовании алгоритмы.The present invention is particularly useful for low latency codec embodiments. This means that such codecs are designed to have an algorithmic or systematic delay of preferably less than 45 ms and, in some cases, even equal to or less than 35 ms. However, part of the lead-in viewing for LPC analysis and TCX analysis is necessary to get good sound quality. Therefore, a good compromise is needed between these two conflicting requirements. It was found that a good compromise between delay on the one hand and quality on the other can be obtained by a switchable audio encoder or decoder having a frame duration of 20 ms, but it was also found that values for frame lengths between 15 and 30 ms also provide acceptable results. . On the other hand, it was found that the 10 ms look-ahead portion is acceptable when it comes to delay problems, but values between 5 ms and 20 ms are also useful depending on the respective application. In addition, it was found that the ratio between the portion of the look-ahead and the frame length is useful when it is 0.5, but other values between 0.4 and 0.6 are also useful. Furthermore, although the invention has been described with ACELP on the one hand and MDCT-TCX on the other, other time-domain algorithms such as CELP or any other prediction or waveform algorithms are also useful. For TCX / MDCT, other transform domain coding algorithms, such as MDST or any other transform-based algorithms, may also be used.
То же самое справедливо для конкретного варианта осуществления анализа LPC и вычисления LPC. Предпочтительно полагаться на процедуры, описанные выше, но и другие процедуры для вычисления/интерполяции и анализа также могут использоваться, если эти процедуры полагаются на окно анализа LPC.The same is true for a particular embodiment of LPC analysis and LPC calculation. It is preferable to rely on the procedures described above, but other procedures for calculation / interpolation and analysis can also be used if these procedures rely on the LPC analysis window.
Хотя некоторые аспекты были описаны в контексте устройства, очевидно, что эти аспекты также представляют описание соответствующего способа, где блок или устройство соответствуют этапу способа или свойству этапа способа. Аналогично, аспекты, описанные в контексте этапа способа также, представляют описание соответствующего блока или элемента или свойства соответствующего устройства.Although some aspects have been described in the context of the device, it is obvious that these aspects also represent a description of the corresponding method, where the unit or device corresponds to a method step or a property of a method step. Similarly, the aspects described in the context of a method step also provide a description of the corresponding unit or element or property of the corresponding device.
В зависимости от некоторых требований варианта осуществления варианты воплощения изобретения могут быть реализованы в виде аппаратных средств или в виде программного обеспечения. Вариант осуществления может быть выполнен с использованием цифрового носителя данных, например гибкого диска, DVD, CD, ROM, PROM, EPROM, EEPROM или флэш-памяти, имеющего сохраненные в нем считываемые электронным образом управляющие сигналы, которые взаимодействуют (или способны взаимодействовать) с программируемой компьютерной системой так, что выполняется соответствующий способ.Depending on some requirements of an embodiment, embodiments of the invention may be implemented in hardware or in software. An embodiment may be performed using a digital storage medium such as a floppy disk, DVD, CD, ROM, PROM, EPROM, EEPROM or flash memory having electronically readable control signals that interact (or are capable of interacting) with the programmable a computer system such that an appropriate method is performed.
Некоторые варианты воплощения настоящего изобретения содержат невременный носитель данных, имеющий считываемые электронным образом управляющие сигналы, которые могут взаимодействовать с программируемой компьютерной системой так, что выполняется один из способов, описанных здесь.Some embodiments of the present invention comprise a non-transitory storage medium having electronically readable control signals that can interact with a programmable computer system such that one of the methods described herein is performed.
Как правило, варианты воплощения настоящего изобретения могут быть реализованы в виде компьютерного программного продукта с кодом программы, кода программы, исполняемого для выполнения одного из способов, когда компьютерный программный продукт выполняется на компьютере. Код программы может, например, храниться на машиночитаемом носителе.Typically, embodiments of the present invention may be implemented as a computer program product with program code, program code executed to execute one of the methods when the computer program product is executed on a computer. The program code may, for example, be stored on a computer-readable medium.
Другие варианты воплощения содержат компьютерную программу для выполнения одного из способов, описанных здесь, которая хранится на машиночитаемом носителе.Other embodiments include a computer program for performing one of the methods described herein, which is stored on a computer-readable medium.
Поэтому, другими словами, вариантом воплощения способа согласно изобретению является компьютерная программа, имеющая код программы для выполнения одного из способов, описанных здесь, когда компьютерная программа выполняется на компьютере.Therefore, in other words, an embodiment of the method according to the invention is a computer program having program code for executing one of the methods described herein when the computer program is executed on a computer.
Еще одним вариантом воплощения способов согласно изобретению является носитель информации (или цифровой носитель данных, или машиночитаемый носитель), содержащий записанную на нем компьютерную программу для выполнения одного из способов, описанных здесь.Another embodiment of the methods of the invention is a storage medium (either a digital storage medium or a computer-readable medium) comprising a computer program recorded thereon for performing one of the methods described herein.
Еще одним вариантом воплощения способа согласно изобретению является поток данных или последовательность сигналов, представляющих собой компьютерную программу для выполнения одного из способов, описанных здесь. Поток данных или последовательность сигналов могут быть, например, сконфигурированы для передачи через соединение для передачи данных, например через Интернет.Another embodiment of the method according to the invention is a data stream or a sequence of signals representing a computer program for performing one of the methods described herein. The data stream or signal sequence may, for example, be configured to be transmitted via a data connection, for example via the Internet.
Еще один вариант воплощения содержит средство обработки, например компьютер или программируемое логическое устройство, сконфигурированное или адаптированное выполнять один из способов, описанных здесь.Another embodiment includes a processing means, such as a computer or programmable logic device, configured or adapted to perform one of the methods described herein.
Еще один вариант воплощения содержит компьютер, имеющий установленную на нем компьютерную программу для выполнения одного из способов, описанных здесь.Another embodiment includes a computer having a computer program installed thereon for performing one of the methods described herein.
В некоторых вариантах воплощения может использоваться программируемое логическое устройство (например, программируемая пользователем вентильная матрица) для выполнения некоторых или всех функций способов, описанных здесь. В некоторых вариантах воплощения программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором для выполнения одного из способов, описанных здесь. В общем случае способы предпочтительно выполняются любыми аппаратными средствами.In some embodiments, a programmable logic device (eg, a user programmable gate array) may be used to perform some or all of the functions of the methods described herein. In some embodiments, a user-programmable gate array may interact with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by any hardware.
Описанные выше варианты воплощения просто иллюстрируют принципы настоящего изобретения. Подразумевается, что модификации и вариации компоновок и деталей, описанных здесь, будут очевидны для специалистов области техники. Поэтому предполагается, что изобретение ограничено только объемом прилагаемой формулы изобретения, а не конкретными деталями, представленными здесь в виде описания и пояснения вариантов воплощения.The embodiments described above merely illustrate the principles of the present invention. It is understood that modifications and variations of the arrangements and details described herein will be apparent to those skilled in the art. Therefore, it is intended that the invention be limited only by the scope of the appended claims, and not by the specific details presented herein in the form of a description and explanation of embodiments.
Claims (26)
блок (102) применения оконной функции для применения окна (200) анализа кодирования с предсказанием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с предсказанием и для применения окна (204) анализа кодирования с преобразованием «время-частота» к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с преобразованием, при этом кодирование с предсказанием является кодированием с предсказанием будущего кадра,
причем окно анализа кодирования с преобразованием связано с дискретными значениями аудиосигнала в пределах текущего кадра дискретных значений аудиосигнала и с дискретными значениями аудиосигнала заранее заданной части будущего кадра дискретных значений аудиосигнала, являющимися частью (206) опережающего просмотра кодирования с преобразованием,
причем окно анализа кодирования с предсказанием связано с, по меньшей мере, частью дискретных значений аудиосигнала текущего кадра и с дискретными значениями аудиосигнала заранее заданной части будущего кадра, являющимися частью (208) опережающего просмотра кодирования с предсказанием,
причем часть (206) опережающего просмотра кодирования с преобразованием и часть (208) опережающего просмотра кодирования с предсказанием тождественны друг другу или отличаются друг от друга менее чем на 20% части (208) опережающего просмотра кодирования с предсказанием или менее чем на 20% части (206) опережающего просмотра кодирования с преобразованием; и
процессор (104) кодирования для генерации данных, кодированных с предсказанием, для текущего кадра с использованием обработанных с помощью оконной функции данных для анализа с предсказанием или для генерации данных, кодированных с преобразованием, для текущего кадра с использованием обработанных с помощью оконной функции данных для анализа с преобразованием.1. A device for encoding an audio signal having a stream of discrete values (100) of an audio signal, comprising:
a window function application unit (102) for applying a prediction coding analysis window (200) to a stream of discrete audio signal values to obtain data processed by the window function for prediction analysis and for applying a time-frequency transformation coding window (204) to the stream of discrete values of the audio signal to obtain processed data using the window function for analysis with conversion, wherein the prediction encoding is the prediction encoding of the future frame,
wherein the conversion coding analysis window is associated with discrete values of the audio signal within the current frame of discrete values of the audio signal and with discrete values of the audio signal of a predetermined portion of the future frame of discrete values of the audio signal, which are part (206) of the forward looking encoding with conversion,
moreover, the prediction coding analysis window is associated with at least a portion of the discrete audio values of the current frame and with discrete audio values of a predetermined portion of the future frame, which are part (208) of the predictive coding preview,
moreover, the part (206) of the forward lookup of the coding with conversion and the part (208) of the forward lookup of the coding with prediction are identical to each other or differ from each other by less than 20% of the part (208) of the forward lookup of the coding with prediction or less than 20% of the part ( 206) look-ahead coding conversion; and
an encoding processor (104) for generating predicted encoded data for the current frame using windowed data for prediction analysis or for generating transform encoded data for the current frame using windowed data for analysis with conversion.
выходной интерфейс (106) для вывода кодированного сигнала для текущего кадра; и
селектор (112) режима кодирования для управления процессором (104) кодирования для вывода или данных, кодированных с предсказанием, или данных, кодированных с преобразованием, для текущего кадра,
причем селектор (112) режима кодирования сконфигурирован с возможностью переключаться только между кодированием с предсказанием или кодированием с преобразованием для целого кадра, так что кодируемый сигнал для целого кадра или содержит данные, кодированные с предсказанием, или данные, кодированные с преобразованием.5. The device according to claim 1, further comprising:
an output interface (106) for outputting an encoded signal for the current frame; and
an encoding mode selector (112) for controlling an encoding processor (104) for outputting either prediction encoded data or transform encoded data for the current frame,
wherein the encoding mode selector (112) is configured to switch only between prediction encoding or transform coding for the whole frame, so that the encoded signal for the whole frame either contains prediction encoded data or transform encoded data.
в котором блок применения (102) оконной функции использует в дополнение к окну анализа кодирования с предсказанием дополнительное окно (202) анализа кодирования с предсказанием, связанное с дискретными значениями аудиосигнала, размещенными в начале текущего кадра, и в котором окно (200) анализа кодирования с предсказанием не связано с дискретными значениями аудиосигнала, размещенными в начале текущего кадра.6. The device according to claim 1,
in which the application block (102) of the window function uses, in addition to the prediction encoding analysis window, an additional prediction encoding analysis window (202) associated with discrete audio values located at the beginning of the current frame, and in which the encoding analysis window (200) with prediction is not associated with discrete values of the audio signal located at the beginning of the current frame.
в котором кадр содержит множество подкадров, причем окно (200) анализа с предсказанием центрировано в центре подкадра, и причем окно анализа кодирования с преобразованием центрировано на границе между двумя подкадрами.7. The device according to claim 1,
wherein the frame contains a plurality of subframes, the prediction analysis window (200) being centered in the center of the subframe, and the transform coding analysis window being centered on the boundary between the two subframes.
в котором окно (200) анализа с предсказанием центрировано в центре последнего подкадра кадра, причем дополнительное окно анализа (202) центрировано в центре второго подкадра текущего кадра, и причем окно анализа кодирования с преобразованием центрировано на границе между третьим и четвертым подкадром текущего кадра, причем текущий кадр подразделен на четыре подкадра.8. The device according to p. 7,
wherein the prediction analysis window (200) is centered in the center of the last subframe of the frame, wherein the additional analysis window (202) is centered in the center of the second subframe of the current frame, and wherein the transform coding analysis window is centered on the boundary between the third and fourth subframe of the current frame, the current frame is subdivided into four subframes.
причем окно перехода содержит первую неперекрывающуюся часть, начинающуюся в начале кадра, и перекрывающуюся часть, начинающуюся в конце неперекрывающейся части и простирающуюся в будущий кадр,
причем перекрывающаяся часть, простирающаяся в будущий кадр, имеет длину, которая идентична длине части опережающего просмотра кодирования с преобразованием окна анализа.11. The device according to claim 10, in which the transition window is used to switch from the prediction encoding mode to the encoding mode with conversion from one frame to the next frame by the window function application unit (102),
moreover, the transition window contains the first non-overlapping part, starting at the beginning of the frame, and an overlapping part, starting at the end of the non-overlapping part and extending to the future frame,
moreover, the overlapping part, extending into the future frame, has a length that is identical to the length of the leading part of the coding preview with the transformation of the analysis window.
выходной интерфейс (106) для вывода закодированного сигнала для текущего кадра; и
селектор (112) режима кодирования для управления процессором (104) кодирования для вывода или данных, кодированных с предсказанием, или данных, кодированных с преобразованием, для текущего кадра,
причем окно (102) сконфигурировано с возможностью использовать дополнительное окно кодирования с предсказанием, расположенное в текущем кадре перед окном кодирования с предсказанием, и
причем селектор (112) режима кодирования сконфигурирован с возможностью управлять процессором (104) кодирования для посылки только данных анализа кодирования с предсказанием, полученных из окна кодирования с предсказанием, когда данные, кодированные с преобразованием, выводятся на выходной интерфейс, и не посылать данные анализа кодирования с предсказанием, полученные из дополнительного окна кодирования с предсказанием, и
причем селектор (112) режима кодирования сконфигурирован с возможностью управлять процессором (104) кодирования для посылки данных анализа кодирования с предсказанием, полученных из окна кодирования с предсказанием, и для посылки данных анализа кодирования с предсказанием, полученных из дополнительного окна кодирования с предсказанием, когда данные, кодированные с предсказанием, выводятся на выходной интерфейс.13. The device according to claim 1, further comprising:
an output interface (106) for outputting an encoded signal for the current frame; and
an encoding mode selector (112) for controlling an encoding processor (104) for outputting either prediction encoded data or transform encoded data for the current frame,
moreover, the window (102) is configured to use an additional prediction encoding window located in the current frame in front of the prediction encoding window, and
wherein the encoding mode selector (112) is configured to control the encoding processor (104) to send only predictive encoding analysis data obtained from the predictive encoding window when the encoded transform data is output to the output interface and not send encoding analysis data with prediction obtained from the additional prediction coding window, and
wherein the encoding mode selector (112) is configured to control the encoding processor (104) to send prediction encoding analysis data obtained from the prediction encoding window and to send prediction encoding analysis data obtained from the additional prediction encoding window when the data encoded with prediction are output to the output interface.
анализатор (302) кодирования с предсказанием для получения данных кодирования с предсказанием для текущего кадра из обработанных с помощью оконной функции данных (100а) для анализа с предсказанием;
ветвь кодирования с предсказанием, содержащую:
каскад (304) фильтра для вычисления данных фильтра по дискретным значениям аудиосигнала для текущего кадра, используя данные кодирования с предсказанием; и
вычислитель (306) параметров кодера с предсказанием для вычисления параметров кодирования с предсказанием для текущих кадров; и
ветвь кодирования с преобразованием, содержащую:
спектрально-временной преобразователь (310) для
преобразования данных окна для алгоритма кодирования с преобразованием в спектральное представление;
блок (312) спектрального взвешивания для взвешивания спектральных данных, используя взвешенные данные взвешивания, полученные из данных кодирования с предсказанием, для получения взвешенных спектральных данных; и
процессор (314) спектральных данных для обработки взвешенных спектральных данных для получения данных, кодированных с преобразованием, для текущего кадра.14. The device according to claim 1, wherein the encoding processor (104) comprises:
a prediction encoding analyzer (302) for obtaining prediction encoding data for a current frame from the window-processed data (100a) for prediction analysis;
a predictive coding branch comprising:
a filter stage (304) for computing filter data from discrete audio signal values for the current frame using predictive coding data; and
a predictor encoder parameter calculator (306) for calculating predictive encoding parameters for the current frames; and
a transform encoding branch containing:
spectral-time converter (310) for
transforming window data for a coding algorithm with conversion to a spectral representation;
a spectral weighting unit (312) for weighting the spectral data using the weighted weighting data obtained from the predictive coding data to obtain weighted spectral data; and
a spectral data processor (314) for processing weighted spectral data to obtain transform encoded data for the current frame.
применение (102) окна (200) анализа кодирования с предсказанием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с предсказанием и применения окна (204) анализа кодирования с преобразованием «время-частота» к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с преобразованием, при этом кодирование с предсказанием является кодированием с предсказанием будущего кадра,
причем окно анализа кодирования с преобразованием связано с дискретными значениями аудиосигнала в пределах текущего кадра дискретных значений аудиосигнала и с дискретными значениями аудиосигнала заранее заданной части будущего кадра дискретных значений аудиосигнала, являющимися частью (206) опережающего просмотра кодирования с преобразованием,
причем окно анализа кодирования с предсказанием связано с, по меньшей мере, частью дискретных значений аудиосигнала текущего кадра и с дискретными значениями аудиосигнала заранее заданной части будущего кадра, являющимися частью (208) опережающего просмотра кодирования с предсказанием,
причем часть (206) опережающего просмотра кодирования с преобразованием и часть (208) опережающего просмотра кодирования с предсказанием тождественны друг другу или отличаются друг от друга менее чем на 20% части (208) опережающего просмотра кодирования с предсказанием или менее чем на 20% части (206) опережающего просмотра кодирования с преобразованием; и
генерацию (104) данных, кодированных с преобразованием, для текущего кадра, используя обработанные с помощью оконной функции данные для анализа с предсказанием, или для генерации данных, кодированных с преобразованием, для текущего кадра, используя обработанные с помощью оконной функции данные для анализа с преобразованием.15. A method of encoding an audio signal having a stream of discrete values (100) of an audio signal, comprising:
application (102) of a predictive coding analysis window (200) to a stream of discrete values of an audio signal to obtain processed data using a window function for predicting analysis and applying a time-frequency coding analysis window (204) to a stream of discrete values of an audio signal for receiving processed by a window function data for analysis with conversion, while prediction encoding is prediction encoding of a future frame,
wherein the conversion coding analysis window is associated with discrete values of the audio signal within the current frame of discrete values of the audio signal and with discrete values of the audio signal of a predetermined portion of the future frame of discrete values of the audio signal, which are part (206) of the forward looking encoding with conversion,
moreover, the prediction coding analysis window is associated with at least a portion of the discrete audio values of the current frame and with discrete audio values of a predetermined portion of the future frame, which are part (208) of the predictive coding preview,
moreover, the part (206) of the forward lookup of the coding with conversion and the part (208) of the forward lookup of the coding with prediction are identical to each other or differ from each other by less than 20% of the part (208) of the forward lookup of the coding with prediction or less than 20% of the part ( 206) look-ahead coding conversion; and
generating (104) transform encoded data for the current frame using the window-processed data for prediction analysis, or to generate transform encoded data for the current frame using the window-processed data for transform .
декодер (180) параметров предсказания для выполнения декодирования данных для кадра, кодированного с предсказанием, из закодированного аудиосигнала, при этом кадр, кодированный с предсказанием, является кодированным с предсказанием будущего кадра;
декодер (183) параметров преобразования для выполнения декодирования данных для кадра, кодированного с преобразованием «время-частота», из закодированного аудиосигнала,
причем декодер (183) параметров преобразования сконфигурирован выполнять спектрально-временное преобразование и применять окно синтеза к преобразованным данным для получения данных для текущего кадра и будущего кадра, причем окно синтеза имеет первую перекрывающуюся часть, смежную вторую неперекрывающуюся часть и смежную третью перекрывающуюся часть (206), причем третья перекрывающаяся часть связана с дискретными значениями аудиосигнала для будущего кадра, и неперекрывающаяся часть (208) связана с данными текущего кадра; и
добавляющий перекрытие блок (184) для перекрытия и добавления обработанных с помощью окна синтеза дискретных значений, связанных с третьей перекрывающейся частью окна синтеза для текущего кадра, и обработанных с помощью окна синтеза дискретных значений, связанных с первой перекрывающейся частью окна синтеза для будущего кадра, для получения первой части дискретных значений аудиосигнала для будущего кадра, причем оставшиеся дискретные значения аудиосигнала для будущего кадра являются обработанными с помощью окна синтеза дискретными значениями, связанными со второй неперекрывающейся частью окна синтеза для будущего кадра, полученными без добавления перекрытия, когда текущий кадр и будущий кадр содержат данные, кодированные с преобразованием.16. An audio decoder for decoding an encoded audio signal, comprising:
a prediction parameter decoder (180) for decoding data for a prediction encoded frame from the encoded audio signal, wherein the prediction encoded frame is a prediction encoded frame;
a transform parameter decoder (183) for decoding data for a frame encoded with a time-frequency transform from the encoded audio signal,
moreover, the transform parameter decoder (183) is configured to perform spectral-temporal conversion and apply the synthesis window to the converted data to obtain data for the current frame and the future frame, the synthesis window having a first overlapping part, an adjacent second non-overlapping part and an adjacent third overlapping part (206) moreover, the third overlapping part is associated with discrete values of the audio signal for the future frame, and the non-overlapping part (208) is associated with the data of the current frame; and
block adding (184) for overlapping and adding discrete values processed using the synthesis window associated with the third overlapping part of the synthesis window for the current frame and processed with the synthesis window discrete values associated with the first overlapping part of the synthesis window for the future frame, receive the first part of the discrete values of the audio signal for the future frame, and the remaining discrete values of the audio signal for the future frame are processed using the synthesis window discrete values values associated with the second non-overlapping part of the synthesis window for the future frame, obtained without adding overlap, when the current frame and the future frame contain data encoded with the conversion.
в котором декодер (183) параметров преобразования сконфигурирован использовать окно перехода, отличающееся от окна синтеза, в котором окно (220, 222) перехода содержит первую неперекрывающуюся часть (220) в начале будущего кадра и перекрывающуюся часть (222), начинающуюся в конце будущего кадра и простирающуюся в кадр, следующий после будущего кадра во времени, и
в котором дискретные значения аудиосигнала для будущего кадра генерируются без перекрытия, и аудиоданные, связанные со второй перекрывающейся частью (222) окна для будущего кадра, вычисляются добавляющим перекрытие блоком (184) с использованием первой перекрывающейся части окна синтеза для кадра, следующего после будущего кадра.18. The audio decoder according to claim 16, in which the current frame contains predictive encoding data, and the future frame contains transform encoding data,
in which the transform parameter decoder (183) is configured to use a transition window different from the synthesis window, in which the transition window (220, 222) contains the first non-overlapping part (220) at the beginning of the future frame and the overlapping part (222) starting at the end of the future frame and extending into the frame following the future frame in time, and
in which discrete values of the audio signal for the future frame are generated without overlapping, and the audio data associated with the second overlapping window portion (222) for the future frame is calculated by adding overlapping block (184) using the first overlapping portion of the synthesis window for the frame following the future frame.
в котором вычислитель (183) параметров преобразования содержит:
блок (183b) спектрального взвешивания для взвешивания декодированных с преобразованием спектральных данных для текущего кадра, используя данные кодирования с предсказанием; и
вычислитель (183с) данных взвешивания кодирования с предсказанием для вычисления данных кодирования с предсказанием путем объединения взвешенной суммы данных кодирования с предсказанием, полученных из прошлого кадра, и данных кодирования с предсказанием, полученных из текущего кадра, для получения интерполированных данных кодирования с предсказанием.19. The audio decoder according to claim 16,
in which the transmitter (183) of the conversion parameters contains:
a spectral weighting unit (183b) for weighting the transform-decoded spectral data for the current frame using predictive encoding data; and
a predictive encoding weighting data calculator (183c) for calculating predictive encoding data by combining a weighted sum of the predicted encoding data obtained from the previous frame and predictive encoding data obtained from the current frame to obtain interpolated predictive encoding data.
в котором вычислитель (183с) данных взвешивания кодирования с предсказанием сконфигурирован с возможностью преобразовывать данные кодирования с предсказанием в спектральное представление, имеющее весовые значения для каждого диапазона частот, и
причем блок (183b) спектрального взвешивания сконфигурирован с возможностью взвешивать все спектральные значения в полосе частот посредством идентичного весового значения для этой полосы частот.20. The audio decoder according to claim 19,
in which the predictive encoding weighting data calculator (183c) is configured to convert the predictive encoding data into a spectral representation having weight values for each frequency range, and
wherein the spectral weighting unit (183b) is configured to weight all spectral values in a frequency band by means of an identical weight value for that frequency band.
в котором окно синтеза имеет продолжительность 30 мс без заполненных нулями частей, первая и третья перекрывающиеся части имеют длительность 10 мс каждая, а неперекрывающаяся часть имеет длительность 10 мс.22. The audio decoder according to claim 16,
in which the synthesis window has a duration of 30 ms without parts filled with zeros, the first and third overlapping parts have a duration of 10 ms each, and the non-overlapping part has a duration of 10 ms.
в котором декодер (183) параметров преобразования сконфигурирован с возможностью применять для спектрально-временного преобразования преобразование (183d) DCT, имеющее число дискретных значений, соответствующих длине кадра, и операцию (183е) обратной свертки для генерации числа временных значений, в два раза превышающего число временных значений до DCT, и
применять (183е) окно синтеза к результату операции обратной свертки, причем окно синтеза содержит перед первой перекрывающейся частью и после третьей перекрывающейся части нулевые части, имеющие длину, равную половине длины первой и третьей перекрывающихся частей.23. The audio decoder according to claim 16,
wherein the transform parameter decoder (183) is configured to apply a DCT transform (183d) having a number of discrete values corresponding to a frame length for a spectral-temporal transform, and a reverse convolution operation (183e) to generate a number of time values twice the number time values to DCT, and
apply (183e) the synthesis window to the result of the reverse convolution operation, and the synthesis window contains zero parts having a length equal to half the length of the first and third overlapping parts before the first overlapping part and after the third overlapping part.
выполнение (180) декодирования данных для кадра, кодированного с предсказанием, из закодированного аудиосигнала, причем кадр, кодированный с предсказанием, является кодированным с предсказанием будущего кадра;
выполнение (183) декодирования данных для кадра, кодированного с преобразованием «время-частота», из закодированного аудиосигнала,
причем этап выполнения (183) декодирования данных для кадра, кодированного с преобразованием, содержит выполнение спектрально-временного преобразования и применение окна синтеза к преобразованным данным для получения данных для текущего кадра и будущего кадра, причем окно синтеза имеет первую перекрывающуюся часть, смежную вторую неперекрывающуюся часть и смежную третью перекрывающуюся часть (206), при этом третья перекрывающаяся часть связана с дискретными значениями аудиосигнала для будущего кадра, и неперекрывающаяся часть (208) связана с данными текущего кадра; и
перекрытие и добавление (184) обработанных с помощью окна синтеза дискретных значений, связанных с третьей перекрывающейся частью окна синтеза для текущего кадра, и обработанных с помощью окна синтеза дискретных значений, связанных с первой перекрывающейся частью окна синтеза для будущего кадра, для получения первой части дискретных значений аудиосигнала для будущего кадра, причем оставшиеся дискретные значения аудиосигнала для будущего кадра являются обработанными с помощью окна синтеза дискретными значениями, связанными со второй неперекрывающейся частью окна синтеза для будущего кадра, полученными без добавления перекрытия, когда текущий кадр и будущий кадр содержат данные, кодированные с преобразованием.24. A method for decoding an encoded audio signal, comprising:
performing (180) decoding the data for the prediction encoded frame from the encoded audio signal, wherein the prediction encoded frame is a prediction encoded future frame;
performing (183) decoding data for a frame encoded with a time-frequency transformation from the encoded audio signal,
moreover, the step of executing (183) decoding the data for the frame encoded with the conversion comprises performing a spectral-time conversion and applying the synthesis window to the converted data to obtain data for the current frame and the future frame, the synthesis window having a first overlapping part, an adjacent second non-overlapping part and an adjacent third overlapping part (206), while the third overlapping part is associated with discrete values of the audio signal for the future frame, and the non-overlapping part (208) is connected and a current frame data; and
overlapping and adding (184) the discrete values processed by the synthesis window associated with the third overlapping part of the synthesis window for the current frame and the processed by the synthesis window discrete values associated with the first overlapping part of the synthesis window for the future frame to obtain the first part of the discrete values of the audio signal for the future frame, and the remaining discrete values of the audio signal for the future frame are processed using the synthesis window, discrete values associated with the second the overlapping part of the synthesis window to the future frame, obtained without the addition of overlap, when the current frame and the next frame contains data encoded with the conversion.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161442632P | 2011-02-14 | 2011-02-14 | |
US61/442,632 | 2011-02-14 | ||
PCT/EP2012/052450 WO2012110473A1 (en) | 2011-02-14 | 2012-02-14 | Apparatus and method for encoding and decoding an audio signal using an aligned look-ahead portion |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2013141919A RU2013141919A (en) | 2015-03-27 |
RU2574849C2 true RU2574849C2 (en) | 2016-02-10 |
Family
ID=
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2911228A1 (en) * | 2007-01-05 | 2008-07-11 | France Telecom | TRANSFORMED CODING USING WINDOW WEATHER WINDOWS. |
DE102008015702A1 (en) * | 2008-01-31 | 2009-08-06 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for bandwidth expansion of an audio signal |
WO2009121499A1 (en) * | 2008-04-04 | 2009-10-08 | Frauenhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio transform coding using pitch correction |
EP2109098A2 (en) * | 2006-10-25 | 2009-10-14 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for generating audio subband values and apparatus and method for generating time-domain audio samples |
EP2144230A1 (en) * | 2008-07-11 | 2010-01-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Low bitrate audio encoding/decoding scheme having cascaded switches |
WO2010003563A1 (en) * | 2008-07-11 | 2010-01-14 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoder and decoder for encoding and decoding audio samples |
RU2008126699A (en) * | 2006-01-09 | 2010-02-20 | Нокиа Корпорейшн (Fi) | DECODING BINAURAL AUDIO SIGNALS |
WO2010040522A2 (en) * | 2008-10-08 | 2010-04-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V. | Multi-resolution switched audio encoding/decoding scheme |
WO2010081892A2 (en) * | 2009-01-16 | 2010-07-22 | Dolby Sweden Ab | Cross product enhanced harmonic transposition |
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2008126699A (en) * | 2006-01-09 | 2010-02-20 | Нокиа Корпорейшн (Fi) | DECODING BINAURAL AUDIO SIGNALS |
EP2109098A2 (en) * | 2006-10-25 | 2009-10-14 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for generating audio subband values and apparatus and method for generating time-domain audio samples |
FR2911228A1 (en) * | 2007-01-05 | 2008-07-11 | France Telecom | TRANSFORMED CODING USING WINDOW WEATHER WINDOWS. |
DE102008015702A1 (en) * | 2008-01-31 | 2009-08-06 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for bandwidth expansion of an audio signal |
WO2009121499A1 (en) * | 2008-04-04 | 2009-10-08 | Frauenhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio transform coding using pitch correction |
EP2144230A1 (en) * | 2008-07-11 | 2010-01-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Low bitrate audio encoding/decoding scheme having cascaded switches |
WO2010003563A1 (en) * | 2008-07-11 | 2010-01-14 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoder and decoder for encoding and decoding audio samples |
WO2010040522A2 (en) * | 2008-10-08 | 2010-04-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V. | Multi-resolution switched audio encoding/decoding scheme |
WO2010081892A2 (en) * | 2009-01-16 | 2010-07-22 | Dolby Sweden Ab | Cross product enhanced harmonic transposition |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10249310B2 (en) | Audio decoder and method for providing a decoded audio information using an error concealment modifying a time domain excitation signal | |
US10381012B2 (en) | Audio decoder and method for providing a decoded audio information using an error concealment based on a time domain excitation signal | |
EP2676265B1 (en) | Apparatus and method for encoding an audio signal using an aligned look-ahead portion | |
MX2011000366A (en) | Audio encoder and decoder for encoding and decoding audio samples. | |
RU2574849C2 (en) | Apparatus and method for encoding and decoding audio signal using aligned look-ahead portion | |
ES2963367T3 (en) | Apparatus and method of decoding an audio signal using an aligned lookahead part |