ГОСТ Р 54711—2011
На практике умножение выполняется с приращением путем увеличения масштабных коэффициентов, ис
пользуемыхв каждом цикле управления искажением. Этоописывается ниже 8 В.1.5.4.3.5.
Цикл управления искажениями всегданачинается сscalefac_scale = 0. Еслипосленесколькихитераций мак
симальная длина поле масштабных коэффициентов превышена, то scalefac_scale увеличивается до значения 1.
тем самым достигается увеличение возможного динамического диапазона масштабных коэффициентов. В этом
случавзначения масштабных коэффициентовичастотныхлинийдолжныбытьсоответственноскорректированны.
В.1.5.4.3.1 Сохранение масштабных коэффициентов
Масштабныекоэффициенты всехполос. scalefac_l(sb)илиscalefac_s(sb).иразмершагаквантователяqquanl
должны быть сохранены. Если вычисление внешнего цикла прервано бездостижения надлежащего результата,
эти значения вместес квантованным спектромдаютприближениеи могут быть переданы.
В.1.5.4.3.2 Вызов внутреннегоитеративного цикла
Для каждого внешнего итеративного цикла (цикл управления искажениями) вызывается внутренний итера
тивный цикл (цикл управления скоростью потока). Параметрами являются масштабированные значения в частот
ной области (выход гибридногонабора фильтров) и количество битов,доступных в цикле управления скоростью.
Результатом является количество используемых битов и квантованные частотные линии
ix(i).
В.1.5.4.3.3 Расчет искажений в полосах масштабных коэффициентов
Для каждой полосы масштабныхкоэффициентов значение искажения рассчитывается по формуле
м ы в ц и
,Ь
).. Qxr(/)| - «ф I4’3
№ 9иап’-* иШао’ \
bandwtdth(sb)
где /61(sb) — номер коэффициента, соответствующего самойнизкойчастоте полосы: bw(sb)—количество
коэффициентов вэтой полосе.
В.1.5.4.3.4 Предкоррекция
Опция «предкоррекция» (включаемая установкой preflag в значение 1)обеспечивает возможность усиления
верхней части спектра в соответствии с таблицам предкоррекции.
if (preflag==t) {
ifqstep:= 2’,(0.5’(l+scalefac_scale))
xminij) =xminij) ’ifqstep’\2’prefacOj))
for (Mower limit ofscalefactorbandj: i <=upperlimitofscale/actorbandj: /++){
хф) =хф) *Hqsbptn M ®
)
)
Условие включения предкоррекции зависит от конкретной реализации. Например, предкоррекция может
включаться, если во всех верхних четырехполосахмасштабных коэффициентовискажения превышают порог по
сле первого вызова внутреннего цикла.
Если кодируется вторая гранула и
scfsi
активно по крайней мере в одной
SCfsi_band,
предкоррекция во вто
рой гранулеустанавливается такой же, какидля первой гранулы.
В.1.5.4.3.5 Усилениеполос масштабных коэффициентовс искажениями, превышающими порогмаскирования
Все спектральные значения полос масштабных коэффициентов, в которых искажения превышают допусти
мое значение, усиливаются множителемifqstep. Значение ifqstep передается в scalefac_scale.
if((xmin— xfsf) ofscalefactorbandj < 0){
xminij) =xminij) ’ ifqslepn2
< m = Щ )+ 1
for (Mower limit of scalefactorband: i <=upperlimitofscalefactorband:r++) {
хф) =хф) *ifqstep
)
)
Если кодируется вторая гранула и scfsiактивно по крайней мере в одной sc(si_band. должны быть сделаны
следующиешаги:
а) ifqstepдолженбытьустановлен как и в первой грануле;
б)если этопервая итерация, томасштабныекоэффициенты полос,длякоторыхвключен scfsi. должныбыть
взятыиз первой гранулы. Соответствующиеспектральные значениядолжныбытьусилены:
if((scfsi accordingto scalefactorband
j
== 1){
ifq(j) = ifq(j)firsl granule
for (i=towerlimit ofscalefactorband: i <=upperlimitofscalefactorband:/++){
хф) =xr(i) ’ ifqstep Ascalefac(j)
}
}
где scalefacлибо sca/e/ac_1(). либо scalefac_s():
в)если этоне первая итерация, полосы,для которых
scfsi
включено, недолжны бытьусилены.
111