Способ создания представления результата вычисления, линейно зависимого от квадрата значения
Иллюстрации
Показать всеИзобретение относится к вычислительной технике и может быть использовано в устройствах кодирования звука. Техническим результатом является обеспечение простоты вычислений и/или возможности выполнения вычислений при небольших затратах на аппаратные средства. Способ заключается в следующем: информационный амплитудный сигнал разлагают на спектральные линии, причем каждая спектральная линия содержит последовательность спектральных значений, представленные в х-разрядном представлении без логарифмирования; выполняют для каждой спектральной группы операцию возведения в квадрат каждого спектрального значения и операцию суммирования возведенных в квадрат спектральных значений для получения суммы квадратов в качестве результата вычислений в представлении без логарифмирования, при этом представление результата вычислений без логарифмирования является масштабированным на эффективный коэффициент масштабирования по сравнению с суммой квадратов; применяют для каждого результата вычислений логарифмическую функцию к y-разрядам представления результата вычислений без логарифмирования для получения масштабированного представления результата вычислений с логарифмированием, при этом величина y является меньшей, чем величина x, умноженная на 2, и добавляют или вычитают для каждого представления масштабирования с логарифмированием значения поправки, соответственно к масштабированному логарифмическому представлению или из него, причем значение, соответствующее логарифмической функции, применяют к эффективному коэффициенту масштабирования для получения представления результата вычислений с логарифмированием как энергию сигнала соответствующей спектральной группы и так, что значения энергии сигнала в спектральных группах имеют одинаковую степень масштабирования. 6 н. и 16 з.п. ф-лы, 8 ил.
Реферат
Настоящее изобретение относится к созданию представления результата вычисления, линейно зависимого от квадрата значения, например от суммы квадратов группы значений, что требуется, например, в некоторых устройствах кодирования звука, в которых согласно психоакустической модели частотные линии объединяют, формируя частотные группы для выполнения дополнительного кодирования посредством значений энергии сигнала в частотных группах.
В современных способах кодирования звука на основе набора фильтров, например, согласно стандарту 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 битов обозначены отдельными квадратами, которые пронумерованы как
X0... X31 по порядку от младшего значащего разряда, МЗР (LSB), до старшего значащего разряда, СЗР (MSB). Под позициями отдельных битов указано, что означают позиции отдельных битов согласно 32-разрядному формату данных с фиксированной запятой. Из чертежа видно, что старший значащий разряд обозначает знак значения, то есть, "+" или "-". Остальные биты X30 - X0 выражают величину значения. Согласно данному варианту осуществления изобретения, показанному на Фиг. 1, эти биты представляют правильное дробное число, то есть формат 10 данных является форматом данных в виде дробного числа с фиксированной запятой, в котором, по определению, точка или запятая расположена в крайнем левом положении, то есть слева перед битом X30. Следовательно, значение в регистре 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 результата.
Затем старшая часть 14a каждого значения энергии сигнала может быть преобразована в логарифмическую область путем применения вычислительного устройства к соответствующей старшей части 14a значений энергии сигнала для вычисления логарифмической функции. Вычислительное устройство должно быть способным всего лишь выполнять операцию логарифмирования 32-разрядного значения данных с фиксированной запятой для получения 32-разрядного значения данных с фиксированной запятой. Логарифмической функцией, обеспечивающей преобразование значения x в значение y, может являться следующая функция: y=log2(x)/64, график которой проиллюстрирован на Фиг. 3. На Фиг. 3 показан только лишь участок логарифмической функции в интервале x ∈ ]0,1[, который является единственно важным для возведенных в квадрате значений энергии сигнала в 32-разрядном формате данных с фиксированной запятой. Здесь коэффициент масштабирования, равный 1/64, обеспечивает то, что в случае представлений с фиксированной запятой наименьшее возможное значение, то есть значение энергии сигнала, равное 2-63 (по меньшей мере, 1 бит зарезервирован для знака), также не выходит за пределы диапазона возможных выходных значений в интервале от -1, исключая само это значение, до 1, исключая само это значение, даже в том случае, если значения энергии сигнала, логарифмированные согласно логарифмической функции из Фиг. 3, представляют собой 64-разрядные значения с фиксированной запятой.
Однако эта процедура не является достаточно хорошей, поскольку при последующих операциях обработки по кодированию звука в устройстве кодирования звука все значения энергии сигнала во что бы то ни стало должны иметь одинаковое масштабирование, и, следовательно, сдвиг влево и/или коэффициент масштабирования, увеличивающий точность, мешали бы обеспечению этой в точности одинаковой степени масштабирования.
Эффект положительного свойства логарифмирования продемонстрирован именно в этой точке. Как указано выше, представление значений энергии линии является максимально точным посредством заданного сдвига влево, например, на s позиций битов в частотной линии и/или в амплитудной области, и/или посредством масштабирования на эффективный коэффициент 22s в области энергии сигнала при условии наличия упомянутого безопасного расстояния. Временно должно быть отмечено количество сдвигов влево, которое выполняют в этой частотной группе, то есть значение s. Если значение энергии сигнала логарифмической функции, показанной на Фиг. 3 и именуемой ниже как LD64(), которое было вычислено с такой высокой точностью, преобразовать теперь в логарифмическую область, что ниже иногда именуют форматом LD64, то оно по-прежнему будет представлено с максимально возможной точностью. Сдвиг частотных линий на 1 бит влево теперь соответствует, например, сдвигу значений энергии сигнала в линейной, нелогарифмической области, то есть после возведения в квадрат, на 2 бита влево, и это, в свою очередь, соответствует добавлению 2/64 в логарифмической области, поскольку 2/64=log2(22)64=LD64(22).
Для восстановления исходного масштабирования значений энергии сигнала, представленных в формате LD64, необходимо выполнить всего лишь вычитание 2*s/64, где s соответствует ранее отмеченному сдвигу значений частотных линий группы влево. Однако это вычитание не приводит к потере точности, поскольку не происходит потери никаких значащих битов и/или их сдвига без сохранения сдвигаемых разрядов, что имело бы место при сдвиге направо в линейном диапазоне. Таким образом, значения энергии сигнала представлены в формате LD64, который, как будет объяснено ниже, в любом случае имеет преимущество для дальнейших вычислений в устройстве кодирования звука, производимых с высокой точностью и с одинаковым масштабированием для всех значений энергии сигнала.
После приведенного выше обсуждения принципов и преимуществ вариантов осуществления настоящего изобретения, ниже приведено более подробное объяснение предпочтительных вариантов осуществления настоящего изобретения со ссылкой на Фиг. 4 - 7.
Сначала на Фиг. 4 показана схема устройства, пригодного для вычисления суммы квадратов для группы из N x-разрядных значений с фиксированной запятой, которое, с одной стороны, обеспечивает