ГОСТ Р 54711—2011
В.1.5.4.3.6Условиядля завершенияобработки циклов
Обычнообработка циклов завершается, если большенетниодной полосы с искажениями, превышающими по
рог. Однакоэтоневсегдадостижимо. Тогда используютдругиеусловия, позволяющиезавершитьвнешнийцикл,если:
а) все полосы масштабных коэффициентовужеусилены;
б) усиление по крайней мере в одной полосе превышает верхний предел, которыйопределяется форматом
передачи масштабных коэффициентов.
Верхним пределом являются масштабный коэффициент 15 для полос с 0 по 10 и масштабный коэффици
ент 7для полос с 11 по 20. В случав
block_type
== 2 и
nvxed_block_flag
== 0 верхний предел равен 15для полос
с0по 18. Вслучае
bfcck type
==2и
mixed_b!ock_flag
== 1верхний пределравен 15для полосс0по 17.Дляосталь
ных верхний предел масштабных коэффициентов равен 7.
Выполнение цикла прекращается, и выходом является
scalefac_
1 (
sb
) или
scalefac
s (sb) вывод. В случае
реализации в реальном времени может присутствовать третье условие, которое завершает циклы при нехватке
вычислительного времени.
В.1.5.4.4 Внутренний итеративный цикл (цикл управления скоростью)
Вовнутреннем итеративном циклевыполняется квантованиеданныхчастотнойобласти, которыезатем под
готавливаются кформатированию.Здесьпроисходитвыбортаблицы, разделениедиапазонаb*g_valuesнаобласти
и выбор шага квантователя.
В.1.5.4.4.1 Квантование
Квантование вектора спектральных значений выполнятеся согласно уравнению;
«(/) =ninl
И 0 |
-0,0946
^ 2 вдъап1~диво!ао>
В.1.5.4.4.2 Проверка максимума квантованныхзначений
Существует предел по максимально допустимому квантованному значению. Этот предел устанавливается
для ограничения размератаблицы приее использованиидля переквантованиячастотныхлиний. Предел задается
в видедопустимых значений идентификатора длины linbits значений, отмеченных с помощью кода ESC. Поэтому
перед подсчетом битов шаг квантователяувеличивается
qquanl = qquant+],
пока максимум квантованных значений находится в пределахдиапазона самой большой кодовой таблицы
Хаффмана.
В.1.5.4.4.3 Вычисление количества нулевыхзначений
Значениюrzeroприсваиваетсяколичествопарспектральныхкоэффициентоввверхнейчасти спектра, после
квантования оказавшихся равными нулю.
В.1.5.4.4.4 Вычисление количества значений меньших или равных 1
ЗначениюсоылИ присваивается количествочетверокспектральныхкоэффициентов, послеквантованияока
завшихся равными нулю или единице, следующих за парами нулей rzero.
В.1.5.4.4.5Подсчет битов, необходимыхдля кодирования значений меньших или равных 1
Для кодирования одной из четверок count1используется одно слово кода Хаффмана. Имеется два различ
ных кодовых словаря Хаффмана с соответствующими таблицами длины кода (таблицы Б 7). Количество битов,
необходимыхдля кодирования всех соилА четверок, определяется формулой:
bitsum_count\ = min {bitsum_table0, bitsum_table]),
где count! table_0 используется, чтобыуказать на таблицуА
AtVafcountf.counU -1
bitsum_!ableО==]ГсоипШаЫе_0(Ьс(Лк)~2•«(Ак+1)+4»/х(4к+2)* 8* ix( Ак+■3))
А-ЛпКоипЧ
и countUable_1используется, чтобыуказать на таблицу В
4
* ■ пт соолч* СОuntil А
bitsum_tabte1 =]Гcountltable (кх(
4А)
—2 гх(
4/с
+
1)
— •/х(
4/с
+2|+8♦гх(
4/с
3))
A ’tJfStCOOntt
Count1table_0. так же как и counf1fab/e_1. должна включать биты, необходимыедля кодирования знако
вых битов.
Информацияотом. какаятаблица используется, передаетсяв counf1<ab/e_se/ecf. котораяравна0для табли
цыА или 1для таблицы В.
В.1.5.4.4.6 Вызов подпрограммы SUBDIVIDE
Пары квантованных значений, не учтенные в count1 или rzero, называются bigvalues. Подпрограмма
SUBDIVIDEразбиваетполосы,соответствующиеэтимзначениям натригруппы.Последняя,обычнонеполная,счи
тается полной. Количество полос в первой и второй областях содержится в (гедюл0_соил/+1) и (/едк>л1_соилМ-1)
соответственно.Числополосвтретьейобластиможетбытьвычисленоизbigvalues. Стратегияразделениязависит
от реализации. Для примера, самсе простое решение — треть всех полос масштабных коэффициентов отнести к
первой области и четверть— к последней.
112