СПОСОБ СОЗДАНИЯ ПРЕДСТАВЛЕНИЯ РЕЗУЛЬТАТА ВЫЧИСЛЕНИЯ, ЛИНЕЙНО ЗАВИСИМОГО ОТ КВАДРАТА ЗНАЧЕНИЯ
METHOD OF CREATING PRESENTATION OF CALCULATION RESULT, LINEARLY VARYING WITH SQUARE VALUE

Настоящее изобретение относится к созданию представления результата вычисления, линейно зависимого от квадрата значения, например от суммы квадратов группы значений, что требуется, например, в некоторых устройствах кодирования звука, в которых согласно психоакустической модели частотные линии объединяют, формируя частотные группы для выполнения дополнительного кодирования посредством значений энергии сигнала в частотных группах.
В современных способах кодирования звука на основе набора фильтров, например, согласно стандарту MPEG уровня 3 (MPEG Layer-3) или стандарту MPEG AAC (стандарту усовершенствованного кодирования звука в формате MPEG) в устройстве кодирования используют психоакустическую модель. В этой психоакустической модели общий спектр звукового сигнала, преобразованного в частотную область, разделяют на отдельные частотные группы переменной ширины и/или с переменным количеством частотных линий в каждой частотной группе. Для вычисления психоакустических пороговых значений слышимости в том случае, когда принято решение, что следует использовать стереофоническое кодирование для центрального/боковых каналов и для оценки и/или вычисления коэффициентов масштабирования в модуле дискретизации устройства кодирования звука, в психоакустической модели вычисляют значения энергии сигнала для частей звукового сигнала в отдельных частотных группах. Это выполняют путем возведения в квадрат каждой отдельной частотной линии, в результате чего получают значения энергии линии, и последующего суммирования значений энергии всех линий в частотной группе для формирования энергии в полосе частотной группы, в которой, например, в случае стандарта MPEG AAC могут находиться приблизительно от 40 до 60 линий на каждый звуковой канал.
Ниже следует рассмотреть особую область применения при реализации такого способа в процессоре с фиксированной запятой.
В представлении с фиксированной запятой частотные линии представлены посредством слова с разрядностью, например, 24 бита или 32 бита. Разрядность слова, равная всего лишь 16 битам, является недостаточной. Используют глобальный коэффициент масштабирования или коэффициент сдвига, который применим ко всем частотным линиям звукового канала, а также ко всем частотным линиям всех звуковых каналов, обрабатываемых в устройстве кодирования, и который определяет то, на сколько позиций каждое значение частотной линии должно быть сдвинуто влево или вправо для того, чтобы снова могло быть получено первоначальное масштабирование, что именуют поблочным представлением с плавающей запятой. Это означает, что все частотные линии, по меньшей мере, одного звукового канала выводят одинаковым образом и/или что они находятся на одинаковом уровне масштабирования. С учетом, как правило, высокой динамики отдельных амплитуд частотных линий это обеспечивает представление некоторых из частотных линий с относительно высокой точностью, например, посредством 22 значащих битов в слове разрядностью 24 бита или посредством 30 значащих битов в слове разрядностью 32 бита, тогда как другие частотные линии представлены посредством всего лишь нескольких значащих битов и, следовательно, являются весьма неточными.
При реализации вышеупомянутого способа кодирования звука, основанном на наборе фильтров, в процессоре с фиксированной запятой возникают проблемы, описание которых приведено ниже.
Во-первых, проблемы связаны с представлением самих значений энергии сигнала. Посредством возведения в квадрат значения энергии сигнала, то есть просуммированные квадраты частотных линий, получили вдвое более высокую динамику, чем динамика частотных линий, в том случае, если необходимо сохранять общую точность.
В действительности существуют различные возможные варианты представления значений энергии сигнала. Одним возможным вариантом является представление значений энергии сигнала посредством типа данных, имеющих вдвое более высокую разрядность слова, чем в том типе данных, который используют для представления частотных линий, например посредством типа данных с разрядностью 48 бит или 64 бита. Например, предположим, что частотная линия с 22 значащими битами представлена 24-разрядным типом данных. На основании суммирования энергия сигнала имела бы вместе с другими частотными линиями, по меньшей мере, 44 значащих бита и была бы представлена 48-разрядным типом данных. Однако эта процедура является нецелесообразной, по меньшей мере, для 64-разрядных значений энергии, то есть в тех случаях, когда частотные линии представлены 32-разрядным типом данных, так как большинство обычных процессоров с фиксированной запятой либо вообще не поддерживают 64-разрядный тип данных, либо операции доступа к памяти и вычисления с использованием 64-разрядного типа данных является чрезвычайно медленными по сравнению, например, с 32-разрядными операциями доступа и вычисления. Кроме того, в случае 64-разрядных данных потребляемый объем памяти является значительно более высоким.
Другим возможным вариантом представления значений энергии сигнала является их представление типом данных с плавающей запятой посредством мантиссы и экспоненты. И вновь предположим, что имеет место вышеупомянутый приведенный в качестве примера случай, в котором частотная линия с 22 значащими битами представлена 24-разрядным типом данных. В этом случае энергия сигнала соответствующей группы была бы представлена посредством стандартизованного или специализированного типа данных с плавающей запятой с 16-разрядной мантиссой, содержащего знаковый разряд и 8-разрядную экспоненту. Здесь несущественно, рассматривается ли стандартизованный тип данных с плавающей запятой, например IEEE-P754, или специализированный тип данных с плавающей запятой с произвольно выбранной разрядностью мантиссы и экспоненты. В процессоре с фиксированной запятой без вычислительного устройства с плавающей запятой при вычислениях с типами данных с плавающей запятой всегда должна производиться их эмуляция посредством нескольких вычислительных операций, и, следовательно, они будут чрезвычайно медленными, поэтому эта процедура является нецелесообразной.
Еще одной проблемой при реализации вышеупомянутого способа кодирования звука на основе набора фильтров в процессоре с фиксированной запятой является повторная обработка значений энергии сигнала в ходе выполнения способа кодирования. Значения энергии сигнала и полученные из них пороговые значения слышимости используют в последующей подпрограмме устройства кодирования звука во множестве различных мест алгоритма, например, для вычисления отношений, например, между энергией сигнала и пороговым значением слышимости, или результатов деления этих величин. Требуемую операцию деления сложно выполнить в процессоре с фиксированной запятой.
Одним из возможных вариантов выполнения операции деления в процессоре с фиксированной запятой является использование команд одноразрядного деления, которые реализованы в некоторых процессорах с фиксированной запятой и обеспечивают дополнительный бит точности в результате деления при каждом вызове команды. Следовательно, для операции деления с точностью, например, 48 битов для каждой одной операции деления двух значений энергии сигнала или энергии сигнала и порогового значения слышимости потребовалось бы 48 отдельных команд деления. Это является нецелесообразным и очень неэффективным вследствие высоких затрат времени на вычисления.
Другим возможным вариантом реализации операции деления в процессоре с фиксированной запятой является использование таблиц, возможно связанных с последующими шагами итерации для увеличения точности результатов деления. Однако эта процедура часто является непригодной по требуемой точности результата деления, или должна использоваться очень большая таблица, или для последующих шагов итерации, в свою очередь, потребуется большое время вычислений.
Оба упомянутых способа могут быть использованы в процессоре с фиксированной запятой применительно к типам данных с фиксированной запятой или к типам данных с плавающей запятой, эмулированных посредством программного обеспечения, которое, однако, ни в одном из этих случаев не обеспечивает достаточно эффективное использование по времени вычислений и по потреблению объема памяти с одновременным обеспечением точности результата.
Вышеупомянутые проблемы не возникали бы в случае использования универсального процессора, УП (GPP). Однако для многих областей применения использование процессоров, имеющих более высокую производительность, чем процессоры с фиксированной запятой без вычислительного устройства с плавающей запятой, автоматически исключено вследствие высокой цены и наличия большого количества элементов. Примерами таких областей применения являются мобильные телефоны и персональные информационные устройства (PDA).
В патенте США 6,754,618 B1 предложено решение проблемы вычисления отношения сигнал/маска (SMR), то есть вычисления отношения между энергией сигнала и пороговым значением слышимости, и это выполняют на фоне использования микросхем цифровой обработки сигналов, ЦОС (DSP), с фиксированной запятой. Согласно предложенной в нем процедуре сначала выполняют обычные операции обработки методом окна и последующего преобразования Фурье для разложения звукового сигнала на его спектральные компоненты, после чего вычисляют энергию каждого входного сигнала и/или сигнала частотной линии, то есть энергию линии, из вещественной и мнимой частей значения соответствующей частотной линии. Не вдаваясь более подробно в процесс создания значений энергии сигнала для групп частотных линий, способ также может быть продолжен на основании значений энергии сигнала в этих группах. Содержание этого документа представляет собой попытку устранения проблемы, состоящей в том, что входные данные, то есть значения энергии, в большинстве случаев имеют слишком большой динамический диапазон, поскольку большинство микросхем ЦОС с фиксированной запятой содержат разрядность данных всего лишь от 16 до 24 бит, тогда как стандарт MPEG требует разрядности данных, равной 34 битам, то есть наличия динамического диапазона, равного 101 дБ (децибел). Следовательно, сначала значения энергии должны быть подвергнуты масштабированию. В частности, предложено отступить от прежней процедуры и использовать два различных значения масштабирования. В более точном изложении, согласно этому документу, энергию сравнивают с пороговым значением и выполняют ее масштабирование соответственно путем увеличения или уменьшения масштаба, для того, чтобы при переходе в логарифмическую область для представления результата логарифмирования было достаточно 16 бит и чтобы вычисление отношения сигнал/маска (SMR) в логарифмической области могло быть выполнено посредством 16 бит. В зависимости от того, выполняют ли масштабирование с увеличением или с уменьшением масштаба, используют различные таблицы для пороговых значений. Для логарифмирования используют десятичный логарифм, умноженный на 10, поэтому результат получают в единицах децибел (дБ). Если результат логарифмирования значений энергии линии, масштабированных путем увеличения масштаба, равен нулю, то отношение сигнал/маска (SMR) вычисляют путем логарифмирования энергии линии, масштабированной путем увеличения масштаба, за вычетом логарифма энергии порогового значения, умноженного на 10. В иных случаях результаты для энергии линии, масштабированной путем увеличения масштаба, и для энергии линии, масштабированной путем уменьшения масштаба, объединяют друг с другом.
В процедуре, предложенной в патенте США 6,754,618 B1, избегают некоторых из вышеупомянутых проблем, связанных с повторной обработкой значений энергии сигнала, предлагая вычислять отношение сигнал/маска (SMR) в логарифмической области. Это устраняет необходимость сложных вычислений при операции деления. Однако эта процедура имеет недостаток, состоящий в том, что логарифмирование по-прежнему является сложным, так как выделение диапазона значений для 16-разрядного представления с фиксированной запятой, пригодного для 16-разрядных процессоров ЦОС с фиксированной запятой, происходит только после вычисления логарифма, в то время как логарифмирование, по существу, по-прежнему выполняют для имеющихся значений энергии с высокой динамикой, что приводит к необходимости выполнения фактически двух операций логарифмирования для каждого значения энергии.
Следовательно, желательно также упростить переход в логарифмическую область таким образом, чтобы в ней не происходила потеря динамики.
Патент США 5,608,663 относится к быстрому выполнению параллельного умножения чисел с плавающей запятой путем преобразования в логарифмический формат с фиксированной запятой, суммирования в логарифмической области и последующего обратного преобразования.
Патент США 5,197,024 относится, в основном, к вычислению экспоненты/логарифма и к соответствующему устройству.
Патент США 6,732,071 относится к эффективному техническому решению по управлению скоростью при кодировании звука и по определению значения параметра дискретизации с использованием итерационного цикла с условием завершения, согласно которому значение параметра дискретизации сравнивают с членом, полученным из логарифма по основанию два, взятого от члена, зависящего от максимального значения частотной линии.
В патенте США 6,351,730 описано использование логарифма по основанию два для вычисления усиления при кодировании звука. Значения усиления используют для выделения битов в кодеке для звука, закодированного посредством модифицированного дискретного косинусного преобразования (MDCT).
В патенте США 5,764,698 описано использование натурального логарифма для представления значений энергии звукового сигнала. Более подробное описание перехода в логарифмическую область не приведено.
Задачей настоящего изобретения является создание способа и устройства для создания представления результата, линейно зависимого от квадрата значения, для облегчения вычислений или для того, чтобы они могли быть выполнены с меньшими затратами на аппаратные средства.
Эта задача достигнута посредством устройства по пункту 1 формулы изобретения и способа по пункту 18 формулы изобретения.
Предложенное в настоящем изобретении устройство для создания представления результата вычислений, линейно зависимого от квадрата значения, причем результат вычислений представлен в виде x-разрядного представления без логарифмирования, содержит:
средство обработки, предназначенное для выполнения обработки x-разрядного представления значения без логарифмирования для получения результата вычислений, линейно зависимого от значения, при этом средство обработки выполнено таким образом, что использует эффективный коэффициент масштабирования, вследствие чего результат вычислений является масштабированным в зависимости от эффективного коэффициента масштабирования;
средство логарифмирования, предназначенное для применения логарифмической функции к y-разрядному представлению результата вычислений, который не логарифмирован и который получен либо непосредственно, либо косвенно из результата обработки, выполненной средством обработки, например путем подбора позиций битов, для получения масштабированного представления с логарифмированием результата вычислений и/или представления с логарифмированием масштабированного результата вычислений, где значение y является меньшим, чем значение x, умноженное на 2;
средство изменения масштаба, предназначенное для добавления значения поправки к соответствующим образом масштабированному логарифмическому представлению, которое соответствует логарифмической функции, например масштабированному логарифму, примененной к эффективному коэффициенту масштабирования, или для вычитания значения поправки из него для получения представления с логарифмированным результатом вычислений, который теперь больше не является масштабированным.
В настоящем изобретении сделано заключение о том, что при переходе в логарифмическую область отсутствует необходимость в учете всей разрядности результата, линейно зависимого от квадрата значения. Наоборот, возможно масштабировать результат значения посредством x разрядов таким образом, что представление результата посредством менее чем x разрядов, является достаточным для получения на его основании логарифмического представления. Влияние коэффициента масштабирования на результирующее логарифмическое представление может быть нейтрализовано путем добавления или вычитания значения поправки, полученной путем применения логарифмической функции к коэффициенту масштабирования, соответственно к масштабированному логарифмическому представлению или из него, без каких-либо потерь динамики.
Следовательно, одно из преимуществ настоящего изобретения состоит в том, что согласно настоящему изобретению множество результатов может быть преобразовано в логарифмическое представление таким образом, что после этого степень масштабирования будет одинаковой для всех этих результатов, при этом динамика, по существу, сохраняется.
Согласно одному из вариантов осуществления настоящего изобретения обработка x-разрядного представления значения состоит в создании суммы квадратов для группы значений для получения результата вычислений, линейно зависимого от упомянутого значения. Однако вместо применения эффективного коэффициента масштабирования только после вычисления суммы квадратов, x-разрядные представления масштабируют заранее посредством общего коэффициента масштабирования. Общий коэффициент масштабирования определяют из количества значений и/или посредством наибольшего количества значащих позиций среди x-разрядных представлений значений. Эта процедура позволяет постоянно оставаться в формате x-разрядного представления, начиная с исходной ситуации, при которой значения имеют x-разрядные представления. Это в равной степени применимо к квадратам отдельных значений и к сумме отдельных квадратов. Общий коэффициент масштабирования здесь определен таким образом, что сумма квадратов не подвергается переполнению в результате суммирования. Согласно этому варианту осуществления изобретения логарифмическую функцию применяют к части x-разрядного представления без логарифмирования суммы квадратов. В этом варианте осуществления изобретения также сохранено преимущество, состоящее в том, что процедура может быть использована для нескольких групп значений, вследствие чего, с одной стороны, масштабирование значений отдельных групп производят посредством различного общего коэффициента масштабирования, а с другой стороны, последующая степень масштабирования является одинаковой для логарифмического представления всех сумм квадратов.
Согласно другому предпочтительному варианту осуществления настоящего изобретения в качестве логарифмической функции используют логарифм по основанию два вместе с коэффициентом, который является меньшим или равным 1/y. Таким образом, имеется возможность выполнения преобразования между y-разрядным представлением результата вычислений и масштабированным представлением с логарифмированным результатом вычислений таким способом, который оптимально использует диапазоны значений обоих представлений.
Согласно еще одному варианту осуществления настоящего изобретения для кодирования звука значения спектральных линий группы подвергают операции создания сумм квадратов вышеупомянутым способом по группам, то есть путем масштабирования значений спектральных линий перед вычислением сумм квадратов, при этом значения частотных линий представлены в x-разрядном формате данных с фиксированной запятой без логарифмирования, путем суммирования результирующих одиночных квадратов, которые также должны быть представлены только в x-разрядном формате данных с фиксированной запятой, путем применения логарифмической функции, содержащей операцию логарифмирования посредством логарифма по основанию два и операцию масштабирования суммы квадратов с коэффициентом, меньшим или равным 1/x, и путем добавления или вычитания значения поправки, полученной из общего коэффициента масштабирования посредством логарифмической функции, соответственно к x-разрядному представлению результата логарифмирования с фиксированной запятой или из него. Таким образом, сохраняют одинаковую степень масштабирования значений энергии сигнала для всех спектральных групп, не уменьшая динамику. Кроме того, каждая из операций вычисления может быть выполнена посредством вычислительного устройства, выполненного таким образом, что оно способно производить обработку только лишь x-разрядных чисел с фиксированной запятой. Следовательно, этот вариант осуществления изобретения имеет преимущество, состоящее в том, что имеется возможность реализации устройства кодирования звука в 16-разрядном или 24-разрядном устройстве цифровой обработки сигналов (ЦОС) с фиксированной запятой без необходимости сложного программирования с высокими затратами времени на вычисления.
Ниже приведено более подробное описание предпочтительных вариантов осуществления настоящего изобретения со ссылкой на сопроводительные чертежи, на которых изображено следующее:
на Фиг. 1 изображена схема, на которой проиллюстрирована структура 32-разрядного формата данных с фиксированной запятой;
на Фиг. 2А и 2Б изображена схема возведения в квадрат 32-разрядного значения данных с фиксированной запятой для иллюстрации влияния слишком малых значений на 64-разрядный результат с фиксированной запятой;
на Фиг. 3 изображен график логарифмической функции согласно одному из вариантов осуществления настоящего изобретения;
на Фиг. 4 изображена блок-схема устройства, предназначенного для создания суммы квадратов согласно варианту осуществления настоящего изобретения;
на Фиг. 5 изображена блок-схема возможного варианта реализации устройства из Фиг. 4;
на Фиг. 6 изображена схема последовательности операций, на которой проиллюстрировано функционирование устройства из Фиг. 5;
на Фиг. 7 изображена блок-схема, на которой проиллюстрировано устройство кодирования звука согласно варианту осуществления настоящего изобретения.
Ниже приведено описание настоящего изобретения со ссылкой на чертежи и часто применительно к обработке звуковых сигналов и, в частности, к кодированию звуковых сигналов. После описания чертежей приведено более подробное объяснение того, что настоящее изобретение не ограничено этой областью применения, а эта конкретная область применения служит, в основном, для облегчения понимания.
Перед приведенным ниже более подробным объяснением вариантов осуществления настоящего изобретения представлено введение к описанию этих вариантов осуществления изобретения со ссылкой на Фиг. 1 - 3, которое представляет собой некоторый краткий обзор и обеспечивает лучшее понимание преимуществ описанных ниже вариантов осуществления изобретения.
На Фиг. 2 показана структура возможного 32-разрядного формата данных с фиксированной запятой, который является приведенной в качестве примера основой для описанных ниже вариантов осуществления изобретения. Представленный 32-разрядный формат данных также может быть легко применен для других значений разрядности. На чертеже видно, что значение, хранящееся в 32-разрядном формате данных с фиксированной запятой, содержит 32 бита. Следовательно, для хранения этого значения в 32-разрядном формате данных с фиксированной запятой достаточно наличия 32-разрядного регистра. На Фиг. 1 такой регистр обозначен номером 10. Позиции 32 битов обозначены отдельными квадратами, которые пронумерованы как
0
31
30
0
30
X... X по порядку от младшего значащего разряда, МЗР (LSB), до старшего значащего разряда, СЗР (MSB). Под позициями отдельных битов указано, что означают позиции отдельных битов согласно 32-разрядному формату данных с фиксированной запятой. Из чертежа видно, что старший значащий разряд обозначает знак значения, то есть, "+" или "-". Остальные биты X - X выражают величину значения. Согласно данному варианту осуществления изобретения, показанному на Фиг. 1, эти биты представляют правильное дробное число, то есть формат 10 данных является форматом данных в виде дробного числа с фиксированной запятой, в котором, по определению, точка или запятая расположена в крайнем левом положении, то есть слева перед битом X. Следовательно, значение в регистре 10 может быть выражено следующим образом:
Можно легко заметить, что представляемый диапазон значений формата данных в виде дробных чисел с фиксированной запятой находится в пределах от приблизительно -1, исключая само это значение, до 1, исключая само это значение.
Как было рассмотрено в разделе "введение" описания настоящего изобретения, значения энергии сигнала получают, например, путем возведения значений частотных линий в квадрат и суммирования всех возведенных в квадрат значений частотных линий, то есть значений энергии линий, в частотной группе. В примере кодирования звука согласно стандарту MPEG уровня 3 (MPEG Layer-3) или стандарту MPEG AAC количество линий, содержащихся в частотной группе, колеблется в пределах от 4 до 96.
В разделе "введение" описания настоящей заявки на изобретение также было рассмотрено, что имеется возможность представления значений частотных линий в формате данных с фиксированной запятой с использованием глобального коэффициента масштабирования, применимого ко всем частотным линиям звукового канала и даже ко всем частотным линиям всех звуковых каналов, обрабатываемых в устройстве кодирования, и определяющего то, на какое количество позиций каждое значение частотной линии должно быть сдвинуто на стороне устройства декодирования влево или вправо для того, чтобы могло быть повторно получено первоначальное масштабирование. Для того чтобы подвергнуть такие 32-разрядные значения данных с фиксированной запятой в процессоре с фиксированной запятой с 32-разрядным словом данных операции суммирования квадратов для вычисления значений энергии звукового сигнала, для обеспечения эффективной реализации вычисления значений энергии звукового сигнала из частотных линий должны быть удовлетворены следующие основные требования:
- Частотные линии должны быть представлены посредством 32-разрядного слова. 16 разрядов не достаточно.
- Значения энергии звукового сигнала также должны быть представлены в формате данных с фиксированной запятой, а не в формате данных с плавающей запятой.
- Значения энергии звукового сигнала должны быть представлены типом данных с разрядностью слова, не превышающей 32 бита. Это приводит к тому, что значения энергии звукового сигнала также представлены 32-разрядным словом.
Конкретные варианты осуществления настоящего изобретения, описание которых приведено ниже, удовлетворяют всем этим основным требованиям, хотя следует отметить следующее: если удовлетворены не все эти основные требования, то может быть получен менее эффективный вариант реализации. Например, как описано ниже, не является абсолютно необходимым, чтобы значения энергии звукового сигнала были ограничены по разрядности их слова 32 битами. 32-разрядным представлением с фиксированной запятой должна быть ограничена только лишь повторная обработка значений энергии звукового сигнала.
Из наличия вышеупомянутых требований возникает следующая проблема при вычислении значений энергии звукового сигнала. Возведение в квадрат 32-разрядных значений частотных линий сначала приводит к получению значений энергии линии с разрядностью слова 64 бита, однако при этом в описанных ниже вариантах осуществления изобретения 32 бита, которыми являются 32 младших бита, при дальнейшей обработке отбрасывают, и арифметические операции с дробными числами продолжают только лишь с 32 старшими битами.
Для иллюстрации этого приведена ссылка на Фиг. 2А и 2Б. На этих чертежах показаны два входных регистра 12a и 12b умножителя, используемого в качестве устройства возведения в квадрат путем записи одинаковых значений во входные регистры 12a и 12b для сомножителей. Оба регистра 12a и 12b являются 32-разрядными регистрами. Кроме того, на Фиг. 2А и 2Б показан 64-разрядный выходной регистр 14, состоящий из старшей части 14a и младшей части 14b.
Умножитель, который не представлен на Фиг. 2А и 2Б, сконфигурирован таким образом, что считывает содержимое регистров 12a и 12b в 32-разрядном формате данных с фиксированной запятой и перемножает (что обозначено номером позиции 16) эти два значения, получая 64-разрядный результат, который выводят в выходной регистр 14 в 64-разрядном формате данных с фиксированной запятой. Таким образом, старшая часть 14a выходного регистра 14 охватывает первые двоичные позиции после запятой, количество которых равно 31, а младшая часть 14b охватывает остальные двоичные позиции.
На Фиг. 2А и 2Б показаны ситуации, когда во входные регистры 12a и 12b были записаны различные значения частотных линий, поэтому в выходном регистре 14 получены различные результаты.
В частности, на Фиг. 2А показана ситуация, когда значение частотной линии является высоким, то есть равным 0x12345678. Пока значения частотных линий выводят с высоким уровнем, то есть пока они занимают большое количество значащих битов в 32-разрядном слове данных, 32 старших бита результата, фактически являющегося 64-разрядным, в выходном регистре 14 являются достаточно точными для выражения результата и/или квадрата величины. В случае, показанном на Фиг. 2А, погрешность, возникающая при использовании только лишь старшей части 14a, а не полного результата, составляет всего лишь 0x000000003be9b080.
Фиг. 2Б показан случай, когда значение частотной линии во входных регистрах, соответственно 12a и 12b, является малым, то есть равно 0x00004321. Такие значения частотных линий также имеют место, поскольку, как уже было отмечено выше, все частотные линии по меньшей мере одного звукового канала имеют глобальный коэффициент масштабирования, и, следовательно, обычно большое количество частотных линий занимает собой всего лишь небольшое количество значащих битов в 32-разрядном слове данных, то есть они имеют малую амплитуду. Из чертежа Фиг. 2Б видно, что в случае малых значений частотных линий 32 старших бита выходного регистра 14 не выражают результат возведения в квадрат с достаточной точностью. В частности, суммирование нескольких таких значений энергии линий для формирования значения энергии сигнала даст поэтому неправильный результат, например равный нулю, что при последующем кодирования звука приведет к ухудшенному качеству звучания. В примере, показанном на Фиг. 2Б, старшая часть выходного регистра будет указывать, например, результат, равный нулю, в то время как фактическое значение результата равно 0x0000000023349482.
С учетом примеров, показанных на Фиг. 2А и 2Б, по-видимому, при последующих операциях обработки значений энергии сигнала необходимо сначала учитывать все 64 разряда выходного регистра 14. Однако это потребовало бы многочисленных сложных операций с 64-разрядными данными, то есть операций с 64-разрядными операндами, и нарушило бы вышеупомянутые основные требования для эффективной реализации.
Однако, если в выходном регистре 14 фактически должна использоваться только лишь старшая 32-разрядная часть каждого значения энергии сигнала, то сначала усовершенствование может быть достигнуто путем сдвига всех значений частотных линий в частотной группе влево на одинаковое количество разрядов перед возведением в квадрат, посредством чего результаты, соответственно, содержат большее количество значащих битов в старшей 32-разрядной части 64-разрядного результата, или путем сдвига результата в регистре 14 результата.
2
-63
Затем старшая часть 14a каждого значения энергии сигнала может быть преобразована в логарифмическую область путем применения вычислительного устройства к соответствующей старшей части 14a значений энергии сигнала для вычисления логарифмической функции. Вычислительное устройство должно быть способным всего лишь выполнять операцию логарифмирования 32-разрядного значения данных с фиксированной запятой для получения 32-разрядного значения данных с фиксированной запятой. Логарифмической функцией, обеспечивающей преобразование значения x в значение y, может являться следующая функция: y=log(x)/64, график которой проиллюстрирован на Фиг. 3. На Фиг. 3 показан только лишь участок логарифмической функции в интервале x ∈ ]0,1[, который является единственно важным для возведенных в квадрате значений энергии сигнала в 32-разрядном формате данных с фиксированной запятой. Здесь коэффициент масштабирования, равный 1/64, обеспечивает то, что в случае представлений с фиксированной запятой наименьшее возможное значение, то есть значение энергии сигнала, равное 2 (по меньшей мере, 1 бит зарезервирован для знака), также не выходит за пределы диапазона возможных выходных значений в интервале от -1, исключая само это значение, до 1, исключая само это значение, даже в том случае, если значения энергии сигнала, логарифмированные согласно логарифмической функции из Фиг. 3, представляют собой 64-разрядные значения с фиксированной запятой.
Однако эта процедура не является достаточно хорошей, поскольку при последующих операциях обработки по кодированию звука в устройстве кодирования звука все значения энергии сигнала во что бы то ни стало должны иметь одинаковое масштабирование, и, следовательно, сдвиг влево и/или коэффициент масштабирования, увеличивающий точность, мешали бы обеспечению этой в точности одинаковой степени масштабирования.
2s
2
2
2
Эффект положительного свойства логарифмирования продемонстрирован именно в этой точке. Как указано выше, представление значений энергии линии является максимально точным посредством заданного сдвига влево, например, на s позиций битов в частотной линии и/или в амплитудной области, и/или посредством масштабирования на эффективный коэффициент 2 в области энергии сигнала при условии наличия упомянутого безопасного расстояния. Временно должно быть отмечено количество сдвигов влево, которое выполняют в этой частотной группе, то есть значение s. Если значение энергии сигнала логарифмической функции, показанной на Фиг. 3 и именуемой ниже как LD64(), которое было вычислено с такой высокой точностью, преобразовать теперь в логарифмическую область, что ниже иногда именуют форматом LD64, то оно по-прежнему будет представлено с максимально возможной точностью. Сдвиг частотных линий на 1 бит влево теперь соответствует, например, сдвигу значений энергии сигнала в линейной, нелогарифмической области, то есть после возведения в квадрат, на 2 бита влево, и это, в свою очередь, соответствует добавлению 2/64 в логарифмической области, поскольку 2/64=log(2)64=LD64(2).
Для восстановления исходного масштабирования значений энергии сигнала, представленных в формате LD64, необходимо выполнить всего лишь вычитание 2*s/64, где s соответствует ранее отмеченному сдвигу значений частотных линий группы влево. Однако это вычитание не приводит к потере точности, поскольку не происходит потери никаких значащих битов и/или их сдвига без сохранения сдвигаемых разрядов, что имело бы место при сдвиге направо в линейном диапазоне. Таким образом, значения энергии сигнала представлены в формате LD64, который, как будет объяснено ниже, в любом случае имеет преимущество для дальнейших вычислений в устройстве кодирования звука, производимых с высокой точностью и с одинаковым масштабированием для всех значений энергии сигнала.
После приведенного выше обсуждения принципов и преимуществ вариантов осуществления настоящего изобретения, ниже приведено более подробное объяснение предпочтительных вариантов осуществления настоящего изобретения со ссылкой на Фиг. 4 - 7.
Сначала на Фиг. 4 показана схема устройства, пригодного для вычисления суммы квадратов для группы из N x-разрядных значений с фиксированной запятой, которое, с одной стороны, обеспечивает сохранение динамического диапазона, а с другой - обеспечивает, что затраты на аппаратные средства не выходят за приемлемые пределы. Устройство основано на описанных выше соображениях.
1
2
N
1
N
Устройство из Фиг. 4, которое в целом обозначено номером позиции 20, содержит x-разрядные регистры 22, 22 … 22, предназначенные для хранения N x-разрядных значений с фиксированной запятой, средство 24 вычисления суммы квадратов, предназначенное для определения суммы квадратов значений, находящихся в регистрах 22-22 в нелогарифмической области, масштабированных посредством регулируемого эффективного коэффициента масштабирования, первый регистр 26 результата, предназначенный для фиксации результата, полученного средством 24 вычисления суммы квадратов, средство 28 логарифмирования, предназначенное для преобразования результата, находящегося в регистре 26 результата, в формат LD64, второй регистр 30 результата, предназначенный для фиксации результата, полученного средством 28 логарифмирования, средство 32 изменения масштаба, предназначенное для изменения масштаба и/или для обращения изменения масштаба результата, находящегося в регистре 30 результата, выходной регистр 34, предназначенный для фиксации конечного результата при его выводе средством 32 изменения масштаба, и средство 36 управления, обеспечивающее обращение масштабирования, выполненного средством 24 вычисления суммы квадратов, путем изменения масштаба в средстве 32 изменения масштаба, и, кроме того, задающее общий коэффициент масштабирования.
После приведенного выше описания отдельных компонентов устройства 20 ниже приведено описание их взаимодействия при создании сумм квадратов, при этом каждое взаимодействие обозначено соответствующими стрелками.
1
N
Как уже было упомянуто выше, значения, которые должны быть подвергнуты операции вычисления суммы квадратов, сначала находятся в регистрах 22-22 в x-разрядном формате с фиксированной запятой. Выше также было приведено объяснение того, что эти значения, которыми могут являться значения частотных линий, могут явно отличаться одно от другого по количеству их значащих битов.
1
N
1
N
Теперь средство 24 вычисления суммы квадратов получает эти значения, находящиеся в регистрах 22-22, для того чтобы подвергнуть их операции создания суммы квадратов таким образом, чтобы в конечном счете сумма квадратов значений из регистров 22-22, находящаяся в регистре 26, имела представление с фиксированной запятой, будучи масштабированной посредством эффективного коэффициента масштабирования, регулируемого, по меньшей мере, косвенно, средством 36 управления. Здесь не является абсолютно необходимым, чтобы регистр 26 результата, в который средство 24 вычисления суммы квадратов записывает результат суммы квадратов, был 2x-разрядным. Вместо этого достаточно того, что средство 24 вычисления суммы квадратов подает y-разрядное представление результата с фиксированной запятой, где в предпочтительном варианте y=x, что показано на чертеже путем обозначения части регистра 26 пунктирной линией.
Ниже будут выбраны, в частности, два возможных варианта для демонстрации того, каким образом средство 24 вычисления суммы квадратов может учитывать информацию о коэффициенте масштабирования из средства 36 управления для вывода масштабированного результата в регистр 26, и того, каким образом средство 36 управления может задавать информацию о коэффициенте масштабирования и/или эффективный коэффициент масштабирования, на который производят масштабирование результата в регистре 26 результата, чтобы не потерять какие-либо значащие биты из-за переполнения.
1
N
1
N
1
N
1
N
На основании приведенного выше описания, первый возможный вариант состоит в том, что средство 36 управления производит анализ содержимого регистров 22-22, чтобы заранее определить эффективное значение коэффициента масштабирования, для того чтобы при последующем суммировании квадратов значений, находящихся в регистрах 22-22 не могло произойти переполнения. Оно могло бы произойти в том случае, если в вычислительном блоке суммирования, обозначенном на Фиг. 4 номером позиции 38, который входит в состав средства 24 вычисления суммы квадратов, отсутствовали бы биты переполнения, или, наконец, при записи значения квадрата и/или энергии "с наличием переполнения" в ту ячейку памяти, которая наверняка не предоставляет битов переполнения, что имеет место, например, в регистре 26. Следовательно, средство 36 управления регулирует такую информацию о коэффициенте масштабирования в зависимости от количества N и от максимального количества свободных битов в регистрах 22-22 и/или от максимального значения x минус количество значащих позиций отдельных значений в регистрах 22-22, таким образом, чтобы при выводе в регистр 26 не происходило переполнения и/или чтобы результат не выходил за пределы интервала значений от -1 до 1, исключая сами эти значения.
1
N
1
N
1
N
1
N
В частности, как было упомянуто выше, средство 36 управления может регулировать эффективный коэффициент масштабирования, на который производят масштабирование результата в регистре 26 посредством общего коэффициента масштабирования, который средство 24 вычисления суммы квадратов использует в самом начале для масштабирования содержимого регистров 22-22, то есть перед операцией 40 возведения в квадрат. В частности, общий коэффициент масштабирования, объяснение которого было приведено выше, может соответствовать числу 2 в заданной степени, поэтому упреждающее масштабирование значений в регистрах 22-22 может быть реализовано посредством операции сдвига влево. В этом случае, как было объяснено выше, отсутствует необходимость в том, чтобы средство 24 вычисления суммы квадратов выполняло операцию 38 суммирования промежуточных результатов операций 40 возведения в квадрат отдельных масштабированных значений, содержащихся в регистрах, в 2x-разрядный формат данных с фиксированной запятой для вывода результата в регистр 26 результата; вместо этого средство 24 вычисления суммы квадратов требует наличия только лишь y-разрядного представления промежуточных результатов 42 … 42 возведения в квадрат с фиксированной запятой. Операция 38 суммирования по всем промежуточным результатам 42 … 42 возведения в квадрат дает конечный результат средства 24 вычисления суммы квадратов, находящийся в регистре 26.
1
N
1
N
1
N
1
N
1
N
Еще один возможный вариант для определения и учета коэффициента масштабирования состоит в том, что средство 24 вычисления суммы квадратов сначала поочередно подвергает содержимое регистров 22-22 операции 40 возведению в квадрат для получения промежуточных результатов 42-42 в 2x-разрядном формате данных с фиксированной запятой. Затем их подвергают операции 38 суммирования, выполняемой средством 24 вычисления суммы квадратов. Затем средство 36 управления производит анализ полученного 2x-разрядного результата суммирования квадратов с фиксированной запятой на количество неиспользуемых битов и/или на разность между величиной 2x и количеством значащих позиций для обеспечения выполнения соответствующей операции сдвига этого 2x-разрядного результата, представляющего собой сумму квадратов, влево на соответствующее количество битов средством 24 вычисления суммы квадратов до того, как результат будет введен этим средством в регистр 26 результата. Недостаток этой процедуры по сравнению с той процедурой, которая была описана первой, состоит в том, что затраты на внутренние вычисления в средстве 24 вычисления суммы квадратов возрастают, поскольку обработка значений 42-42 должна производиться с разрядностью слова, равной 2x, и, в частности, они должны быть подвергнуты операции 38 суммирования. Для этого требуется либо вычислительный блок суммирования повышенной производительности, либо управление вычислительным блоком суммирования данных в y-разрядном формате с фиксированной запятой, имеющим выделенный бит переполнения, операцию необходимо осуществлять чаще. В этом возможном варианте средство 24 вычисления суммы квадратов сначала возводит значения, находящиеся в регистрах 22-22, в квадрат по отдельности, а затем выполняет операцию 38 суммирования возведенных в квадрат 2x-разрядных значений 42-42 с фиксированной запятой, а после этого масштабирует результат согласно информации о коэффициенте масштабирования, поступившей из блока управления 36, и выводит его в регистр 26.
1
N
В варианте осуществления изобретения, который предпочтительно реализован посредством x=24 бит, регистр 26 имеет длину y=2x позиций. В другом варианте осуществления изобретения, который предпочтительно реализован посредством x=32 бит, сокращение количества позиций до x позиций выполняют сразу же при возведении в квадрат в средстве 42-42, то есть сразу же во время возведения в квадрат или после возведения в квадрат, но до сохранения в регистре. Затем выполняют суммирование с разрядностью слова, равной x битам. Таким образом, здесь регистр 26 содержит только лишь y=x позиций. В этом случае средство логарифмирования в предпочтительном варианте также может содержать x позиций.
Посредством эффективного коэффициента масштабирования количество значащих битов в регистре 26 результата может быть отрегулировано почти оптимальным образом. Теперь средство 28 логарифмирования получает из регистра 26 y-разрядное представление с фиксированной запятой, причем при необходимости остальные позиции битов более высокой точности игнорируют, и подвергает его операции преобразования в формат LD64, описание которой приведено выше со ссылкой на Фиг. 3, для ввода результата в регистр 30 в z-разрядном формате данных с фиксированной запятой, при этом в предпочтительном варианте z=y и в предпочтительном варианте y=x.
1
N
Результат, находящийся в регистре 30 результата, представляет собой масштабированное логарифмическое представление суммы квадратов значений, находящихся в регистрах 22-22. Средство 32 изменения масштаба теперь выполняет обращение масштаба путем вычитания из масштабированного значения, находящегося в регистре 30, значения 44 поправки, которое оно получает из средства 36 управления. Как упомянуто выше, в случае формата LD64 значение поправки имеет величину LD64(s), где s - эффективный коэффициент масштабирования, посредством которого осуществляют масштабирование суммы квадратов в регистре 26 результата.
Затем средство 32 изменения масштаба выводит результат в регистр 34 в формате данных с фиксированной запятой.
Со ссылкой на Фиг. 4 была дана грубая схема функционирования предпочтительного варианта осуществления настоящего изобретения, не углубляясь в возможную аппаратную реализацию. Возможный вариант реализации устройства из Фиг. 4 немного более подробно показан на Фиг. 5. Устройство из Фиг. 5, которое в целом обозначено номером позиции 60, содержит запоминающее устройство 62, средство 64 управления, средство 66 сдвига, средство 68 возведения в квадрат, сумматор 70, средство 72 логарифмирования, блок 74 деления и блок 76 вычитания. Все модули 62-76 соединены таким образом, что являются связанными друг с другом посредством, например, шины или программного интерфейса 78. Средства 66-76 могут быть реализованы аппаратными средствами, но также могут быть частично реализованы посредством соответствующих программных кодов, исполняемых средством 64 управления для выполнения соответствующих задач. Каждый из модулей 66-76 должен быть способным всего лишь выполнять обработку операндов в x-разрядном формате данных с фиксированной запятой. Из модулей 66-76 модули 66-70 образуют средство 80 вычисления суммы квадратов, а средство 72 логарифмирования и блок 74 деления объединены, образуя средство 82 вычисления логарифма.
1
N
1
N
Средство 64 управления является, например, программно-управляемым и вызывает выполнение операции создания суммы квадратов значений, находящихся в x-разрядном формате данных с фиксированной запятой в x-разрядных ячейках 84... 84 памяти запоминающего устройства 62. Обсуждение точного функционирования средства 64 управления приведено со ссылкой на Фиг. 6. В частности, здесь предполагают, что x-разрядными значениями с фиксированной запятой, находящимися в ячейках 84-84 памяти, являются значения частотных линий из частотной группы.
1
N
1
N
s
s
s
Сначала выполняют операцию 100, при которой средство управления анализирует значения частотных линий группы в ячейках 84-84 памяти и регулирует общий коэффициент масштабирования. Регулировку при операции 100 выполняют так, как было объяснено выше, на основании количества N и минимального количества неиспользуемых позиций битов в ячейках 84-84 памяти. В частности, оно регулирует общий коэффициент масштабирования как число 2 в заданной степени, например 2. В альтернативном варианте средство 64 управления регулирует величину s сдвига, которая соответствует общему коэффициенту масштабирования, равному 2. Средство управления вводит значение s или 2 во внутренний или во внешний регистр 101 для фиксации.
1
N
При следующей операции 102 средство 64 управления инициирует выполнение средством 66 сдвига операции сдвига содержимого ячеек 84-84 памяти, содержащих значения частотных линий из группы, влево на s позиций битов согласно общему коэффициенту масштабирования и/или значению сдвига.
1
N
1
N
1
N
1
N
Затем выполняют операцию 104, при которой средство 64 управления инициирует выполнение средством 68 возведения в квадрат операции возведения в квадрат каждого из значений, находящихся в ячейках 84-84 памяти, и операции записи старшей половины 2x-разрядного результата обратно в соответствующую ячейку 84-84 памяти. Средство 68 возведения в квадрат, которым является, например умножитель, в котором средство 104 управления записывает соответствующее значение, подлежащее возведению в квадрат, из одной из ячеек 84-84 памяти в оба x-разрядных регистра для сомножителей, которые имеются в умножителе. Однако средство возведения в квадрат может содержать, например, внутренний 2x-разрядный регистр результата, в котором средство 64 управления гарантированно обеспечивает запись только лишь старшей половины, то есть x-разрядного возводимого в квадрат значения с фиксированной запятой, обратно в соответствующую ячейку 84-84 памяти. В альтернативном варианте средство возведения в квадрат заранее вычисляет только одно x-разрядное представление и, следовательно, имеет только один x-разрядный выходной регистр.
1
N
1
N
После этого выполняют операцию 106, при которой средство 64 управления создает посредством сумматора 70 сумму по всему содержимому, находящемуся в позициях 84-84 запоминающего устройства. Эта операция может начинаться с суммирования первых двух значений и записи результата в x-разрядный регистр 86 суммы в x-разрядном формате данных с фиксированной запятой. После этого средство 64 управления может использовать сумматор 70 для поочередного суммирования значения, находящегося в позиции 86 запоминающего устройства, с последующими значениями и перезаписи каждого предыдущего значения в ячейке 86 памяти результирующей суммой. В альтернативном варианте средство 64 управления обеспечивает запись суммы в одну из позиций 84-84 запоминающего устройства и ее накопление в ней.
Затем выполняют операцию 108, при которой средство 64 управления выдает в средство 72 логарифмирования команду вычислить логарифм суммы, находящейся в ячейке 86 памяти, и после этого разделить результат на 64 посредством блока 74 деления. Промежуточный результат, полученный средством 72 логарифмирования, например, записывают обратно в ячейку 86 памяти, например, как результат, полученный блоком 74 деления. Если делитель равен числу 2 в какой-либо степени, то блок деления реализован как простое средство сдвига.
Следовательно, после выполнения операции 108 в ячейке 86 памяти находится масштабированное представление прологарифмированной суммы квадратов. Поэтому при операции 110 средство управления выдает в блок 76 вычитания команду вычесть из находящегося в ячейке 86 памяти значения, для которого выполнены операции деления и логарифмирования, значение, зависящее от коэффициента s масштабирования, хранящегося в регистре-фиксаторе 101, то есть значение, равное 2*s/64.
После приведенного выше описания предпочтительных вариантов осуществления настоящего изобретения со ссылкой на чертежи Фиг. 4 - Фиг. 6 ниже рассмотрен вариант осуществления настоящего изобретения для устройства кодирования звука, в котором реализовано устройство согласно этим вариантам осуществления изобретения.
Устройство кодирования звука из Фиг. 7, которое в целом обозначено номером позиции 150, содержит средство 152 преобразования, средство 154 вычисления энергии группы и генератор 156 закодированного потока, которые подключены последовательно между входом 158 и выходом 160 устройства 150 кодирования. В генераторе 156 закодированного потока используют психоакустическую модель 162 для извлечения ненужной информации, например, из звукового сигнала 164, подлежащего кодированию, и имеющейся на входе 158, удаление которой оказывает лишь незначительное влияние на качество звучания потока закодированных данных, выводимого с выхода 160, или вообще не оказывает никакого влияния на него. Хотя это и не показано на Фиг. 7, может иметь место ситуация, когда генератор 156 закодированного потока соединен со средством 152 преобразования или со средством 154 вычисления энергии группы через цепь обратной связи.
Звуковой сигнал 164, имеющийся на входе 158, представлен, например, в виде последовательности значений выборок звукового сигнала, выборка которых была произведена с заранее заданной частотой дискретизации. Звуковой сигнал 164 может быть представлен, например, в формате импульсно-кодовой модуляции, ИКМ (PCM). В точке 164 звуковой сигнал представлен в виде графика зависимости сигнала от времени t, на котором по вертикальной оси отображена амплитуда A в произвольных единицах измерения.
Затем средство 152 преобразования осуществляет преобразование звукового сигнала 164 из временной области в спектральную область путем разложения звукового сигнала 164 на его спектральные компоненты. В частности, средство 152 преобразования может состоять, например, из набора фильтров для частотного разложения сигнала, содержащего 32 полосовых фильтра. В более точном изложении, средство 152 преобразования разлагает звуковой сигнал 164 на спектральные компоненты фрагмент за фрагментом. Фрагменты или кадры 166, для которых выполняют спектральное разложение, перекрываются по времени, например, на 50%. В каждой спектральной компоненте для каждого последовательного кадра создают спектральное значение и/или значение частотной линии, что проиллюстрировано точками на спектрограмме 168, сгенерированной средством 152 преобразования. Таким образом, из последовательности значений частотных линий создают частотную линию для каждой спектральной компоненты, причем в точке 168 частотные линии обозначены горизонтальными стрелками, которые визуально разделены по значениям частотных линий только лишь для трех указанных кадров 166. В спектрограмме 168 вдоль спектральной оси или оси частоты f расположено произвольное количество частотных линий, однако, несмотря на это, фактическое количество частотных линий будет более значительным.
На основании созданной таким образом спектрограммы 168 генератор 156 закодированного потока осуществляет генерацию потока закодированных данных. Однако для этого генератор 156 закодированного потока не требует или не всегда требует спектрального разложения всех спектральных компонент. Вместо этого частотные линии разделяют согласно психоакустическим аспектам на группы 170, обозначенные кругами.
Теперь для генерации закодированного потока для каждой группы 170 генератор 156 закодированного потока, в частности, требует для каждого из кадров 166 наличия соответствующего значения энергии сигнала, то есть суммы квадратов значений амплитуды, то есть суммы квадратов значений частотных линий.
Это вычисление выполняет средство 154 вычисления энергии группы. Оно вычисляет энергию сигнала для каждой группы 170 частотных линий как сумму квадратов частотных линий, при этом средство 154 вычисления энергии группы выполнено, например, таким образом, как показано на Фиг. 4 и 5, и/или функционирует так, как изображено на Фиг. 4 - 6. Результатом, полученным при помощи средства 154 вычисления энергии группы, являются последовательности 172 значений энергии сигнала, то есть одна последовательность 172 для каждой группы 170. Следовательно, последовательности энергии сигнала 172 имеют одно значение энергии сигнала на каждый кадр 166, что проиллюстрировано посредством точки вдоль стрелок 172.
Затем, на основании этих последовательностей 172 значений энергии сигнала, генератор 156 закодированного потока осуществляет генерацию потока 160 закодированных данных на основании психоакустической модели 162. Одно из преимуществ при повторной обработке значений энергии сигнала в средстве 156 здесь состоит не только в том, что значения представлены в формате данных с фиксированной запятой, имеющем то же самое количество разрядов, посредством которого были представлены значения частотных линий, но также и в том, что значения представлены в логарифмической области, поскольку эта область обеспечивает возможность более простого выполнения операций умножения, возведения в степень и деления, так как в логарифмической области происходит преобразование этих вычислительных операций в более простые операции сложения/вычитания и умножения/деления.
Для иллюстрации этого рассмотрен вариант устройства кодирования из Фиг. 7, выводящего поток данных в формате MPEG.
-1
-1
1
Устройство кодирования звука из Фиг. 7 представляет собой, например, устройство кодирования согласно стандарту MPEG AAC. В этом случае генератор 156 закодированного потока содержит модуль временного ограничения шума ВОШ (TNS), в котором генератор 156 закодированного потока выполняет эффективное вычисление взвешенного по энергии спектра. В частности, модуль ВОШ выполняет вычисления со значениями энергии сигнала (SE) следующего вида: x=1/. Это может быть выполнено более просто со значениями энергии сигнала, представленными в логарифмическом формате LD64, поскольку он используется средством 154 вычисления энергии группы. Модуль ВОШ просто вычисляет X в формате LD64(-LD64_SE>>1), где обозначение a>>b указывает операцию сдвига вправо операнда a, находящегося с левой стороны, на количество битов, равное b, находящегося с правой стороны, тогда как LD64() является обратной функцией от логарифмической функции LD64(), а LD64_SE представляет собой значение энергии сигнала в логарифмическом формате LD64, которое выводит средство 154 вычисления энергии группы. Следовательно, ">>1" обозначает сдвиг вправо на 1 бит, что соответствует делению на 2. Операция деления на 2 при ее выполнении в логарифмической области соответствует квадратному корню в линейной области. Знак "минус" соответствует обратной функции 1/x в линейной области. Вычисление функции LD64- может быть реализовано проще, чем вычисление корня результата и его обратной функции, что требуется в том случае, если значения энергии сигнала подают в генератор 156 закодированного потока представленными в линейной области.
Генератор 156 закодированного потока также может осуществлять генерацию потока закодированных данных в формате MPEG 4 AAC, и в таком случае он содержит модуль подстановки воспринимаемого шума, ПВШ (PNS). Модуль ПВШ выполняет внутреннее вычисление расстояния между пороговым значением слышимости и энергией сигнала в частотной группе 170. В частности, модуль ПВШ определяет посредством расстояния между пороговым значением слышимости и энергией сигнала, может ли быть или должна ли быть выполнена подстановка шума. Существенный вклад в правильное определение ПВШ вносит более высокая динамика и связанная с ней точность логарифмического представления значений энергии сигнала при их выводе устройством 154 вычисления энергии группы, и пороговые значения слышимости, которые также представлены в логарифмическом представлении в формате LD64 в генераторе 156 закодированного потока. В частности, при вычислении функции когерентности в модуле ПВШ выполняют операции деления и вычисления корня следующего вида: Y=(SE1/), где SE1, SE2 и SE3 - значения энергии сигнала, выведенные средством 154 вычисления энергии группы. Логарифмическое представление энергии сигнала значительно облегчает и ускоряет эти вычисления. В частности, модуль ПВШ в генераторе 156 закодированного потока может выполнять вычисление LD64_Y, то есть Y в формате LD64, путем следующих вычислений:
LD64_Y=LD64_SE1-((LD64_SE2+LD64_SE3)>>1),
где LD64_SE# - логарифмическое представление соответствующего значения энергии сигнала SE# на выходе средства 154 вычисления энергии группы.
Генератор 156 закодированного потока может, например, также содержать стереофонический модуль для центрального/боковых каналов, принимающий решение относительно кодирования центрального/боковых каналов. В этом модуле центрального/боковых каналов, ЦБК (CS), для принятия решения о том, следует ли использовать кодирование центрального/боковых каналов (ЦБК) или нет, вычисления выполняют путем многочисленных операций деления, а именно: от порогового значения слышимости до энергии сигнала. За счет использования формата LD64, в котором средство 154 вычисления энергии группы производит вывод данных, происходит преобразование этих операций деления в простые операции вычитания. Пороговые значения, относительно которых должно использоваться кодирование ЦБК, являются постоянными значениями и, следовательно, могут быть преобразованы в логарифмическую область уже в исходном коде, вследствие чего не требуется никакого дополнительного времени вычислений сверх времени выполнения программы. Это применимо еще для многих констант, используемых в видоизмененном коде в связи с вычислениями в формате LD64. В частности, изложенное выше также применимо к модулю интенсивности стереофонического кодирования в устройстве кодирования согласно стандарту MPEG уровня 3 (MPEG Layer-3) или стандарту MPEG AAC.
Генератор 156 закодированного потока может дополнительно содержать средство оценки масштабного коэффициента, которое выполняет вычисление громкости. В средстве оценки масштабного коэффициента, которое, например, находится в модуле дискретизации генератора 156 закодированного потока, выполняют вычисление корня четвертой степени от пороговых значений слышимости, то есть вычисление громкости. При представлении порогового значения слышимости посредством логарифмического формата данных, то есть формата LD64, вычисление этого корня четвертой степени может быть выполнено очень эффективно путем простого сдвига логарифмического среднего от пороговых значений вправо на 2 разряда. Обратная операция, то есть возведение в четвертую степень, также может быть выполнено очень простым способом путем сдвига влево на 2 разряда.
Кроме того, в средстве оценки масштабного коэффициента, имеющемся в генераторе 156 закодированного потока, может быть выполнено, например, вычисление масштабных коэффициентов, МК (SCF), образующих часть ширины шага дискретизации, которые вычисляют из видоизмененных пороговых значений слышимости, ПЗШ (LT), и значений энергии сигнала, ЭС (SE). Вычисление содержит операцию вычисления следующего типа: SCF=log(k*LT/SE), где log() - десятичный логарифм, а k - константа. Это вычисление может быть выполнено очень изящно и эффективно с использованием формата LD64 и соответствующего преобразования исходной формулы. В частности, средство оценки масштабного коэффициента выполняет вычисление следующим образом: SCF=log(k)+log2*64*(LD64_LT-LD64_SE).
Приведенные выше примеры возможных модулей в генераторе 156 закодированного потока показывают, что использование логарифмического формата данных LD64 способствует повышению производительности в процессорах с фиксированной запятой. Логарифмический формат данных LD64 во многих случаях почти обеспечивает возможность реализации кодека для звука с высоким качеством звучания на этих компьютерных платформах, если качество звучания должно быть не хуже определенного уровня.
Приведенные выше примеры возможных модулей в генераторе 156 закодированного потока, в частности, показали, что представление значений энергии сигнала, пороговых значений слышимости и других значений энергии в логарифмическом формате данных является чрезвычайно целесообразным, поскольку при обработке значений энергии сигналов и пороговых значений слышимости большинство вычислительных операций выполняют посредством операций деления или умножения. Следовательно, операция деления преобразуется в операцию вычитания, а операция умножения преобразуется в операцию сложения, что приводит к эффективному представлению и к эффективной обработке значений энергии сигнала и пороговых значений слышимости в устройстве кодирования звука посредством проиллюстрированного логарифмического формата данных. Значения энергии сигнала в линейной области, то есть в нелогарифмической области, представлены в дробном формате данных с фиксированной запятой, который имеет интервал значений от -1,0 до +0,99999….
2
В описанных выше вариантах осуществления изобретения был использован логарифм по основанию 2, то есть двоичный логарифм, ДЛ (LD). В логарифме по основанию два значение энергии сигнала, равное 0,25 в линейной области, соответствует значению ДЛ, равному -2. Значение энергии сигнала, равное 0,3 в линейной области, соответствует значению ДЛ, равному -1,7369656. Как и в процессоре с фиксированной запятой, в котором обычно могут быть представлены либо целочисленные значения, либо дробные значения, но не смешанные значения, в описанных выше вариантах осуществления изобретения значения ДЛ были масштабированы применительно к формату LD64 таким образом, что получают только дробные значения. Конечно же, другим возможным вариантом является выбор масштабирования таким образом, чтобы были получены только целочисленные значения. В частности, масштабирование с коэффициентом 1/64 было выбрано потому, что этот коэффициент применим ко всем разрядностям слова вплоть до 64 битов и, следовательно, также охватывает обычные значения разрядности слова, равные 48 битам и 32 битам. Вычисление логарифма по основанию два, масштабированного с коэффициентом 1/64, то есть формата LD64, выполняют согласно следующей формуле: y=log(x)/64=LD64(x). Конечно же, в случае отказа от более высокой портативности этот коэффициент также может быть увеличен, а именно до 1/y, где y - количество битов масштабированной суммы квадратов без логарифмирования.
На Фиг. 3 показан график логарифмической функции. На нем видны характеристики логарифмической функции, которая для более малых подаваемых на вход значений x (более близких к 0,0), то есть фактически имеющих меньшую точность в представлении с фиксированной запятой, предоставляет большее количество значений y на выходе, то есть более мелкое разрешение, в логарифмической области, которые, следовательно, имеют более высокую точность в представлении с фиксированной запятой, поскольку они являются большими по величине, то есть более близкими к -1,0. Согласно описанным выше вариантам осуществления изобретения, за счет общего коэффициента масштабирования и/или общего значения сдвига перед возведением в квадрат была предотвращена потеря точности при вычислении значений энергии сигнала до перехода в логарифмическую область.
Следовательно, в варианте осуществления изобретения, показанном на Фиг. 7, представлено устройство кодирования, в котором использован логарифмический формат данных с масштабированием или даже без масштабирования в психоакустической модели и/или в модуле дискретизации для представления и обработки значений энергии сигнала и пороговых значений слышимости. Однако следует понимать, что изложенное выше описание логарифма по основанию два и масштабирования с коэффициентом 1/64 приведено только лишь в качестве примера. В любом случае логарифмическое представление служит для обеспечения более быстрого выполнения многочисленных вычислений, например, в модуле принятия решения относительно кодирования центрального/боковых каналов и в средстве оценки масштабного коэффициента модуля дискретизации, поскольку, как было объяснено выше, за счет использования логарифмического формата операции деления, первоначально выполняемые ими, преобразуются в простые операции вычитания, которые могут быть выполнены процессором с фиксированной запятой во много раз быстрее. То же самое применимо и к операциям вычисления корня, например к вычислению квадратного корня, корня четвертой степени и т.д., которые преобразуются в простые операции сдвига вправо. Затраты вычислительных ресурсов, требуемые для преобразования в логарифмическую область, безусловно являются скомпенсированными за счет повышения скорости при последующих операциях алгоритма. Следовательно, преимуществами описанных выше вариантов осуществления изобретения являются, в частности, более высокая точность значений, представленных в виде логарифма, а также более высокая скорость обработки при использовании логарифмического представления.
Со ссылкой на приведенное выше описание следует понимать, что настоящее изобретение не ограничено форматами данных с фиксированной запятой. Описанные выше варианты осуществления изобретения, относящиеся к созданию сумм квадратов значений, также могут быть целесообразно применены для тех значений, которые представлены не в формате данных с фиксированной запятой, а в формате целочисленных данных. В этом случае для логарифмирования предоставляют y разрядов с более высокими значениями из 2x-разрядного результата суммирования квадратов.
Согласно описанным выше вариантам осуществления изобретения, для логарифмирования была использована функция, в которой выполнялось масштабирование с коэффициентом 1/64. Этот коэффициент является приемлемым в том случае, если одинаковое кодирование должно выполняться на различных компьютерных платформах с различными форматами данных с фиксированной запятой. Однако также возможен вариант, в котором коэффициент в логарифмической функции может быть только большим, чем x, то есть большим, чем количество разрядов тех значений, которые подают для суммирования квадратов.
Кроме того, со ссылкой на описанные выше варианты осуществления изобретения следует понимать, что настоящее изобретение не ограничено созданием сумм квадратов. Например, настоящее изобретение также может быть полезным в случае существования групп, состоящих только из одного значения, когда выполняют только лишь одно кодирование. В этом случае средство 36 управления, конечно же, никоим образом не должно прогнозировать информацию о коэффициенте масштабирования. Вместо этого в данном случае коэффициент масштабирования, используемый для масштабирования значения перед возведением в квадрат, был бы получен автоматически из количества значащих битов и/или из количества неиспользуемых битов. В очень широком смысле настоящее изобретение может быть использовано для создания представления результата, линейно зависимого от квадрата значения.
Со ссылкой на приведенное выше описание также следует понимать, что настоящее изобретение, конечно же, не ограничено его использованием применительно к кодированию звука. Те же самые преимущества, описанные выше применительно к кодированию звука, то есть обеспечивающие достижение одинаковой степени масштабирования для отдельных значений энергии сигнала при сохранении динамического диапазона и одновременном сокращении затрат ресурсов на кодирование звука, могут быть также получены в иных областях применения, например при создании звукового файла с "водяным знаком" и т.п.
Особо следует понимать следующее: в зависимости от обстоятельств предложенная в настоящем изобретении схема может быть также реализована посредством программного обеспечения. Реализация может быть выполнена на цифровом носителе информации, в частности, на гибком диске или на компакт-диске (CD), при этом считываемые электронными средствами управляющие сигналы взаимодействуют с программируемой компьютерной системой, обеспечивая выполнение соответствующего способа. Следовательно, в общем случае изобретение также состоит из хранящегося на машинно-считываемом носителе компьютерного программного продукта с программным кодом, предназначенного для выполнения предложенного в настоящем изобретении способа при выполнении компьютерного программного продукта на компьютере. Следовательно, другими словами, настоящее изобретение может быть реализовано в виде компьютерной программы с программным кодом, предназначенной для выполнения этого способа при выполнении компьютерной программы на компьютере.