способ и система иерархического кодирования и декодирования звуковой частоты, способ иерархического кодирования и декодирования частоты для переходного сигнала
Классы МПК: | G10L19/00 Техника анализа-синтеза речи для уменьшения избыточности, например в вокодерах ; кодирование или декодирование речи |
Автор(ы): | ПЕН Ке (CN), ЧЕНЬ Гуомин (CN), ЮАНЬ Хао (CN), ЦЗЯН Донгпин (CN), ЛИ Цзяли (CN) |
Патентообладатель(и): | ЗетТиИ Корпорейшн (CN) |
Приоритеты: |
подача заявки:
2011-01-12 публикация патента:
10.07.2014 |
Изобретение относится к технологии кодирования и декодирования звука, в частности к иерархическому кодированию и декодированию звука и к иерархическому кодированию и декодированию звука для переходных сигналов. Технический результат - повышение качества иерархического кодирования и декодирования. Для этого способ иерархического кодирования звука обеспечивает обнаружение транзиентов (переходных процессов) на звуковом сигнале текущего кадра, выполнение временно-частотного преобразования, квантование и кодирование значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, квантование и кодирование коэффициентов частотной области базового уровня, выполнение обратного квантования на коэффициентах частотной области базового уровня, на которых проведено векторное квантование, выполнение расчета разности относительно первоначальных коэффициентов частотной области для получения разностного сигнала базового уровня, и расчет индексов квантования огибающей амплитуды разностных сигналов базового уровня, квантование и кодирование сигналов кодирования расширенного уровня, мультиплексирование и пакетирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и расширенного уровня, кодированных битов коэффициентов частотной области базового уровня и кодированных битов сигналов кодирования расширенного уровня и передача в конец декодирования. 5 н. и 13 з.п. ф-лы, 9 ил., 11 табл.
Формула изобретения
1. Способ иерархического кодирования звука, включающий следующее:
выполнение обнаружения транзиентов (переходных процессов) на звуковом сигнале текущего кадра;
если обнаружение транзиентов должно быть установившимся сигналом, на звуковом сигнале выполнение временно-частотного преобразования для получения коэффициентов полной частотной области; если обнаружение транзиентов должно быть переходным сигналом, разделение звукового сигнала на M субкадров, выполнение на каждом субкадре временно-частотного преобразования, M групп коэффициентов частотной области, которые получают путем преобразования, создают коэффициенты полной частотной области текущего кадра; перестановка коэффициентов полной частотной области, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот, где коэффициенты полной частотной области содержат коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, поддиапазоны кодирования содержат поддиапазоны кодирования базового уровня и поддиапазонов кодирования расширенного уровня, коэффициенты частотной области базового уровня создают несколько поддиапазонов кодирования базового уровня, и коэффициенты частотной области расширенного уровня создают несколько поддиапазонов кодирования расширенного уровня;
квантование и кодирование значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды и кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; где, если сигнал представляет собой установившийся сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы совместно, а если сигнал представляет собой переходной сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы отдельно соответственно, и индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно;
выполнение распределения битов на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, а затем квантование и кодирование коэффициентов частотной области базового уровня для получения кодированных битов коэффициентов частотной области базового уровня;
обратное квантование вышеописанных коэффициентов частотной области на базовом уровне, на которых выполняют векторное квантование, и выполнение расчета разности относительно первоначальных коэффициентов частотной области, полученных после выполнения временно-частотного преобразования, для получения разностных сигналов базового уровня;
расчет индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с числами распределения битов и индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня;
выполнение распределения битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, и затем квантование и кодирование сигналов кодирования расширенного уровня для получения кодированных битов сигналов кодирования расширенного уровня, где сигналы кодирования расширенного уровня состоят из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня; и
мультиплексирование и пакетирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и расширенного уровня, кодированные биты коэффициентов частотной области базового уровня и кодированные биты сигналов кодирования расширенного уровня, а затем передача в конец декодирования.
2. Способ по п.1, где, если обнаружение транзиентов должно быть переходным сигналом и коэффициенты частотной области переставляют, коэффициенты частотной области переставляют, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких, в пределах базового уровня и в пределах расширенного уровня соответственно.
3. Способ по п.2, где, когда перестановка соответственно в базовом уровне и расширенном уровне, если коэффициентов частотной области, оставленных в группе, недостаточно для создания одного поддиапазона, тогда выполняют дополнение, используя коэффициенты частотной области с одинаковыми или подобными частотами в следующей группе коэффициентов частотной области.
4. Способ по п.1 или 2, где индексы коэффициентов частотной области в поддиапазонах кодирования после перестановки следующие:
Порядковый номер поддиапазона | Индекс начального коэффициента частотной области (LIndex) | Индекс конечного коэффициента частотной области (HIndex) |
0 | 0 | 15 |
1 | 160 | 175 |
2 | 320 | 335 |
3 | 480 | 495 |
4 | 16 | 31 |
5 | 176 | 191 |
6 | 336 | 351 |
7 | 496 | 511 |
8 | 32 | 47 |
9 | 192 | 207 |
10 | 352 | 367 |
11 | 512 | 527 |
12 | 48 | 63 |
13 | 208 | 223 |
14 | 368 | 383 |
15 | 528 | 543 |
16 | 64, 65, 66, 67, 68, 69, 70, 71, 224, 225, 226, 227, 228, 229, 230, 231 | |
17 | 384, 385, 386, 387, 388, 389, 390, 391, 544, 545, 546, 547, 548, 549, 550, 551 | |
18 | 72 | 87 |
19 | 232 | 247 |
20 | 392 | 407 |
21 | 552 | 567 |
22 | 88 | 103 |
23 | 248 | 263 |
24 | 408 | 423 |
25 | 568 | 583 |
26 | 104 | 135 |
27 | 264 | 295 |
28 | 424 | 455 |
29 | 584 | 615 |
5. Способ по п.1, включающий также следующее: если обнаружение транзиентов должно быть установившимся сигналом,
на индексах квантования огибающей амплитуды поддиапазонов кодирования базового уровня, полученных квантованием, выполняют кодирование по методу Хаффмана, и если общее число битов, израсходованных после кодирования по методу Хаффмана, выполненного на индексах квантования огибающей амплитуды всех поддиапазонов кодирования базового уровня, меньше общего числа битов, израсходованных после натурального кодирования, выполненного на индексах квантования огибающей амплитуды всех поддиапазонов кодирования базового уровня, используют кодирование по методу Хаффмана, в противном случае используют натуральное кодирование и устанавливают флажок кодирования по методу Хаффмана огибающей амплитуды поддиапазонов кодирования базового уровня; и
на индексах квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, полученных квантованием, выполняют кодирование по методу Хаффмана, и если общее число битов, израсходованных после кодирования по методу Хаффмана, выполненного на индексах квантования огибающей амплитуды всех поддиапазонов кодирования расширенного уровня, меньше общего числа битов, израсходованных после натурального кодирования, выполненного на индексах квантования огибающей амплитуды всех поддиапазонов кодирования расширенного уровня, используют кодирование по методу Хаффмана, в противном случае используют натуральное кодирование и устанавливают флажок кодирования по методу Хаффмана огибающей амплитуды поддиапазонов кодирования расширенного уровня.
6. Способ по п.1, где квантование и кодирование коэффициентов частотной области базового уровня, включает:
выполнение кодирования по методу Хаффмана на всех индексах квантования базового уровня, полученных с использованием пирамидально-решетчатого векторного квантования;
если общее число битов, израсходованных после кодирования по методу Хаффмана на всех индексах квантования, полученных с использованием пирамидально-решетчатого векторного квантования, меньше общего числа битов, израсходованных после натурального кодирования на всех индексах квантования, полученных с использованием пирамидально-решетчатого векторного квантования, используют кодирование по методу Хаффмана, корректируют числа распределения битов поддиапазонов кодирования, используя биты, сэкономленных кодированием по методу Хаффмана, число битов, оставшихся после первого распределения битов, и общее число битов, сэкономленных кодированием всех поддиапазонов кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1 или 2, и снова выполняют векторное квантование и кодирование по методу Хаффмана на поддиапазонах кодирования, для которых числа распределения битов откорректированы; в противном случае используют натуральное кодирование, корректируют числа распределения битов поддиапазонов кодирования, используя число битов, оставшихся после первого распределения битов, и общее число битов, сэкономленных кодированием всех поддиапазонов кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1 или 2, и снова выполняют векторное квантование и натуральное кодирование на поддиапазонах кодирования, для которых числа распределения битов откорректированы; и
квантование и кодирование сигналов кодирования расширенного уровня включают:
выполнение кодирования по методу Хаффмана на всех индексах квантования расширенного уровня, полученных с использованием пирамидально-решетчатого векторного квантования;
если общее число битов, израсходованных после кодирования по методу Хаффмана на всех индексах квантования, полученных с использованием пирамидально-решетчатого векторного квантования, меньше общего числа битов, израсходованных после натурального кодирования на всех индексах квантования, полученных с использованием пирамидально-решетчатого векторного квантования, используют кодирование по методу Хаффмана, корректируют числа распределения битов поддиапазонов кодирования, используя биты, сэкономленные кодированием по методу Хаффмана, число битов, оставшихся после первого распределения битов, и общее число битов, сэкономленных кодированием всех поддиапазонов кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1 или 2, и снова выполняют векторное квантование и кодирование по методу Хаффмана на поддиапазонах кодирования, для которых числа распределения битов откорректированы; в противном случае используют натуральное кодирование, корректируют числа распределения битов поддиапазонов кодирования, используя число битов, оставшихся после первого распределения битов, и общее число битов, сэкономленных кодированием всех поддиапазонов кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1 или 2, и снова выполняют векторное квантование и натуральное кодирование на поддиапазонах кодирования, для которых числа распределения битов откорректированы.
7. Способ иерархического декодирования звука, включающий следующее:
демультиплексирование потока битов, переданного концом кодирования, декодирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; если информация обнаружения транзиентов указывает на наличие переходного сигнала, дополнительно переставляют индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня соответственно, так что соответствующие им частоты выстраиваются от низких до высоких в соответствующих уровнях;
выполнение распределения на поддиапазонах кодирования базового уровня битов в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, таким образом рассчитывают индексы квантования огибающей амплитуды разностных сигналов базового уровня и выполняют распределение битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня;
декодирование кодированных битов коэффициентов частотной области базового уровня и кодированных битов сигналов кодирования расширенного уровня соответственно в соответствии с числами распределения битов поддиапазонов кодирования базового уровня и поддиапазонов кодирования сигналов кодирования расширенного уровня для получения коэффициентов частотной области базового уровня и сигналов кодирования расширенного уровня и переставляют сигналы кодирования расширенного уровня в порядке поддиапазонов и добавляют к ним коэффициенты частотной области базового уровня для получения коэффициентов частотной области полного диапазона частот; и
если информация обнаружения транзиентов указывает на наличие установившегося сигнала, на коэффициентах частотной области полного диапазона частот непосредственно выполняют обратное временно-частотное преобразование для получения звукового сигнала для выдачи; а если информация обнаружения транзиентов указывает на наличие переходного сигнала, коэффициенты частотной области полного диапазона частот переставляют, затем разделяют их на M групп коэффициентов частотной области, на каждой группе коэффициентов частотной области выполняют обратное временно-частотное преобразование, и выполняют расчет для получения окончательного звукового сигнала в соответствии с M группами сигналов временной области, которые получают путем преобразования.
8. Способ по п.7, где, если информация обнаружения транзиентов указывает на наличие переходного сигнала, перестановка коэффициентов частотной области полного диапазона частот включает: перестановку коэффициентов частотной области, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот в соответствующих субкадрах, для получения M групп коэффициентов частотной области, и затем M групп коэффициентов частотной области переставляют в порядке субкадров.
9. Способ иерархического кодирования звука для переходных сигналов, включающий следующее:
разделение звукового сигнала на M субкадров, на каждом субкадре выполняют временно-частотное преобразование, M группами коэффициентов частотной области, которые получают путем преобразования, создают коэффициенты полной частотной области текущего кадра, коэффициенты полной частотной области переставляют, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот, где коэффициенты полной частотной области содержат коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, поддиапазоны кодирования содержат поддиапазоны кодирования базового уровня и поддиапазоны кодирования расширенного уровня, коэффициенты частотной области базового уровня создают несколько поддиапазонов кодирования базового уровня и коэффициенты частотной области расширенного уровня создают несколько поддиапазонов кодирования расширенного уровня;
квантование и кодирование значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды и кодированных битов поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; где значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы отдельно соответственно, и индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно;
выполнение распределения на поддиапазонах кодирования базового уровня битов в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, и затем коэффициенты частотной области базового уровня квантуют и кодируют для получения кодированных битов коэффициентов частотной области базового уровня;
обратное квантование вышеописанных коэффициентов частотной области на базовом уровне, на которых выполняют векторное квантование, и выполнение расчета разности относительно первоначальных коэффициентов частотной области, полученных после выполнения временно-частотного преобразования, для получения разностных сигналов базового уровня;
расчет индексов квантования огибающей амплитуды поддиапазонов кодирования разностных сигналов базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числами распределения битов поддиапазонов кодирования базового уровня;
выполнение распределения битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, и затем сигналы кодирования расширенного уровня квантуют и кодируют для получения кодированных битов сигналов кодирования расширенного уровня, где сигналы кодирования расширенного уровня состоят из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня; и
мультиплексирование и пакетирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и расширенного уровня, кодированных битов коэффициентов частотной области базового уровня и кодированных битов сигналов кодирования расширенного уровня, а затем передача в конец декодирования.
10. Способ по п.9, где коэффициенты частотной области переставляют, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот, в пределах базового уровня и в пределах расширенного уровня соответственно.
11. Способ по п.10, где, когда перестановка соответственно в базовом уровне и расширенном уровне, если коэффициентов частотной области, оставшихся в группе, недостаточно для создания одного поддиапазона, тогда выполняют дополнение, используя коэффициенты частотной области с одинаковыми или подобными частотами в следующей группе коэффициентов частотной области.
12. Способ по п.9 и 10, где индексы коэффициентов частотной области в поддиапазонах кодирования после перестановки следующие:
Порядковый номер поддиапазона | Индекс начального коэффициента частотной области (LIndex) | Индекс конечного коэффициента частотной области (HIndex) |
0 | 0 | 15 |
1 | 160 | 175 |
2 | 320 | 335 |
3 | 480 | 495 |
4 | 16 | 31 |
5 | 176 | 191 |
6 | 336 | 351 |
7 | 496 | 511 |
8 | 32 | 47 |
9 | 192 | 207 |
10 | 352 | 367 |
11 | 512 | 527 |
12 | 48 | 63 |
13 | 208 | 223 |
14 | 368 | 383 |
15 | 528 | 543 |
16 | 64, 65, 66, 67, 68, 69, 70, 71, 224, 225, 226, 227, 228, 229, 230, 231 | |
17 | 384, 385, 386, 387, 388, 389, 390, 391, 544, 545, 546, 547, 548, 549, 550, 551 | |
18 | 72 | 87 |
19 | 232 | 247 |
20 | 392 | 407 |
21 | 552 | 567 |
22 | 88 | 103 |
23 | 248 | 263 |
24 | 408 | 423 |
25 | 568 | 583 |
26 | 104 | 135 |
27 | 264 | 295 |
28 | 424 | 455 |
29 | 584 | 615 |
13. Способ иерархического декодирования для переходных сигналов, включающий следующее:
демультиплексирование потока битов, переданного концом кодирования, декодирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, перестановка индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня соответственно, так что соответствующие им частоты выстраиваются от низких до высоких в соответствующих уровнях;
выполнение распределения битов на поддиапазонах кодирования базового уровня в соответствии с переставленными индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, таким образом рассчитывают индексы квантования огибающей амплитуды разностных сигналов базового уровня;
выполнение распределения битов на поддиапазонах кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и переставленными индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня;
декодирование кодированных битов коэффициентов частотной области базового уровня и кодированных битов сигналов кодирования расширенного уровня соответственно в соответствии с числами распределения битов поддиапазонов кодирования базового уровня и поддиапазонов кодирования сигналов кодирования расширенного уровня для получения коэффициентов частотной области базового уровня и сигналов кодирования расширенного уровня и перестановка сигналов кодирования расширенного уровня в порядке поддиапазонов и добавление к ним коэффициентов частотной области базового уровня для получения коэффициентов частотной области полного диапазона частот; и
перестановка коэффициентов частотной области полного диапазона частот, а затем разделение на M групп, на каждой группе коэффициентов частотной области выполняют обратное временно-частотное преобразование и выполняют расчет для получения окончательного звукового сигнала в соответствии с M группами сигналов временной области, которые получают путем преобразования.
14. Способ по п.13, где стадия, на которой переставляют коэффициенты частотной области полного диапазона частот, включает: расположение коэффициентов частотной области, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот в соответствующих субкадрах, для получения M групп коэффициентов частотной области, а затем M групп коэффициентов частотной области, располагают в порядке субкадров.
15. Система иерархического кодирования звука, содержащая:
устройство генерирования коэффициентов частотной области, устройство расчета огибающей амплитуды, устройство квантования и кодирования огибающей амплитуды, устройство распределения битов базового уровня, устройство векторного квантования и кодирования коэффициентов частотной области базового уровня, и мультиплексор потока битов; и содержащая также: устройство обнаружения транзиентов, устройство генерирования сигналов кодирования расширенного уровня, устройство генерирования огибающей амплитуды разностных сигналов, устройство распределения битов расширенного уровня, и устройство векторного квантования и кодирования сигналов кодирования расширенного уровня; где
устройство обнаружения транзиентов предназначено для выполнения обнаружения транзиентов на звуковом сигнале текущего кадра;
устройство генерирования коэффициентов частотной области соединено с устройством обнаружения транзиентов и предназначено для того чтобы: если обнаружение транзиентов должно быть установившимся сигналом, на звуковом сигнале выполнять временно-частотное преобразование для получения коэффициентов полной частотной области; если обнаружение транзиентов должно быть переходным сигналом, разделять звуковой сигнал на M субкадров, на каждом субкадре выполнять временно-частотное преобразование, создавать коэффициенты полной частотной области текущего кадра M группами коэффициентов частотной области, полученными путем преобразования, переставлять коэффициенты полной частотной области, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот, где коэффициенты полной частотной области содержат коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, поддиапазоны кодирования содержат поддиапазоны кодирования базового уровня и поддиапазоны кодирования расширенного уровня, коэффициенты частотной области базового уровня создают несколько поддиапазонов кодирования базового уровня, и коэффициенты частотной области расширенного уровня создают несколько поддиапазонов кодирования расширенного уровня;
устройство расчета огибающей амплитуды соединено с устройством генерирования коэффициентов частотной области и предназначено для расчета значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня;
устройство квантования и кодирования огибающей амплитуды соединено с устройством расчета огибающей амплитуды и устройством обнаружения транзиентов и предназначено для квантования и кодирования значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, для получения индексов квантования огибающей амплитуды и кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; где, если сигнал представляет собой установившийся сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы совместно, а если сигнал представляет собой переходной сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня кодированных битов квантованы отдельно соответственно, и индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно;
устройство распределения битов базового уровня соединено с устройством квантования и кодирования огибающей амплитуды и предназначено для выполнения распределения битов на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня для получения числа распределения битов поддиапазонов кодирования базового уровня;
устройство векторного квантования и кодирования коэффициентов частотной области базового уровня соединено с устройством генерирования коэффициентов частотной области, устройством квантования и кодирования огибающей амплитуды и устройством распределения битов базового уровня и предназначено для того чтобы: выполнять нормализацию, векторное квантование и кодирование на коэффициентах частотной области поддиапазонов кодирования базового уровня, используя числа распределения битов поддиапазонов кодирования базового уровня и квантованные значения огибающей амплитуды поддиапазонов кодирования базового уровня, восстановленные в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, для получения кодированных битов коэффициентов частотной области базового уровня;
устройство генерирования сигналов кодирования расширенного уровня соединено с устройством генерирования коэффициентов частотной области и устройством векторного квантования и кодирования коэффициентов частотной области базового уровня и предназначено для генерирования разностных сигналов базового уровня для получения сигналов кодирования расширенного уровня, включающих разностные сигналы базового уровня и коэффициенты частотной области расширенного уровня;
устройство генерирования огибающей амплитуды разностных сигналов соединено с устройством квантования и кодирования огибающей амплитуды и устройством распределения битов базового уровня и предназначено для получения индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числами распределения битов соответствующих поддиапазонов кодирования базового уровня;
устройство распределения битов расширенного уровня соединено с устройством генерирования огибающей амплитуды разностных сигналов и устройством квантования и кодирования огибающей амплитуды и предназначено для выполнения распределения битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня для получения чисел распределения битов поддиапазонов кодирования сигналов кодирования расширенного уровня;
устройство векторного квантования и кодирования сигналов кодирования расширенного уровня соединено с устройством квантования и кодирования огибающей амплитуды, устройством распределения битов расширенного уровня, устройством генерирования огибающей амплитуды разностных сигналов и устройством генерирования сигналов кодирования расширенного уровня и предназначено для того чтобы: выполнять нормализацию, векторное квантование и кодирование на сигналах кодирования расширенного уровня, используя числа распределения битов поддиапазонов кодирования сигналов кодирования расширенного уровня и квантованные значения огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, восстановленные в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, для получения кодированных битов сигналов кодирования расширенного уровня;
мультиплексор потока битов соединен с устройством квантования и кодирования огибающей амплитуды, устройством векторного квантования и кодирования коэффициентов частотной области базового уровня, устройством векторного квантования и кодирования сигналов кодирования расширенного уровня и предназначен для пакетирования битов дополнительной информации базового уровня, кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня, кодированных битов коэффициентов частотной области базового уровня, битов дополнительной информации расширенного уровня, кодированных битов огибающей амплитуды поддиапазонов кодирования расширенного уровня и кодированных битов сигналов кодирования расширенного уровня.
16. Система по п.15, где устройство генерирования коэффициентов частотной области предназначено также для того чтобы: при перестановке коэффициентов частотной области переставлять коэффициенты частотной области соответственно, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот, в пределах базового уровня и в пределах расширенного уровня.
17. Система по п.16, где, когда перестановка соответственно в базовом уровне и расширенном уровне, если коэффициентов частотной области, оставшихся в группе, недостаточно для создания одного поддиапазона, тогда выполняют дополнение, используя коэффициенты частотной области с одинаковыми или подобными частотами в следующей группе коэффициентов частотной области.
18. Система по п.15 или 16, где индексы коэффициентов частотной области в поддиапазонах кодирования после перестановки следующие:
Порядковый номер поддиапазона | Индекс начального коэффициента частотной области (LIndex) | Индекс конечного коэффициента частотной области (HIndex) |
0 | 0 | 15 |
1 | 160 | 175 |
2 | 320 | 335 |
3 | 480 | 495 |
4 | 16 | 31 |
5 | 176 | 191 |
6 | 336 | 351 |
7 | 496 | 511 |
8 | 32 | 47 |
9 | 192 | 207 |
10 | 352 | 367 |
11 | 512 | 527 |
12 | 48 | 63 |
13 | 208 | 223 |
14 | 368 | 383 |
15 | 528 | 543 |
16 | 64, 65, 66, 67, 68, 69, 70, 71, 224, 225, 226, 227, 228, 229, 230, 231 | |
17 | 384, 385, 386, 387, 388, 389, 390, 391, 544, 545, 546, 547, 548, 549, 550, 551 | |
18 | 72 | 87 |
19 | 232 | 247 |
20 | 392 | 407 |
21 | 552 | 567 |
22 | 88 | 103 |
23 | 248 | 263 |
24 | 408 | 423 |
25 | 568 | 583 |
26 | 104 | 135 |
27 | 264 | 295 |
28 | 424 | 455 |
29 | 584 | 615 |
Описание изобретения к патенту
Область техники, к которой относится изобретение
Настоящее изобретение относится к технологии кодирования и декодирования звука и, в частности, способу и системе иерархического кодирования и декодирования звука и способу иерархического кодирования и декодирования для переходных сигналов.
Предпосылки изобретения
Иерархическое кодирование звука предназначено для организации потоков битов, полученных в результате кодирования звука, иерархическим образом, которые при этом обычно разделяются на один базовый уровень и несколько расширенных уровней. Декодер может декодировать лишь закодированный поток битов нижнего уровня (такого, как уровень ядра) в случае отсутствия закодированного поток битов высокого уровня (такого, как расширенный уровень), и чем больше уровней декодируются, тем выше качество звука.
Технология иерархического кодирования обладает очень важной практической ценностью для сети связи. С одной стороны, передача данных может осуществляться путем взаимодействия разных каналов, и степень потери пакетов каждого канала может отличаться; и в связи с этим часто требуется выполнять на данных иерархический процесс, т.е., помещать важные части данных для передачи в устойчивые каналы с относительно низкими степенями потери пакетов и помещать второстепенные части данных для передачи в неустойчивые каналы с относительно высокими степенями потери пакетов, с тем, чтобы обеспечить, что при потери пакетов в неустойчивых каналах произойдет лишь относительное снижение качества звука без состояния, в котором один кадр данных не может быть полностью декодирован. С другой стороны, ширина полосы пропускания некоторых сетей связи (таких, как Интернет) является очень неустойчивой, и ширина полосы пропускания различных пользовательских терминалов весьма разнится. Для удовлетворения требований пользователей с разными величинами ширин полосы пропускания невозможно использовать один фиксированный битрейт, а использование схемы иерархического кодирования позволяет разным пользователям получать оптимальное качество звука при их условиях в части собственной ширины полосы пропускания.
Традиционные схемы иерархического кодирования каналов звуковой частоты, такие как G.729.1 и G.VBR Международного союза электросвязи (МСЭ), не выполняют целевой процесс для кадров (фреймов) переходных сигналов и, следовательно, для сигналов, содержащих значительные переходные составляющие (таких, как ударный сигнал), эффективность кодирования является низкой, особенно при умеренных и низких битрейтах.
Краткое описание изобретения
Техническая задача, которую должно решить настоящее изобретение, - создать эффективные способ и систему иерархического кодирования и декодирования звука и способ иерархического кодирования и декодирования для переходных сигналов с тем, чтобы повысить качество иерархического кодирования и декодирования звука.
Для того чтобы решить вышеупомянутую задачу, предлагается способ иерархического кодирования звука, включающий следующее:
выполнение обнаружения транзиентов (переходных процессов) на звуковом сигнале текущего кадра выполняют,
когда результаты обнаружения транзиентов указывают на наличие установившегося сигнала, на звуковом сигнале выполняют временно-частотное преобразование для получения коэффициентов полной частотной области; если результаты обнаружения транзиентов указывают на наличие переходного сигнала, звуковой сигнал разделяют на M субкадров, на каждом субкадре выполняют временно-частотное преобразование, M группами коэффициентов частотной области, которые получают путем преобразования, создают коэффициенты полной частотной области текущего кадра; коэффициенты полной частотной области переставляют так, что соответствующие им поддиапазоны кодирования выстраиваются от низких частот до высоких частот; причем коэффициенты полной частотной области содержат коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, поддиапазоны кодирования содержат поддиапазоны кодирования базового уровня и поддиапазонов кодирования расширенного уровня, коэффициенты частотной области базового уровня создают несколько поддиапазонов кодирования базового уровня, а коэффициенты частотной области расширенного уровня создают несколько поддиапазонов кодирования расширенного уровня;
квантование и кодирование значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды и кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; причем, если представляет собой установившийся сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы совместно, а если сигнал представляет собой переходной сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы отдельно соответственно, и индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно;
выполнение распределения битов на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, а затем квантования и кодирования коэффициентов частотной области базового уровня для получения кодированных битов коэффициентов частотной области базового уровня;
обратное квантование вышеописанных коэффициентов частотной области на базовом уровне, на которых выполняют векторное квантование, и выполнение расчета разности между обратно квантованными коэффициентами частотной области и первоначальными коэффициентами частотной области, полученными после выполнения временно-частотного преобразования, для получения разностных сигналов базового уровня;
расчет индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с числами распределения битов и индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня;
выполнение распределения битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, и затем квантование и кодирование сигналов кодирования расширенного уровня для получения кодированных битов сигналов кодирования расширенного уровня, причем сигналы кодирования расширенного уровня состоят из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня; и
мультиплексирование и пакетирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и расширенного уровня, кодированных битов коэффициентов частотной области базового уровня и кодированных битов сигналов кодирования расширенного уровня, а затем передача в конец декодирования.
Для того чтобы решить вышеупомянутую задачу, предлагается также способ иерархического декодирования звука, включающий следующее:
демультиплексирование потока битов, переданного концом кодирования, декодирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; если информация обнаружения транзиентов указывает на наличие переходного сигнала, дополнительная перестановка индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня соответственно так что соответствующие им частоты выстраиваются от низких до высоких в соответствующих уровнях;
выполнение распределения битов на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, таким образом расчет индексов квантования огибающей амплитуды разностных сигналов базового уровня, и выполнение распределения битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня;
декодирование кодированных битов коэффициентов частотной области базового уровня и кодированных битов сигналов кодирования расширенного уровня соответственно в соответствии с числами распределения битов поддиапазонов кодирования базового уровня и поддиапазонов кодирования сигналов кодирования расширенного уровня для получения коэффициентов частотной области базового уровня и сигналов кодирования расширенного уровня, и перестановка сигналов кодирования расширенного уровня в порядке поддиапазонов и добавление к ним коэффициентов частотной области базового уровня для получения коэффициентов частотной области полного диапазона частот; и
если информация обнаружения транзиентов указывает на наличие установившегося сигнала, на коэффициентах частотной области полного диапазона частот непосредственное выполнение обратного временно-частотного преобразования для получения звукового сигнала для выдачи; а если информация обнаружения транзиентов указывает на наличие переходного сигнала, перестановка коэффициентов частотной области полного диапазона частот, затем разделение их на M групп коэффициентов частотной области, выполнение на каждой группе коэффициентов частотной области обратного временно-частотного преобразования, и расчет для получения окончательного звукового сигнала в соответствии с M группами сигналов временной области, которые получают путем преобразования.
Для того чтобы решить вышеупомянутую задачу, предлагается также способ иерархического кодирования звука для переходных сигналов, включающий следующее:
разделение звукового сигнала на M субкадров, выполнение на каждом субкадре временно-частотного преобразования, M групп коэффициентов частотной области, которые получают путем преобразования, создают коэффициенты полной частотной области текущего кадра, перестановка коэффициентов полной частотной области, так что соответствующие им поддиапазоны кодирования выстраиваются от низких частот до высоких частот; причем коэффициенты полной частотной области содержат коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, поддиапазоны кодирования содержат поддиапазоны кодирования базового уровня и поддиапазонов кодирования расширенного уровня, коэффициенты частотной области базового уровня создают несколько поддиапазонов кодирования базового уровня, а коэффициенты частотной области расширенного уровня создают несколько поддиапазонов кодирования расширенного уровня;
квантование и кодирование значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды и кодированных битов поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; причем значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы отдельно соответственно, а индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно;
выполнение распределения битов на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, а затем квантование и кодирование коэффициентов частотной области базового уровня для получения кодированных битов коэффициентов частотной области базового уровня;
обратное квантование вышеописанных коэффициентов частотной области на базовом уровне, на которых выполняют векторное квантование, и выполнение расчета разности между обратно квантованными коэффициентами частотной области и первоначальными коэффициентами частотной области, полученными после выполнения временно-частотного преобразования, для получения разностных сигналов базового уровня;
расчет индексов квантования огибающей амплитуды поддиапазонов кодирования разностных сигналов базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числами распределения битов поддиапазонов кодирования базового уровня;
выполнение распределения битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, и затем квантование и кодирование сигналов кодирования расширенного уровня для получения кодированных битов сигналов кодирования расширенного уровня, причем сигналы кодирования расширенного уровня состоят из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня; и
мультиплексирование и пакетирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и расширенного уровня, кодированных битов коэффициентов частотной области базового уровня и кодированных битов сигналов кодирования расширенного уровня, а затем передают в конец декодирования.
Для того чтобы решить вышеупомянутую задачу, предлагается также способ иерархического декодирования для переходных сигналов, включающий следующее:
демультиплексирование потока битов, переданный концом кодирования, декодирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, перестановка индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня соответственно, так что соответствующие им частоты выстраиваются от низких до высоких в соответствующих уровнях;
выполнение распределения битов на поддиапазонах кодирования базового уровня в соответствии с переставленными индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, таким образом расчет индексов квантования огибающей амплитуды разностных сигналов базового уровня;
выполнение распределения битов на поддиапазонах кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и переставленными индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня;
декодирование кодированных битов коэффициентов частотной области базового уровня и кодированных битов сигналов кодирования расширенного уровня соответственно в соответствии с числами распределения битов поддиапазонов кодирования базового уровня и поддиапазонов кодирования сигналов кодирования расширенного уровня для получения коэффициентов частотной области базового уровня и сигналов кодирования расширенного уровня, и перестановка сигналов кодирования расширенного уровня в порядке поддиапазонов и добавление к ним коэффициенты частотной области базового уровня для получения коэффициентов частотной области полного диапазона частот; и
перестановка коэффициентов частотной области полного диапазона частот, а затем разделение на M групп, выполнение на каждой группе коэффициентов частотной области обратного временно-частотного преобразования, и выполнения расчета для получения окончательного звукового сигнала в соответствии с M группами сигналов временной области, которые получают путем преобразования.
Для того чтобы решить вышеупомянутую задачу, предлагается также система иерархического кодирования звука, содержащая:
устройство генерирования коэффициентов частотной области, устройство расчета огибающей амплитуды, устройство квантования и кодирования огибающей амплитуды, устройство распределения битов базового уровня, устройство векторного квантования и кодирования коэффициентов частотной области базового уровня и мультиплексор потока битов; и содержащая также: устройство обнаружения транзиентов, устройство генерирования сигналов кодирования расширенного уровня, устройство генерирования огибающей амплитуды разностных сигналов, устройство распределения битов расширенного уровня и устройство векторного квантования и кодирования сигналов кодирования расширенного уровня; причем
устройство обнаружения транзиентов предназначено для выполнения обнаружения транзиентов на звуковом сигнале текущего кадра;
устройство генерирования коэффициентов частотной области соединено с устройством обнаружения транзиентов и предназначено для того, чтобы: если обнаружение транзиентов должно быть установившимся сигналом, на звуковом сигнале выполнять временно-частотное преобразование для получения коэффициентов полной частотной области; если обнаружение транзиентов должно быть переходным сигналом, разделять звуковой сигнал на M субкадров, на каждом субкадре выполнять временно-частотное преобразование, создавать коэффициенты полной частотной области текущего кадра M группами коэффициентов частотной области, полученными путем преобразования, переставлять коэффициенты полной частотной области, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот, причем коэффициенты полной частотной области содержат коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, поддиапазоны кодирования содержат поддиапазоны кодирования базового уровня и поддиапазоны кодирования расширенного уровня, коэффициенты частотной области базового уровня определяют несколько поддиапазонов кодирования базового уровня, а коэффициенты частотной области расширенного уровня определяют несколько поддиапазонов кодирования расширенного уровня;
устройство расчета огибающей амплитуды соединено с устройством генерирования коэффициентов частотной области и предназначено для расчета значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня;
устройство квантования и кодирования огибающей амплитуды соединено с устройством расчета огибающей амплитуды и устройством обнаружения транзиентов и предназначено для квантования и кодирования значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды и кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; причем если сигнал представляет собой установившийся сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы совместно, а если сигнал представляет собой переходной сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы отдельно соответственно, и индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно;
устройство распределения битов базового уровня соединено с устройством квантования и кодирования огибающей амплитуды и предназначено для выполнения распределения битов на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня для получения числа распределения битов поддиапазонов кодирования базового уровня;
устройство векторного квантования и кодирования коэффициентов частотной области базового уровня соединено с устройством генерирования коэффициентов частотной области, устройством квантования и кодирования огибающей амплитуды и устройство распределения битов базового уровня, и предназначено для того, чтобы: выполнять нормализацию, векторное квантование и кодирование на коэффициентах частотной области поддиапазонов кодирования базового уровня, используя числа распределения битов поддиапазонов кодирования базового уровня и квантованные значения огибающей амплитуды поддиапазонов кодирования базового уровня, восстановленные в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, для получения кодированных битов коэффициентов частотной области базового уровня;
устройство генерирования сигналов кодирования расширенного уровня соединено с устройством генерирования коэффициентов частотной области и устройством векторного квантования и кодирования коэффициентов частотной области базового уровня и предназначено для генерирования разностных сигналов базового уровня для получения сигналов кодирования расширенного уровня, состоящих из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня;
устройство генерирования огибающей амплитуды разностных сигналов соединено с устройством квантования и кодирования огибающей амплитуды и устройством распределения битов базового уровня и предназначено для получения индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числами распределения битов соответствующих поддиапазонов кодирования базового уровня;
устройство распределения битов расширенного уровня соединено с устройством генерирования огибающей амплитуды разностных сигналов и устройством квантования и кодирования огибающей амплитуды и предназначено для выполнения распределения битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня для получения чисел распределения битов поддиапазонов кодирования сигналов кодирования расширенного уровня;
устройство векторного квантования и кодирования сигналов кодирования расширенного уровня соединено с устройством квантования и кодирования огибающей амплитуды, устройством распределения битов расширенного уровня, устройством генерирования огибающей амплитуды разностных сигналов и устройством генерирования сигналов кодирования расширенного уровня и предназначено для того, чтобы: выполнять нормализацию, векторное квантование и кодирование на сигналах кодирования расширенного уровня, используя числа распределения битов поддиапазонов кодирования сигналов кодирования расширенного уровня и квантованные значения огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, восстановленные в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, для получения кодированных битов сигналов кодирования расширенного уровня;
мультиплексор потока битов соединен с устройством квантования и кодирования огибающей амплитуды, устройством векторного квантования и кодирования коэффициентов частотной области базового уровня, устройством векторного квантования и кодирования сигналов кодирования расширенного уровня и предназначен для пакетирования битов дополнительной информации базового уровня, кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня, кодированных битов коэффициентов частотной области базового уровня, битов дополнительной информации расширенного уровня, кодированных битов огибающей амплитуды поддиапазонов кодирования расширенного уровня и кодированных битов сигналов кодирования расширенного уровня.
Для того чтобы решить вышеупомянутую задачу, предлагается также система иерархического декодирования звука, содержащая: демультиплексор потока битов, устройство декодирования огибающей амплитуды, устройство распределения битов базового уровня и устройство декодирования и обратного квантования базового уровня; содержащая также: устройство генерирования огибающей амплитуды разностных сигналов, устройство распределения битов расширенного уровня, устройство декодирования и обратного квантования сигналов кодирования расширенного уровня, устройство восстановления коэффициентов частотной области полного диапазона частот, устройство заполнения шума и устройство восстановления звукового сигнала; причем
устройство декодирования огибающей амплитуды соединено с демультиплексором потока битов, и предназначено для того, чтобы: декодировать кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, которые выдаются демультиплексором потока битов, для получения индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; и если информация обнаружения транзиентов указывает на наличие переходного сигнала, дополнительно переставлять индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня в порядке частот от низких до высоких;
устройство распределения битов базового уровня соединено с устройством декодирования огибающей амплитуды и предназначено для выполнения распределения битов на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня для получения чисел распределения битов поддиапазонов кодирования базового уровня;
устройство декодирования и обратного квантования базового уровня соединено с демультиплексором потока битов, устройством декодирования огибающей амплитуды и устройством распределения битов базового уровня и предназначено для того, чтобы: выполнить расчет для получения квантованных значений огибающей амплитуды поддиапазонов кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, выполнять процесс декодирования, обратного квантования и обратной нормализации на кодированных битах коэффициентов частотной области базового уровня, выданных демультиплексором потока битов, используя числа распределения битов и квантованные значения огибающей амплитуды поддиапазонов кодирования базового уровня, для получения коэффициентов частотной области базового уровня;
устройство генерирования огибающей амплитуды разностных сигналов соединено с устройством декодирования огибающей амплитуды и устройством распределения битов базового уровня, и предназначено для того, чтобы: отыскивать статистическую таблицу величин коррекции индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числами распределения битов соответствующих поддиапазонов кодирования базового уровня для получения индексов квантования огибающей амплитуды разностных сигналов базового уровня;
устройство распределения битов расширенного уровня соединено с устройством генерирования огибающей амплитуды разностных сигналов и устройством декодирования огибающей амплитуды и предназначено для того, чтобы: выполнять распределение битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня для получения числа распределения битов поддиапазонов кодирования сигналов кодирования расширенного уровня;
устройство декодирования и обратного квантования сигналов кодирования расширенного уровня соединено с демультиплексором потока битов, устройством декодирования огибающей амплитуды, устройством распределения битов расширенного уровня и устройством генерирования огибающей амплитуды разностных сигналов и предназначено для того, чтобы: выполнить расчет для получения квантованных значений огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, используя индексы квантования огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, и выполнять процесс декодирования, обратного квантования и обратной нормализации на кодированных битах сигналов кодирования расширенного уровня, которые выдаются демультиплексором потока битов, используя числа распределения битов и квантованные значения огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, для получения сигналов кодирования расширенного уровня;
устройство восстановления коэффициентов частотной области полного диапазона частот соединено с устройством декодирования и обратного квантования базового уровня и устройством декодирования и обратного квантования сигналов кодирования расширенного уровня и предназначено для того, чтобы: переставлять сигналы кодирования расширенного уровня, выданные устройством декодирования и обратного квантования сигналов кодирования расширенного уровня, в порядке поддиапазонов, и затем добавлять к ним коэффициенты частотной области базового уровня, выданные устройством декодирования и обратного квантования базового уровня, для получения коэффициентов частотной области полного диапазона частот;
устройство заполнения шума соединено с устройством восстановления коэффициентов частотной области полного диапазона частот и устройством декодирования огибающей амплитуды и предназначено для выполнения заполнения шума на поддиапазонах, которым в процессе кодирования кодированные биты не выделены;
устройство восстановления звукового сигнала соединено с устройством заполнения шума и предназначено для того, чтобы: если информация обнаружения транзиентов указывает на наличие установившегося сигнала, непосредственно выполнять обратное временно-частотное преобразование на коэффициентах частотной области полного диапазона частот для получения звукового сигнала для выхода; а если информация обнаружения транзиентов указывает на наличие переходного сигнала, переставлять коэффициенты частотной области полного диапазона частот, затем делить на M групп коэффициентов частотной области, на каждой группе коэффициентов частотной области выполнять обратное временно-частотное преобразование и выполнять расчет для получения окончательного звукового сигнала в соответствии с M группами сигналов временной области, полученных преобразованием.
В заключение, в настоящем изобретении благодаря внедрению способа обработки для кадров переходных сигналов в способах иерархического кодирования и декодирования звука выполняют сегментированное временно-частотное преобразование на кадрах переходных сигналов, и затем коэффициенты частотной области, полученные преобразованием, переставляют соответственно в пределах базового уровня и в пределах расширенного уровня, чтобы выполнить такие же последующие процессы кодирования, такие, как распределение битов, кодирование коэффициентов частотной области и т.д., как и процессы кодирования на кадрах установившихся сигналов, тем самым повышая эффективность кодирования кадров переходных сигналов и качество иерархического кодирования и декодирования звука.
Краткое описание графического материала
ФИГ.1 представляет собой принципиальную схему предлагаемого способа иерархического кодирования звука.
ФИГ.2 представляет собой блок-схему способа иерархического кодирования звука в соответствии с одним вариантом осуществления настоящего изобретения.
ФИГ.3 представляет собой блок-схему предлагаемого способа выполнения коррекции распределения битов после векторного квантования.
На ФИГ.4 приведено схематическое представление иерархически кодированного потока битов в соответствии с настоящим изобретением.
На ФИГ.5 приведено схематическое представление зависимости между иерархией в части частотного диапазона и иерархией в части битрейта в соответствии с настоящим изобретением.
ФИГ.6 представляет собой блок-схему предлагаемой системы иерархического кодирования звука, согласно настоящему изобретению.
ФИГ.7 представляет собой принципиальную схему предлагаемого способа иерархического декодирования звука.
ФИГ.8 представляет собой блок-схему способа иерархического декодирования звука в соответствии с одним вариантом осуществления настоящего изобретения.
ФИГ.9 представляет собой блок-схему предлагаемой системы иерархического декодирования звука, согласно настоящему изобретению.
Предпочтительные варианты осуществления настоящего изобретения
Основная идея предлагаемых способа и системы иерархического кодирования и декодирования звука заключается в том, чтобы путем введения способа обработки для кадров переходных сигналов в способах иерархического кодирования и декодирования звука осуществлять сегментированное временно-частотное преобразование на кадрах переходных сигналов, а затем коэффициенты частотной области, полученные путем преобразования в пределах базового уровня и в пределах расширенного уровня соответственно, переставляют так, чтобы выполнить такие же последующие процессы кодирования, такие, как распределение битов, кодирование коэффициентов частотной области и т.д., как и процессы кодирования на кадрах установившегося сигнала, тем самым повышая эффективность кодирования кадров переходных сигналов и качество иерархического кодирования и декодирования звука.
Способ и система кодирования
Как показано на ФИГ. 1, исходя из вышеупомянутой идеи, обладающей признаками изобретения, предлагаемый способ иерархического кодирования звука включает следующие стадии.
На стадии 10 на звуковом сигнале текущего кадра выполняют обнаружение транзиентов (переходных процессов).
На стадии 20 звуковой сигнал обрабатывают в соответствии с результатом обнаружения транзиентов для получения коэффициентов частотной области базового уровня и расширенного уровня.
В частности, если обнаружение транзиентов должно быть установившимся сигналом, на звуковом сигнале выполняют временно-частотное преобразование для получения коэффициентов полной частотной области; если обнаружение транзиентов должно быть переходным сигналом, звуковой сигнал разделяют на M субкадров, на каждом субкадре выполняют временно-частотное преобразование, и M групп коэффициентов частотной области, которые получают путем преобразования, определяют коэффициенты полной частотной области текущего кадра; и коэффициенты полной частотной области переставляют так, что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот; причем коэффициенты полной частотной области содержат коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, поддиапазоны кодирования содержат поддиапазоны кодирования базового уровня и поддиапазоны кодирования расширенного уровня, коэффициенты частотной области базового уровня создают несколько поддиапазонов кодирования базового уровня, а коэффициенты частотной области расширенного уровня создают несколько поддиапазонов кодирования расширенного уровня.
Если обнаружение транзиентов должно быть переходным сигналом, способ получения коэффициентов полной частотной области текущего кадра включает следующее:
объединение TV-точечного дискретизированного сигнала x(n) временной области текущего кадра и N-точечного дискретизированного сигнала xold(n) временной области последнего кадра в 2N-точечный дискретизированный сигнал временной области, а затем выполнение взвешивания с помощью окна и обработка по подавлению помех дискретизации во временной области на для получения N-точечного дискретизированного сигнала временной области; и
обратная обработка на сигнале временной области , затем добавление последовательности нулей на обоих концах сигнала соответственно, разделение удлиненного сигнала на M перекрывающихся субкадров, а затем выполнение взвешивания с помощью окна, обработка по подавлению помех дискретизации во временной области и временно-частотное преобразование на сигнале временной области каждого субкадра для получения M групп коэффициентов частотной области, и затем создание коэффициентов полной частотной области текущего кадра.
Если обнаружение транзиентов должно быть переходным сигналом, и если коэффициенты частотной области переставляют, коэффициенты частотной области переставляют, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот в пределах базового уровня и в пределах расширенного уровня соответственно.
На стадии 30 значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантуют и кодируют для получения индексов квантования огибающей амплитуды и кодированных битов поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня.
В частности, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантуют и кодируют для получения индексов квантования огибающей амплитуды и кодированных битов поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; причем, если это установившийся сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы совместно; а если это переходной сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантуют отдельно, и индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно.
Перестановка индексов квантования огибающей амплитуды, в частности, включает:
перестановку индексов квантования огибающей амплитуды поддиапазонов кодирования, принадлежащих одному и тому же субкадру, вместе, так что соответствующие им частоты выстроены в порядке возрастания или убывания частот, и соединение индексов квантования огибающей амплитуды на границах субкадров соединяют путем использования двух поддиапазонов кодирования, которые содержат одноранговые частоты и принадлежат двум субкадрам соответственно.
Если обнаружение транзиентов должно быть установившимся сигналом, на индексах квантования огибающей амплитуды поддиапазонов кодирования базового уровня, полученных квантованием, выполняют кодирование по методу Хаффмана, и если общее число битов, израсходованных после кодирования по методу Хаффмана, выполненного на индексах квантования огибающей амплитуды всех поддиапазонов кодирования базового уровня, меньше общего числа битов, израсходованных после натурального кодирования, выполненного на индексах квантования огибающей амплитуды всех поддиапазонов кодирования базового уровня, используют кодирование по методу Хаффмана, в противном случае используют натуральное кодирование, и устанавливают флажок кодирования по методу Хаффмана огибающей амплитуды поддиапазонов кодирования базового уровня; и на индексах квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, полученных квантованием, выполняют кодирование по методу Хаффмана, и если общее число битов, израсходованных после кодирования по методу Хаффмана, выполненного на индексах квантования огибающей амплитуды всех поддиапазонов кодирования расширенного уровня, меньше общего числа битов, израсходованных после натурального кодирования, выполненного на индексах квантования огибающей амплитуды всех поддиапазонов кодирования расширенного уровня, используют кодирование по методу Хаффмана, в противном случае используют натуральное кодирование, и устанавливают флажок кодирования по методу Хаффмана огибающей амплитуды поддиапазонов кодирования расширенного уровня.
На стадии 40 на поддиапазонах кодирования базового уровня выполняют распределение битов в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, а затем коэффициенты частотной области базового уровня квантуют и кодируют для получения кодированных битов коэффициентов частотной области базового уровня.
Способ получения кодированных битов коэффициентов частотной области базового уровня включает следующее:
выполнение нормализации на коэффициентах частотной области базового уровня в соответствии с квантованными значениями огибающей амплитуды поддиапазонов кодирования базового уровня, восстановленными по индексам квантования огибающей амплитуды поддиапазонов кодирования базового уровня, и выполнение квантования и кодирования, используя метод пирамидально-решетчатого векторного квантования и метод сферически-решетчатого векторного квантования соответственно, в соответствии с числом распределения битов поддиапазонов кодирования для получения кодированных битов коэффициентов частотной области базового уровня;
выполнение кодирования по методу Хаффмана на индексах квантования базового уровня, полученных с использованием пирамидально-решетчатого векторного квантования;
если общее число битов, израсходованных после кодирования по методу Хаффмана, выполненного на всех индексах квантования, полученных с использованием пирамидально-решетчатого векторного квантования, меньше общего числа битов, израсходованных после натурального кодирования, выполненного на всех индексах квантования, полученных с использованием пирамидально-решетчатого векторного квантования, используют кодирование по методу Хаффмана, выполняют коррекцию на числах распределения битов поддиапазонов кодирования базового уровня с использованием числа битов, сэкономленных кодированием по методу Хаффмана, числа битов, оставшихся после первого распределения битов, и общего числа битов, сэкономленных кодированием всех поддиапазонов кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1 или 2, и снова выполняют векторное квантование и кодирование по методу Хаффмана на поддиапазонах кодирования базового уровня, для которых числа распределения битов откорректированы; в противном случае используют натуральное кодирование, выполняют коррекцию на числах распределения битов поддиапазонов кодирования базового уровня с использованием числа битов, оставшихся после первого распределения битов, и общего числа битов, сэкономленных кодированием всех поддиапазонов кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1 или 2, и снова выполняют векторное квантование и натуральное кодирование на поддиапазонах кодирования базового уровня, для которых числа распределения битов откорректированы.
На стадии 50 вышеописанные коэффициенты частотной области, на которых выполняют векторное квантование на базовом уровне, квантуют обратно, и выполняют расчет разности между обратно квантованными коэффициентами частотной области и первоначальными коэффициентами частотной области, полученными после выполнения временно-частотного преобразования, для получения разностных сигналов базового уровня.
На стадии 60 рассчитывают индексы квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числами распределения битов поддиапазонов кодирования базового уровня.
Индексы квантования огибающей амплитуды поддиапазонов кодирования разностных сигналов базового уровня рассчитывают следующим способом:
рассчитывают величину коррекции индекса квантования огибающей амплитуды разностного сигнала базового уровня в соответствии с числом распределения битов поддиапазона кодирования базового уровня; и рассчитывают разность между индексом квантования огибающей амплитуды поддиапазона кодирования базового уровня и величиной коррекции индекса квантования огибающей амплитуды разностного сигнала базового уровня, соответствующего вышеупомянутому поддиапазону кодирования, для получения индекса квантования огибающей амплитуды разностного сигнала базового уровня.
Величина коррекции индекса квантования огибающей амплитуды разностного сигнала базового уровня каждого из поддиапазонов кодирования больше или равна 0 и не снижается, при увеличении числа распределения битов соответствующего поддиапазона кодирования базового уровня; и
если число распределения битов некоего поддиапазона кодирования базового уровня равно 0, величина коррекции индекса квантования огибающей амплитуды разностного сигнала базового уровня равна 0, а если число распределения битов некоего поддиапазона кодирования базового уровня является определенным максимальным числом распределения битов, величина огибающей амплитуды соответствующего разностного сигнала базового уровня равна 0.
На стадии 70 на поддиапазонах кодирования сигналов кодирования расширенного уровня выполняют распределение битов в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, а затем сигналы кодирования расширенного уровня квантуют и кодируют для получения кодированных битов сигналов кодирования расширенного уровня, причем сигналы кодирования расширенного уровня состоят из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня.
Способ получения кодированных битов сигналов кодирования расширенного уровня включает следующее:
выполнение нормализации на сигналах кодирования расширенного уровня в соответствии с квантованными значениями огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, восстановленными по индексам квантования огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, и выполнение квантования и кодирования в соответствии с числами распределения битов различных поддиапазонов кодирования сигналов кодирования расширенного уровня, используя метод пирамидально-решетчатого векторного квантования и метод сферически-решетчатого векторного квантования соответственно, для получения кодированных битов сигналов кодирования расширенного уровня.
В процессе выполнения квантования и кодирования на коэффициентах частотной области базового уровня и сигналах кодирования расширенного уровня, подлежащий квантованию вектор поддиапазона кодирования, число распределения битов которого ниже порога классификации, квантуют и кодируют методом пирамидально-решетчатого векторного квантования, а подлежащий квантованию вектор поддиапазона кодирования, число распределения битов которого выше порога классификации, квантуют и кодируют методом сферически-решетчатого векторного квантования;
число распределения битов - это число битов, выделенных одному коэффициенту в одном поддиапазоне кодирования.
Следует понимать, что в отношении сигналов кодирования расширенного уровня сигналы кодирования состоят из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня; и, в некотором смысле, разностные сигналы базового уровня состоят также из коэффициентов.
Кодирование по методу Хаффмана выполняют на всех индексах квантования расширенного уровня, полученных с использованием пирамидально-решетчатого векторного квантования;
если общее число битов, израсходованных после кодирования по методу Хаффмана, выполненного на всех индексах квантования, полученных с использованием пирамидально-решетчатого векторного квантования, меньше общего числа битов, израсходованных после натурального кодирования, выполненного на всех индексах квантования, полученных с использованием пирамидально-решетчатого векторного квантования, используют кодирование по методу Хаффмана, выполняют коррекцию на числах распределения битов поддиапазонов кодирования расширенного уровня с использованием битов, сэкономленных кодированием по методу Хаффмана, числа битов, оставшихся после первого распределения битов, и общего числа битов, сэкономленных кодированием всех поддиапазонов кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1 или 2, и снова выполняют векторное квантование и кодирование по методу Хаффмана на поддиапазонах кодирования сигналов кодирования расширенного уровня, для которых числа распределения битов откорректированы; в противном случае используют натуральное кодирование, выполняют коррекцию на числах распределения битов поддиапазонов кодирования сигналов кодирования расширенного уровня с использованием числа битов, оставшихся после первого распределения битов, и общего числа битов, сэкономленных кодированием всех поддиапазонов кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1 или 2, и снова выполняют векторное квантование и натуральное кодирование на поддиапазонах кодирования сигналов кодирования расширенного уровня, для которых числа распределения битов откорректированы.
При выполнении распределения битов на поддиапазонах кодирования базового уровня и поддиапазонах кодирования сигналов кодирования расширенного уровня, распределение битов с переменной длиной шага выполняют на различных поддиапазонах кодирования в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования.
В процессе распределения битов длина шага равна 1 бит при выделении одного бита поддиапазону кодирования, число распределения битов которого равно 0, и длина шага, важность которого после распределения битов снижается, равна 1; длина шага для распределения битов равна 0,5 бита, если бит дополнительно выделен поддиапазону кодирования, число распределения битов которого больше 0 и ниже порога классификации, и длина шага, важность которого после распределения битов снижается, равна 0,5; и длина шага для распределения битов равна 1, если бит дополнительно выделен поддиапазону кодирования, число распределения битов которого выше или равно порогу классификации, и длина шага, важность которого после распределения битов снижается, равна 1.
Процесс выполнения коррекции на числах распределения битов поддиапазонов кодирования выглядит следующим образом:
рассчитывают число битов, доступных для коррекции; и
отыскивают поддиапазон кодирования с максимальной важностью во всех поддиапазонах кодирования, если число битов, выделенных этому поддиапазону кодирования, достигло максимального значения, которое можно выделять и выдавать, корректируют важность этого поддиапазона кодирования, делая ее наинизшей, и для этого поддиапазона кодирования больше не выполняют коррекцию числа распределения битов; в противном случае выполняют коррекцию выделения битов на этом поддиапазоне кодирования с максимальной важностью.
В процессе коррекции выделения битов 1 бит выделяют поддиапазону кодирования, в котором число распределения битов равно 0, и важность после распределения битов уменьшается на 1; 0,5 бита выделяют поддиапазону кодирования, в котором число распределения битов более 0 и менее 5, и важность после распределения битов уменьшается на 0,5; и 1 бит выделяют поддиапазону кодирования, в котором число распределения битов более 5, и важность после распределения битов уменьшается на 1.
Если число распределения битов корректируют каждый раз, к количеству раз итерации count коррекции распределения битов прибавляют 1, и если количеству раз итерации count коррекции распределения битов достигает предварительно установленного верхнего предела, или если оставшееся число битов, доступное для коррекции, меньше числа битов, требуемого коррекцией выделения битов, процесс коррекции распределения битов заканчивают.
На стадии 80 кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня и расширенного уровня, кодированные биты коэффициентов частотной области базового уровня и кодированные биты сигналов кодирования расширенного уровня мультиплексируют и пакетируют, а затем передают в конец декодирования.
Мультиплексирование и пакетирование выполняют в соответствии со следующим форматом потока битов:
во-первых, записывают биты дополнительной информации базового уровня сзади заголовка кадра потоков битов, записывают в мультиплексор потока битов (MUX) кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня, и затем записывают в MUX кодированные биты коэффициентов частотной области базового уровня;
затем записывают в MUX биты дополнительной информации расширенного уровня, затем записывают в MUX кодированные биты огибающей амплитуды поддиапазонов кодирования коэффициентов частотной области расширенного уровня, и затем записывают в MUX кодированные биты сигналов кодирования расширенного уровня; и
передают число битов, которые отвечают требованию к битрейту, в конец декодирования в соответствии с требуемым битрейтом.
Далее приводится подробное описание настоящего изобретения в сочетании с прилагаемым графическим материалом на примерах вариантов его осуществления.
ФИГ.2 представляет собой блок-схему способа иерархического кодирования звука в соответствии с первым вариантом осуществления настоящего изобретения. В этом варианте осуществления предлагаемый способ иерархического кодирования звука иллюстрируется, в частности, аудиопотоком с длиной кадра 20 мс и частотой дискретизации 32 кГц, например. Предлагаемый способ применим и при других длинах кадра и частотах дискретизации. Как показано на ФИГ.2, способ включает следующие стадии.
На стадии 101 выполняют обнаружение транзиентов на аудиопотоке с длиной кадра 20 мс и частотой дискретизации 32 кГц, чтобы решить, является ли этот кадр звукового сигнала переходным сигналом или установившимся сигналом, и если кадр сигнала создают как переходной сигнал, бит флажка обнаружения транзиентов Flag_jransient устанавливают как Flag_jransient - 1; а если кадр сигнала создают как установившийся сигнал, бит флажка обнаружения транзиентов Flag_jransient устанавливают как Flag_jransient=0.
Технология обнаружения транзиентов, используемая в настоящем изобретении, может представлять собой простой метод порогового обнаружения или же некоторые более сложные технологии, включая без ограничения метод перцептивной энтропии, метод мультидетектирования и т.п.
На стадии 102 выполняют временно-частотное преобразование на аудиопотоке с длиной кадра 20 мс и частотой дискретизации 32 кГц для получения N-точечных коэффициентов частотной области в дискретных точках частотной области.
Конкретный режим реализации данной стадии может быть следующим.
2N-точечный дискретизированный сигнал временной области x(n) состоит из N-точечного дискретизированного сигнала x(n)временной области текущего кадра и N-точечного дискретизированного сигнала временной области x old(n) последнего кадра, и 2N-точечный дискретизированный сигнал временной области может быть представлен следующей формулой:
На выполняют процесс взвешивания с помощью окна для получения взвешенного сигнала:
где h(n) - оконная функция, которая определяется как:
Взвешенный окном кадр сигнала x w, длиной 40 мс преобразуют в сигнал с длиной кадра 20 мс, используя обработку с наложением спектра во временной области,
и способ работы выглядит следующим образом:
где
,
Если бит флажка обнаружения транзиентов Flag_trartsient равен 0, это указывает, что текущий кадр представляет собой установившийся сигнал, и на сигнале подавления помех дискретизации во временной области непосредственно выполняют IV класс дискретного косинусного преобразования (преобразования ДКПIV) или другие классы дискретного косинусного преобразования для получения следующего коэффициента частотной области:
Если бит флажка обнаружения транзиентов Flag_jransient равен 1, это указывает, что текущий кадр представляет собой переходной сигнал, и на сигнале с наложением спектра во временной области необходимо вначале выполнить обратную обработку, чтобы уменьшить паразитические реакции временной области и частотной области. Затем на обоих концах сигнала соответственно добавляют последовательность нулей длиной N/S, удлиненный сигнал разделяют на 4 субкадра, которые перекрываются и имеют одинаковую длину. Длина каждого субкадра равна N/2, и субкадры перекрываются с коэффициентом перекрытия 50%. Взвешивание с помощью окна выполняют на каждом из двух промежуточных субкадров, используя синусное окно длиной N/2, а для каждого из двух субкадров на обоих концах взвешивание с помощью окна выполняют на внутренней половине субкадра, используя синусное окно длиной N/4. Затем на каждом взвешенном окном субкадре сигнала выполняют обработку по подавлению помех дискретизации во временной области и преобразование ДКПIV для получения 4 групп коэффициентов частотной области длиной N/4 и коэффициента частотной области Y(k), k=Q, , N-1 с общей длиной N.
Кроме того, если длина кадра равна 20 мс, и частота дискретизации - 32 кГц, то N=640 (соответствующее N можно рассчитать и для другой длины кадра и другой частоты дискретизации).
На стадии 103 N-точечные коэффициенты частотной области разделяют на несколько поддиапазонов кодирования и рассчитывают огибающие амплитуды частотной области (сокращенно - огибающую амплитуды) для всех поддиапазонов кодирования.
Разделение коэффициентов частотной области на поддиапазоны кодирования может быть четным или нечетным, и в данном варианте осуществления оно является нечетным.
Настоящую стадию могут осуществлять, используя следующие подстадии.
На подстадии 103а коэффициенты частотной области в частотном диапазоне, подлежащем кодированию, разделяют на L поддиапазонов (которые могут именоваться «поддиапазонами кодирования»).
В данном варианте осуществления частотный диапазон, подлежащий кодированию, составляет 0-13,6 кГц, и поддиапазоны могут получать нечетным делением в соответствии с характеристикой восприятия человеческим ухом. В таблицах 1 и 2 приводится один конкретный режим деления, когда бит флажка обнаружения транзиентов Flag_jransient равен 0 и 1 соответственно.
В таблицах 1 и 2 коэффициенты частотной области в частотном диапазоне 0~13,6 кГц разделены на 30 поддиапазонов кодирования, т.е., L=30; и коэффициенты частотной области выше 13,6 кГц установлены как 0.
Кроме того, в данном варианте осуществления делением получают частотный диапазон базового уровня. Если бит флажка обнаружения транзиентов Flag_transient равен 0 и 1, поддиапазоны, пронумерованные 0-17 в таблицах 1 и 2, выбирают как поддиапазоны базового уровня соответственно, и число поддиапазонов кодирования базового уровня L_core=S. Частотный диапазон базового уровня: 0~7 кГц.
Если бит флажка обнаружения транзиентов Flag_transient равен 1, 4 группы коэффициентов частотной области в частотном диапазоне, подлежащем кодированию, разделяют на поддиапазоны, и затем коэффициенты частотной области в частотном диапазоне базового уровня и частотном диапазоне расширенного уровня переставляют соответственно, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот. Если оставшихся коэффициентов частотной области в группе недостаточно, чтобы образовать один поддиапазон (например, как в таблице 2 менее 16), для дополнения используют коэффициенты частотной области с такими же или подобными частотами в следующей группе коэффициентов частотной области, такие, как поддиапазоны 16 и 17 базового уровня в таблице 2. Поддиапазоны кодирования в таблице 2 являются одним конкретным результатом выполненной перестановки.
Понятно, что коэффициенты частотной области, образующие поддиапазоны кодирования базового уровня, именуются коэффициентами частотной области базового уровня, а коэффициенты частотной области, образующие поддиапазоны кодирования расширенного уровня, именуются коэффициентами частотной области расширенного уровня; или можно также описать, что коэффициенты частотной области разделены на коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, коэффициенты частотной области базового уровня разделены на несколько поддиапазонов кодирования базового уровня, а коэффициенты частотной области расширенного уровня разделены на несколько поддиапазонов кодирования расширенного уровня. Понятно, что порядок деления уровня коэффициентов частотной области (именуемого базовым уровнем и расширенным уровнем) и деления поддиапазонов кодирования не влияет на реализацию настоящего изобретения.
Таблица 1. | |||
Пример деления поддиапазонов, если бит флажка обнаружения транзиентов Flag_transient равен 0 | |||
Порядковый номер поддиапазона | Индекс начального коэффициента частотной области (LIndex) | Индекс конечного коэффициента частотной области (HIndex) | Ширина поддиапазона (BandWidth) |
0 | 0 | 15 | 16 |
1 | 16 | 31 | 16 |
2 | 32 | 47 | 16 |
3 | 48 | 63 | 16 |
4 | 64 | 79 | 16 |
5 | 80 | 95 | 16 |
6 | 96 | 111 | 16 |
7 | 112 | 127 | 16 |
8 | 128 | 143 | 16 |
9 | 144 | 159 | 16 |
10 | 160 | 175 | 16 |
11 | 176 | 191 | 16 |
12 | 192 | 207 | 16 |
13 | 208 | 223 | 16 |
14 | 224 | 239 | 16 |
15 | 240 | 255 | 16 |
16 | 256 | 271 | 16 |
17 | 272 | 287 | 16 |
18 | 288 | 303 | 16 |
19 | 304 | 319 | 16 |
20 | 320 | 335 | 16 |
21 | 336 | 351 | 16 |
22 | 352 | 367 | 16 |
23 | 368 | 383 | 16 |
24 | 384 | 399 | 16 |
25 | 400 | 415 | 16 |
26 | 416 | 447 | 32 |
27 | 448 | 479 | 32 |
28 | 480 | 511 | 32 |
29 | 512 | 543 | 32 |
Таблица 2. | |||
Пример деления поддиапазонов, если бит флажка обнаружения транзиентов Flag_transient равен 1 | |||
Порядковый номер поддиапазона | Индекс начального коэффициента частотной области (LIndex) | Индекс конечного коэффициента частотной области (HIndex) | Ширина поддиапазона {BandWidth) |
0 | 0 | 15 | 16 |
1 | 160 | 175 | 16 |
2 | 320 | 335 | 16 |
3 | 480 | 495 | 16 |
4 | 16 | 31 | 16 |
5 | 176 | 191 | 16 |
6 | 336 | 351 | 16 |
7 | 496 | 511 | 16 |
8 | 32 | 47 | 16 |
9 | 192 | 207 | 16 |
10 | 352 | 367 | 16 |
11 | 512 | 527 | 16 |
12 | 48 | 63 | 16 |
13 | 208 | 223 | 16 |
14 | 368 | 383 | 16 |
15 | 528 | 543 | 16 |
16 | 64, 65, 66, 67, 68, 69, 70, 71, 224, 225, 226, 227, 228, 229, 230, 231 | 16 | |
17 | 384, 385, 386, 387, 388, 389, 390, 391, 544, 545, 546, 547, 548, 549, 550, 551 | 16 | |
18 | 72 | 87 | 16 |
19 | 232 | 247 | 16 |
20 | 392 | 407 | 16 |
21 | 552 | 567 | 16 |
22 | 88 | 103 | 16 |
23 | 248 | 263 | 16 |
24 | 408 | 423 | 16 |
25 | 568 | 583 | 16 |
26 | 104 | 135 | 32 |
27 | 264 | 295 | 32 |
28 | 424 | 455 | 32 |
29 | 584 | 615 | 32 |
На подстанции 103b рассчитывают значения огибающей амплитуды поддиапазонов кодирования по следующей формуле:
где LIndex(j) и HIndex(j) - индекс начального коэффициента частотной области и индекс конечного коэффициента частотной области j-го поддиапазона кодирования соответственно, и их конкретные значения приведены в таблице 1 (если бит флажка обнаружения транзиентов Flag_transient равен 0) и таблице 2 (если бит флажка обнаружения транзиентов Flag_transient равен 1).
На стадии 104, если бит флажка обнаружения транзиентов Flag_jransient равен 1, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы и кодированы для получения индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня и кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, причем кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня и кодированные биты огибающей амплитуды поддиапазонов кодирования расширенного уровня должны передаваться в мультиплексор потока битов (MUX).
Если бит флажка обнаружения транзиентов Flag_transient равен 0, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы совместно; а если бит флажка обнаружения транзиентов Flag_transient равен 1, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы отдельно соответственно, и индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно.
Ниже иллюстрируется процесс квантования и кодирования огибающих амплитуды поддиапазонов кодирования базового уровня.
Огибающую амплитуды каждого поддиапазона кодирования квантуют по формуле (7) для получения индекса квантования огибающей амплитуды каждого поддиапазона кодирования, т.е., выходного значения квантователя:
где
представляет округление в меньшую сторону. Thq (0) - индекс квантования огибающей амплитуды первого поддиапазона кодирования базового уровня, и его диапазон ограничен пределами [-5, 34], т.е., если Thq(0)=-5, принимают Thq (0)=-5; и если Thq(0)>34, принимают Thq (0)=34.
Если бит флажка обнаружения транзиентов Flag_transient равен 1, индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня переставляют, так что последующее дифференциальное кодирование индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня обладает более высокой эффективностью.
Конкретный пример перестановки показан в таблице 3.
Таблица 3. | |
Пример перестановки огибающих амплитуды базового уровня | |
Порядковый номер поддиапазона | Соответствующий порядковый номер после перестановки |
0 | 0 |
1 | 8 |
2 | 9 |
3 | 17 |
4 | 1 |
5 | 7 |
6 | 10 |
7 | 16 |
8 | 2 |
9 | 6 |
10 | 11 |
11 | 15 |
12 | 3 |
13 | 5 |
14 | 12 |
15 | 14 |
16 | 4 |
17 | 13 |
Индекс квантования огибающей амплитуды Thq(0) первого поддиапазона кодирования кодируют, используя 6 битов, т.е., расходуя 6 битов.
Дифференциальные рабочие, значения между индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня рассчитывают по следующей формуле:
Огибающую амплитуды могут корректировать следующим образом для обеспечения, чтобы диапазон AThq (j) был в пределах [-15, 16]:
если AThq (j)<-15, то принимают, что
AThq (j)=-15, Thq(j)=Thq(j+1)+15, j=L_core-2, , 0;
если AThq(j)>16, то принимают, что
AThq(j)=16, Th q(j+l)=Thq(j)+l6, j=0, , L_core-2.
На AThq(j), j=0, , L_core-2 выполняют кодирование по методу Хаффмана, и рассчитывают число битов, израсходованных за раз (именуемых кодированными битами Хаффмана). Если число кодированных битов Хаффмана за раз превышает или равно числу битов, выделенных фиксировано (которых в данном варианте осуществления больше или равно (L_core-1)×5), режим кодирования по методу Хаффмана не используют для кодирования AThq(j),j=0, , L_core-2, и бит флажка кодирования по методу Хаффмана устанавливают как Flag_huff_rms_core=0; в противном случае, кодирование по методу Хаффмана используют для кодирования AThq (j),j=0, , L_core-2, и бит флажка кодирования по методу Хаффмана устанавливают как Flag_huff_rms_core=1. Кодированные биты индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня (т.е., кодированные биты дифференциальных значений огибающей амплитуды и огибающей амплитуды первого поддиапазона) и бит флажка кодирования по методу Хаффмана должны быть переданы в MUX.
Ниже иллюстрируется процесс квантования и кодирования огибающих амплитуды поддиапазонов кодирования расширенного уровня.
Если бит флажка обнаружения транзиентов Flag_transient равен 0, выполняют кодирование по методу Хаффмана дифференциальных значениях огибающей амплитуды Thq(j), j=L_core-1, , L-2, и рассчитывают число битов, израсходованных за раз (именуемых кодированными битами Хаффмана). Если число кодированных битов Хаффмана за раз превышает или равно числу битов, выделенных фиксировано (которых в данном варианте осуществления больше или равно (L-L_core)×5), режим кодирования по методу Хаффмана не используют для кодирования Thq=L_core-1, , L-2, и бит флажка кодирования по методу Хаффмана устанавливают как Flag_huff_rms_ext=0; в противном случае, кодирование по методу Хаффмана используют для кодирования Thq(j), j=L_core-1, , L-2, и бит флажка кодирования по методу Хаффмана устанавливают как Flag_huff_rms_ext=1.
Если бит флажка обнаружения транзиентов Flag_transient равен 1, огибающие амплитуды поддиапазонов кодирования расширенного уровня квантуют по следующей формуле для получения индексов квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, т.е., выходных значений квантователя:
где Thq(L_core) - индекс квантования огибающей амплитуды первого поддиапазона кодирования, составленного коэффициентами частотной области расширенного уровня, и его диапазон ограничен пределами [-5, 34]. Индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют, так что следующее дифференциальное кодирование индексов квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня обладает более высокой эффективностью. Конкретный пример перестановки показан в таблице 4.
Таблица 4. | |
Пример перестановки огибающих амплитуды поддиапазонов кодирования расширенного уровня | |
Порядковый номер поддиапазона | Соответствующий порядковый номер после перестановки |
18 | 18 |
19 | 23 |
20 | 24 |
21 | 29 |
22 | 19 |
23 | 22 |
24 | 25 |
25 | 28 |
26 | 20 |
27 | 21 |
28 | 26 |
29 | 27 |
Индекс квантования огибающей амплитуды Thq(L_core) первого поддиапазона кодирования, составленного коэффициентами частотной области расширенного уровня, кодируют, используя 6 битов, т.е., расходуя 6 битов. Дифференциальные рабочие значения между индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, составленных коэффициентами частотной области расширенного уровня, рассчитывают по следующей формуле:
Огибающую амплитуды могут корректировать следующим образом для обеспечения, чтобы диапазон Thq(j) был в пределах [-15, 16]:
если Thq(j)<-5, принимают, что Thq=-15, Thq(j)=Thq(j+1)+15, j=L_core, , L-2; и если AThq(j)>16, принимают, что Thq(j)=16, Thq(j+1)=Thq (j)+16, j=L_core, , L-2. Затем на Thq(j),j=L_core, , L-2 выполняют кодирование по методу Хаффмана, и рассчитывают число битов, израсходованных за раз (именуемых кодированными битами Хаффмана). Если число кодированных битов Хаффмана за раз превышает или равно числу битов, выделенных фиксировано (которых в данном варианте осуществления больше или равно (L-L_core-1)×5), режим кодирования по методу Хаффмана не используют для кодирования Thq/(j), j=L_core, , L-2, и бит флажка кодирования по методу Хаффмана устанавливают как Flag_huff_rms_ext=0; в противном случае, кодирование по методу Хаффмана используют для кодирования Thq(j),j=L_core, , L-2, и бит флажка кодирования по методу Хаффмана устанавливают как Flag_huff_rms_ext.
Кодированные биты индексов квантования огибающей амплитуды и бит флажка кодирования по методу Хаффмана расширенного уровня должны быть переданы в MUX.
На стадии 105 рассчитывают начальные значения важности поддиапазонов кодирования базового уровня в соответствии с теорией «битовые затраты-искажение» и информацией огибающей амплитуды поддиапазонов кодирования базового уровня, а затем выполняют распределение битов базового уровня в соответствии с важностью поддиапазонов кодирования базового уровня.
Данную стадию могут осуществлять следующими подстадиями.
На подстадии 105а рассчитывают среднее значение расходования битов одного коэффициента частотной области базового уровня.
Число битов bits_available_core, которые используют для кодирования базового уровня, вычитают из общего числа битов bits_available, которое может обеспечиваться длиной кадра 20 мс, и число оставшихся битов bits_eft_core, доступных для кодирования коэффициентов частотной области базового уровня, могут получать путем вычитания числа битов bit_sides_core, израсходованных побочной информацией базового уровня, и числа битов bits_Th_core, израсходованных индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, т.е.:
Побочная информация содержит биты флажков кодирования по методу Хаффмана Flag_huff_rms_core, Flag_huff_PLVQ_core и количество раз итерации count_core. Flag_huff_rms_core используют для указания, используют ли кодирование по методу Хаффмана для индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня; Flag_huff_PLVQ_core используют для указания, используют ли кодирование по методу Хаффмана, если на коэффициентах частотной области базового уровня выполняют направленное кодирование, и количество раз итерации count_core используют для указания количество раз итерации, если распределение битов базового уровня откорректировано (более подробное описание см. на последующих стадиях).
Среднее значение расходования битов одного коэффициента частотной области базового уровня рассчитывают как :
где L_core - число поддиапазонов кодирования базового уровня.
На подстадии 105b рассчитывают оптимальное значение битов для условия максимального увеличения отношения квантованный сигнал/шум в соответствии с теорией «битовые затраты-искажение».
Оптимальное значение битов для условия максимального увеличения отношения квантованный сигнал/шум каждого поддиапазона кодирования при граничной степени искажения битрейта можно рассчитать и получить путем оптимизации степени искажения битрейта на основании независимой гауссовской случайной величины путем использования метода Лагранжа:
где
и
На подстадии 105c рассчитывают начальное значение важности, если распределение битов выполняют для поддиапазонов кодирования базового уровня.
Зная оптимальное значение битов и коэффициент пропорции, соответствующий характеристике восприятия ушами, можно получить начальное значение важности поддиапазонов кодирования базового уровня для управления распределением битов при фактическом распределении битов:
где - коэффициент пропорции, который связан с кодированным битрейтом и может быть получен статистическим анализом, обычно 0< <1, и в данном варианте осуществления значение равно 0,7; и rk(j) - важность j-го поддиапазона кодирования при выполнении распределения битов.
На подстадии 105d выполняют распределение битов базового уровня в соответствии с важностью поддиапазонов кодирования базового уровня. Конкретное описание приводится ниже.
Во-первых, по разным rk(j) отыскивают поддиапазон кодирования базового уровня, в котором находится максимальное значение, и принимают, что номер этого поддиапазона кодирования jk, затем в поддиапазон кодирования базового уровня добавляют число распределения битов region_bit(j k) каждого коэффициента частотной области, и уменьшают важность поддиапазона кодирования базового уровня; тем временем рассчитывают общее число битов bit_band_used(jk), израсходованных поддиапазоном кодирования; наконец, рассчитывают сумму числа битов, израсходованных всеми поддиапазонами кодирования базового уровня sum(bit_band_used (j)), j=0, , L_core-1; и вышеописанный процесс повторяют до тех пор, пока сумма числа израсходованных битов не будет соответствовать максимальному значению по условию ограничения битов, которое могут предусмотреть.
Способ распределения битов на данной стадии может быть представлен следующими псевдокодами:
принимают region_bit(j)=0, j=0, 1, , L_core-1;
для поддиапазонов кодирования 0,1, , L_core-1:
{
отыскивают ;
принимают region_bit{jk)<порог классификации
{
если region_bit(j k)=Q
принимают region_bit(jk )=region_bit(jk)+1;
рассчитывают bit_band_used(j k)=region_bit(jk)*BandWidth(jk);
принимают rk(jk)=rk(jk) - 1;
или еще если region_bit(jk)>=1
принимают region_bit(jk))=region_bit(j k)+0,5;
рассчитывают bit_band_used(j k)=region_bit(jk)*BandWidth(jk)*0,5;
принимают rk(jk)=rk(Jk)-0,5;
}
или еще, если region_bit(j k)=порог классификации
{
принимают region_bit(jk)=region_bit(jk)+1;
рассчитывают bit_band_used(j k)=region_bit(jk)×BandWidth(jk );
}
рассчитывают bit_used_all=sum(bit_band_used(j)) j=0, 1, , L_core-1;
если bit_used_all<bits_left_core - 16, возвращаются и повторно отыскивают jk в различных поддиапазонах кодирования, и циркулярно рассчитывают число распределения битов (или именуемое «числом кодированных битов»); где 16 - максимум числа битов поддиапазонов кодирования базового уровня.
или еще, заканчивают цикл, рассчитывают число распределения битов, и выдают текущее число распределения битов.
Наконец, в соответствии с важностью поддиапазонов, оставшиеся биты, которых менее 16, выделяют поддиапазонам кодирования базового уровня, отвечающим требованиям в соответствии со следующим принципом: 0,5 бита выделяют каждому коэффициенту частотной области в поддиапазонах кодирования базового уровня, в которых распределение битов равно 1, и при этом важность поддиапазонов кодирования базового уровня уменьшают на 0,5, пока bit_left_core-bit_used_all<8, и распределение битов заканчивают. Затем оставшиеся в конечном итоге биты регистрируют как оставшиеся биты remain_bits_core, первоначально выделенные базовому уровню.
Диапазон значений вышеупомянутого порога классификации - более или равные 2 и менее или равные 8, и в данном варианте осуществления это значение может быть 5.
Где MaxBit - максимальное число распределения битов, которое может быть выделено одному коэффициенту частотной области в поддиапазоне кодирования базового уровня, и единицей является отношение бит/коэффициент частотной области. В данном варианте осуществления используют MaxBit=9. Это значение можно надлежаще изменить в соответствии с кодированным битрейтом кодека. region_bit(j) - число битов, выделенных одному коэффициенту частотной области в j-ом поддиапазоне кодирования базового уровня, т.е., число распределения битов одного коэффициента частотной области в этом поддиапазоне.
Кроме того, на данной стадии распределение битов базового уровня могут выполнять, и используя Thq(у) или как начальное значение важности распределения битов поддиапазона кодирования базового уровня, где j=0, , L_core-1; µ>0.
Поддиапазоны кодирования, описанные в последующих стадиях 106-107, - это поддиапазоны кодирования базового уровня.
На стадии 106 выполняют расчет нормализации на коэффициентах частотной области в поддиапазонах кодирования базового уровня, используя квантованные значения огибающей амплитуды, восстановленные в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, а затем нормализованные коэффициенты частотной области группируют для образования нескольких векторов.
Для всех j=0, , L_core-1 процесс нормализации выполняют на всех коэффициентах частотной области Xj в поддиапазоне кодирования, используя квантованную огибающую амплитуды поддиапазона кодирования j:
Непрерывные 8 коэффициентов в поддиапазоне кодирования группируют для образования одного 8-мерного вектора. В соответствии с разделением поддиапазонов кодирования в таблице 1, коэффициенты в поддиапазоне кодирования j могут группировать для образования 8-мерных векторов Lattice_D8(j). Различные нормализованные группированные 8-мерные векторы, подлежащие квантованию, могут быть представлены как , где m представляет положение, в котором этот 8-мерный вектор находится в поддиапазоне кодирования, и его диапазон находится в пределах между 0 и Lattice_D8(j)-1.
На стадии 107 для всех j=0, , L_core-l создают размер числа битов region_bit(j), выделенных поддиапазону кодирования j, и если выделенное число битов region_bit(j) меньше порога классификации, поддиапазон кодирования именуют как низкобитовый поддиапазон кодирования, и векторы, подлежащие квантованию в низкобитовом поддиапазоне кодирования, квантуют и кодируют методом пирамидально-решетчатого векторного квантования; а если выделенное число битов region_bit(j) больше или равно порогу, поддиапазон кодирования именуют как высокобитовый поддиапазон кодирования, и векторы, подлежащие квантованию в высокобитовом поддиапазоне кодирования, квантуют и кодируют методом сферически-решетчатого векторного квантования; и порог по данному варианту осуществления использует 5 битов.
Далее будет проиллюстрирован метод пирамидально-решетчатого векторного квантования и кодирования.
Низкобитовый поддиапазон кодирования квантуют методом пирамидально-решетчатого векторного квантования, и при этом число битов, которое выделяют поддиапазону j, отвечает условию: 1<=region_bit(j)<5.
В настоящем изобретении используют 8-мерное решетчатое векторное квантование на основании узловых точек D8 , где узловые точки D8 определяются следующим образом:
где Z8 представляет 8-мерное пространство целых чисел. Основной способ преобразования (квантования) 8-мерных векторов в узловые точки D8 заключается в следующем:
Предположим, что x - это случайное вещественное число, f(x) представляет округление квантования для взятия целого числа, которое ближе к х, в обоих целых числах, прилегающих к х, a w(x) представляет округление квантования для взятия целого числа, которое дальше от х, в обоих целых числах, прилегающих к х. Для любого вектора X=(x1, x2 , , x3) R8 можно определить и f(X)=(f(x1), f(x2), , f(x8)). В j(X) выбирают минимальный нижний индекс в компонентах с максимальным абсолютным значением ошибок округления квантования и записывают его как k, тем самым определяя g(X)=(f(x1), f(x2), w(xk), , f(x8)), и, таким образом, есть одно и лишь одно значение, которое является значением узловой точки D 8 в f(X) или g(X), и при этом величина квантования узловой точки D8, выдаваемая квантователем:
Конкретные стадии способа квантования векторов, подлежащих квантованию в узловые точки D8 , и решения индексов узловых точек D8:
а) Энергию векторов, подлежащих квантованию, регуляризируют.
Энергия векторов, подлежащих квантованию, перед квантованием должна быть регуляризирована. Порядковый номер таблицы кодирования (index) и масштабные множители для энергии (scale), соответствующие числу битов, запрашивают из таблицы 2 в соответствии с числом битов region_bit(j), выделенных поддиапазону кодирования j, в котором находятся векторы, подлежащие квантованию; и затем энергию векторов, подлежащих квантованию, регуляризируют по следующей формуле:
где представляет m-й нормализованный 8-мерный вектор, подлежащий квантованию, в поддиапазоне кодирования j, представляет 8-мерный вектор после регуляризации энергии , и a=(2-6, 2-6, 2-6, 2-6, 2-6, 2-6, 2-6 , 2-6).
Таблица 5. | |||
Соотношение между числом битов пирамидально-решетчатого векторного квантования в узловые точки и порядковым номером таблицы кодирования, масштабный множитель для энергии, максимальный радиус энергии поверхности пирамиды | |||
Число битов region_jbit | Порядковый номер таблицы кодирования Index | Масштабный множитель для энергии Scale | Максимальный радиус энергии поверхности пирамиды LargeK |
1 | 0 | 0,5 | 2 |
1,5 | 1 | 0,65 | 4 |
2 | 2 | 0,85 | 6 |
2,5 | 3 | 1,2 | 10 |
3 | 4 | 1,6 | 14 |
3,5 | 5 | 2,25 | 22 |
4 | 6 | 3,05 | 30 |
4,5 | 7 | 4,64 | 44 |
b) Выполняют квантование регуляризованных векторов в узловые точки.
8-мерный вектор , энергия которого регуляризована, квантуют в узловую точку D8 :
где - оператор квантования для преобразования определенного 8-мерного вектора в узловые точки D8.
c) Энергию отсекают в соответствии с энергией поверхности пирамиды узловой точки D8 .
Рассчитывают энергию узловой точки D 8 и сравнивают ее с максимальным радиусом энергии поверхности пирамиды LargeK(index) в таблице кодирования. Если она не больше максимального радиуса энергии поверхности пирамиды, рассчитывают индекс узловой точки в таблице кодирования; в противном случае энергию регуляризованного вектора , подлежащего квантованию, поддиапазона кодирования отсекают, пока энергия квантованной узловой точки вектора, подлежащего квантованию, энергию которого отсекли, не станет больше максимального радиуса энергии поверхности пирамиды; при этом его небольшая собственная энергия устойчиво повышается до вектора, подлежащего квантованию, энергию которого отсекли, пока его энергия, квантованная до узловой точки D8, не превысит максимальный радиус энергии поверхности пирамиды; и последнюю узловую точку D 8, энергия которой не превышает максимальный радиус энергии поверхности пирамиды, выбирают как величину квантования вектора, подлежащего квантованию. Конкретный процесс можно описать следующими псевдокодами.
Рассчитывают энергию поверхности пирамиды , т.е., получают сумму абсолютных значений различных составляющих m-го вектора в поддиапазоне кодирования j:
Kbak=temp_К
Если temp_K>Large K(index)
{
при temp_K>LargeK(index)
{
,
}
Kbak=temp_К
при temp_K<=LargeK(index)
{
Kbak=temp_К
}
{
temp_К=Kbak
При этом последняя узловая точка D8, энергия которой не превышает максимальный радиус энергии поверхности пирамиды, и temp_К - энергия этой узловой точки.
d) Генерируют индексы квантования узловых точек D8 в таблице кодирования.
На следующих стадиях расчетом получают индексы узловых точек D8 в таблице кодирования. Эти конкретные стадии таковы:
На стадии 1 узловые точки различных поверхностей пирамиды соответственно метят в зависимости от размера энергии поверхности пирамиды.
Для узловой точки ZL решетки целых чисел с размером L поверхность пирамиды с радиусом энергии K определяют как:
N(L, К) записывают как число узловых точек в S(L, К), и для решетки целых чисел ZL рекуррентная формула для N(L, K) выглядит следующим образом:
N(L, 0)=l (Z 0), N(0, K)=0 (К 1)
N(L, K)=N(L-l, K)+N(L-l, K-l)+N(L, K-l) (L l, K 1)
Для точки Y=(y1, y2 , , yL) ZL решетки целых чисел на поверхности пирамиды с радиусом энергии K, она идентифицирована неким числом b в [0, 1, , N(L, K)-1], и b именуется меткой узловой точки. Стадия для решения метки b является следующей:
На стадии 1.1, принимая b=0, /=1, k=K, l=L, N(m, n), (m<=L, n<=K) рассчитывают по вышеприведенной рекурсивной формуле. Определяют:
На стадии 1.2, если yi=0, то b-b+0;
если [yi|>1, то
На стадии 1.3 k=k-|yi|, l=l-1, i=i+l, и если при этом k=0, то поиск останавливают, и b - это метка Y; в противном случае продолжают стадию 1.2.
На стадии 2 совместно метят узловые точки на всех поверхностях пирамиды.
Метки каждой узловой точки на всех поверхностях пирамиды рассчитывают в соответствии с числом узловых точек различных поверхностей пирамиды и меткой каждой узловой точки на соответствующей поверхности пирамиды:
где kk - четное число. При этом index_b(j, m) - индекс узловой точки D8 в таблице кодирования, то есть, индекс m-го 8-мерного вектора в поддиапазоне кодирования j.
e) Повторяют стадии a-d, пока различные 8-мерные векторы всех поддиапазонов кодирования, у которых кодированные биты больше 0, не завершат генерацию индексов.
f) Получают индекс векторного квантования index_b(J,k) каждого 8-мерного вектор в каждом поддиапазоне кодирования методом пирамидально-решетчатого векторного квантования, где k представляет k-й 8-мерный вектора поддиапазона кодирования j, и выполняют кодирование по методу Хаффмана на индексе квантования index_b(j,k) при следующих нескольких условиях:
1) Во всех поддиапазонах кодирования, в которых число битов, выделенных одному коэффициенту частотной области, более 1 и менее 5 за исключением 2, каждые 4 бита в обычном двоичном коде каждого индекса векторного квантования формируют в одну группу и выполняют с кодированием по методу Хаффмана.
2) Во всех поддиапазонах кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 2, индекс пирамидально-решетчатого векторного квантования каждого 8-мерного вектора кодируют, используя 15 битов. В этих 15 битах выполняют кодирование по методу Хаффмана на 3 группах по 4 бита и 1 группе из 3 битов соответственно. Таким образом, во всех поддиапазонах кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 2, 1 бит сохраняют для кодирования каждого 8-мерного вектора.
3) Если число битов, выделенных одному коэффициенту частотной области поддиапазона кодирования, равно 1, и если индекс квантования менее 127, для кодирования индекса квантования используют 7 битов, и эти 7 битов разделяют на 1 группу из 3 битов и 1 группу из 4 битов, и на этих двух группах выполняют кодирование по методу Хаффмана соответственно; если индекс квантования равен 127, значение его обычного двоичного кода - «1111 1110», и предыдущие семь "1" разделяют на 1 группу из 3 битов и 1 группу из 4 битов, и на этих двух группах выполняют кодирование по методу Хаффмана соответственно; а если индекс квантования равен 128, значение его обычного двоичного кода - «1111 1111», и предыдущие семь "1" разделяют на 1 группу из 3 битов и 1 группу из 4 битов, и на этих двух группах выполняют кодирование по методу Хаффмана соответственно.
Способ выполнения кодирования по методу Хаффмана на индексе квантования можно описать следующими псевдокодами:
во всех поддиапазонах кодирования region_bit(j)=1,5 и 2<regionbit(j)<5
{
n - в пределах [0, region_bit(j)×8/4-1], увеличивают на длину шага 1, и выполняют следующий цикл:
{
index_b(j,k) сдвигают вправо на 4*n битов;
рассчитывают нижние 4 бита tmp индекса index_b(j,k), то есть, tmp=u(index_b(j,k), 15)
рассчитывают кодовое слово tmp в таблице кодирования и число израсходованных битов;
plvq_codebook(j,k)=plvq_code(tmp+1);
plvq_count(j,k)=plvq_bit_count(tmp+1);
где plvq_codebook(j,k) и plvq_count(j,k) - кодовое слово и число израсходованных битов в таблице кодирования по методу Хаффмана k-го 8-мерного вектора поддиапазона j соответственно; и plvq_bit_count и plvq_code отыскивают в соответствии с таблицей 6.
Общее число израсходованных битов после использования кодирования по методу Хаффмана корректируют:
http://bitjised_huff_a.il___=bit_used_huff_all+plvq_bit_count{tmp+1);
}
}
в поддиапазоне кодирования region_bit(j)=2,
{
n в пределах [0, region_bit(j)×8/4-2], увеличивают на длину шага 1, и выполняют следующий цикл:
{
index_b(j,k) сдвигают вправо на 4*n битов;
рассчитывают нижние 4 бита tpm индекса index_b(j,k), то есть, tmp=K(index_b(j,k), 15)
рассчитывают кодовое слово tmp в таблице кодирования и расход битов на него;
plvq_count(j,k)=plvq_bit_count (tmp+1);
phq_codebook(j,k)=plvq_code (tmp+1);
где plvq_count(j,k) и phq_codebook(j,k) - число израсходованных битов Хаффмана и кодовое слово k-го 8-мерного вектора поддиапазона j соответственно; и plvq_bit_count и plvq_code отыскивают в соответствии с таблицей 6.
Общее число израсходованных битов после использования кодирования по методу Хаффмана корректируют:
bit_used_huff_all=bit_used_huff_all+plvq_bit_count(tmp+1);
}
{
После этого необходимо обработать одно условие 3 битов:
после того как index_b(j,k) сдвигают вправо на [region_bit(j)×8/4-2]*4 битов;
рассчитывают нижние 3 бита tmp индекса index_b(j,k), то есть, tmp=n(index_b(j,k), 7)
рассчитывают кодовое слово tmp в таблице кодирования и расход битов на него;
plvq_count(j,k)=plvq_bit_count_r2_3(tmp+l);
plvq_codebook(j,k)=plvq_code_r2_5(tmp+l);
где plvq_count(j,k) и plvq_codebook(j,k) число израсходованных битов Хаффмана и кодовое слово к-го 8-мерного вектора поддиапазона j соответственно; и plvq_bit_count_r-2_3 и plvq_code_r2_3 отыскивают соответствии с таблицей 7.
Общее число израсходованных битов после использования кодирования по методу Хаффмана корректируют:
bit_used_huff_all=bit_used_huff_all+plvq_bit_count{tmp+l);
}
}
в поддиапазоне кодирования region_bit(j)=1
{
если index_b(j,k)<127
{
{
рассчитывают нижние 4 бита tmp индекса index_b(j,k), то есть, tmp=n(index_b(j,k), 15)
рассчитывают кодовое слово tmp в таблице кодирования и расход битов на него;
plvq_count(j,k)=plvq_bit_count_rl_4(tmp+1);
plvq_codebook(j,k)=plvq_code_r/_(tmp+1);
где plvq_count(j,k) и plvq_codebook(j,k) - число израсходованных битов Хаффмана и кодовое слово k-го 8-мерного вектора поддиапазона j соответственно; и plvq_bit_count_rl_4 и plvq_code_rl_4 отыскивают в соответствии с таблицей 8.
Общее число израсходованных битов после использования кодирования по методу Хаффмана корректируют:
bit_used_huff_all=bit_used_huff_all+plvq_bit_count(tmp+1);
}
{
После этого необходимо обработать одно условие 3 битов: index_b(j,k) сдвигают вправо на 4 бита;
рассчитывают нижние 3 бита tmp индекса index_b(j,k), то есть, tmp=n(index_b(j,k), 7)
рассчитывают кодовое слово tmp в таблице кодирования и расход битов на него:
plvq_count(j,k)=plvq_bit_count_rl_J(tmp+1);
plvq_codebook(j,k)-plvq_code_rl_5(tmp+1);
где plvq_count(j,k) и plvq_codebook(j,k) - расход битов Хаффмана и кодовое слово k-го 8-мерного вектора поддиапазона j соответственно; и кодовые слова plvq_bit_count_rl_3 и plvq_code_rl_3 отыскивают в соответствии с таблицей 9.
Общее число израсходованных битов после использования кодирования по методу Хаффмана корректируют:
bit_used_huff_all=bit_used_huff_all+plvq_bit_count(tmp+1);
}
}
если index_b(j,k)=127
{ его двоичное значение - «1111 1110»
Отыскивают таблицы кодов Хаффмана таблицы 9 и таблицы 8 соответственно для первых трех "1" и последних четырех "1"; способ расчета такой же, как при предыдущем условии index_b(j,k)<127.
Общее число израсходованных битов после использования кодирования по методу Хаффмана корректируют: всего необходимы 8 битов.
}
если index_b(j,k)=128
{ его двоичное значение - "1111 1111"
Отыскивают таблицы кодов Хаффмана таблицы 7 и таблицы 6 соответственно для первых трех "1" и последних четырех "1"; способ расчета такой же, как при предыдущем условии index_b(j,k)<127.
Общее число израсходованных битов после использования кодирования по методу Хаффмана корректируют: всего необходимы 8 битов.
}
}
Следовательно, во всех поддиапазонах кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1, 1 бит сохраняют для кодирования каждого 8-мерного вектора, если index_b(j,k)<127.
Таблица 6. | ||
Таблица кодов Хаффмана пирамидального векторного квантования | ||
Tmp | Plvq_bit count | plvq_code |
0 | 2 | 0 |
1 | 4 | 6 |
2 | 4 | 1 |
3 | 4 | 5 |
4 | 4 | 3 |
5 | 4 | 7 |
6 | 4 | 13 |
7 | 4 | 10 |
8 | 4 | 11 |
9 | 5 | 30 |
10 | 5 | 25 |
11 | 5 | 18 |
12 | 5 | 9 |
13 | 5 | 14 |
14 | 5 | 2 |
15 | 4 | 15 |
Таблица 7. | ||
Таблица кодов Хаффмана пирамидального векторного квантования | ||
Tmp | Plvq_bit_count_r-2_3 | plvq_code_r2_3 |
0 | 1 | 0 |
1 | 4 | 1 |
2 | 4 | 15 |
3 | 5 | 25 |
4 | 3 | 3 |
5 | 3 | 5 |
6 | 4 | 7 |
7 | 5 | 9 |
Таблица 8. Таблица кодов Хаффмана пирамидального векторного квантования | ||
Tmp | Plvq_bit_count_rl_4 | plvq_code_rl_4 |
0 | 3 | 7 |
1 | 5 | 13 |
2 | 5 | 29 |
3 | 4 | 14 |
4 | 4 | 3 |
5 | 4 | 6 |
6 | 4 | 1 |
7 | 4 | 0 |
8 | 4 | 8 |
9 | 4 | 12 |
10 | 4 | 4 |
11 | 4 | 10 |
12 | 4 | 9 |
13 | 4 | 5 |
14 | 4 | 11 |
15 | 4 | 2 |
Таблица 9. | ||
Таблица кодов Хаффмана пирамидального векторного квантования | ||
Tmp | Plvq_bit_count_rl_3 | plvq_code_rl_3 |
0 | 2 | 1 |
1 | 3 | 0 |
2 | 3 | 2 |
3 | 4 | 7 |
4 | 4 | 15 |
5 | 3 | 6 |
6 | 3 | 4 |
7 | 3 | 3 |
g) Определяют, экономит ли биты кодирование по методу Хаффмана.
Совокупность всех низкобитовых поддиапазонов кодирования записывают как C, и биты, сэкономленные всеми поддиапазонами кодирования, в которых число битов, выделенных одному коэффициенту частотной области, равно 1 или 2, как описано в пунктах 2) и 3) предыдущей стадии f, рассчитывают и записывают как число абсолютно сэкономленных битов bit_saved_rl_r2_all_core, и рассчитывают общее число битов bit_med_huff_all, израсходованных после кодирования по методу Хаффмана на индексах квантованных 8-мерных векторов, принадлежащих всем поддиапазонам кодирования в C; сравнивают bit_used_huff_all с общим числом bit_used_nohuff_all битов, израсходованных натуральным кодированием, и если bit_used_huff_all<bit_used_nohuff_all, передают индексы квантованных векторов после кодирования по методу Хаффмана, и при этом флажок кодирования по методу Хаффмана Flag_huff_PLVQ_core устанавливают как 1; в противном случае на индексах квантованных векторов непосредственно выполняют натуральное кодирование, и флажок кодирования по методу Хаффмана Flag_huff_PLVQ_core устанавливают как 0.
Вышеупомянутое число битов bit_used_nohuff_all равно разности на общее число sum(bit_band_used(j), j C) числа битов, выделенных всем поддиапазонам кодирования в C, минус bit_saved_r1_r2_all.
h) Корректируют число распределения битов.
Если флажок кодирования по методу Хаффмана Flag_huff_PLVQ_core равен 0, распределение битов поддиапазонов кодирования корректируют, используя число битов, оставшихся после начального распределения remain_bits_core, и число абсолютно сэкономленных битов bitjsaved_rl_r2__all_core. Если флажок кодирования по методу Хаффмана Flag_huff_PLVQ_core равен 1, распределение битов поддиапазонов кодирования корректируют, используя число битов, оставшихся после начального распределения remain_bits_core, число абсолютно сэкономленных битов bit_saved_r1_r2_all_core и биты, сэкономленные кодированием по методу Хаффмана.
Далее будет проиллюстрирован метод сферически-решетчатого векторного квантования и кодирования.
Высокобитовые поддиапазоны кодирования квантуют методом сферически-решетчатого векторного квантования, и при этом число битов, которое выделяют поддиапазону j, отвечает условию 5<=region_bit(j)<=9.
В настоящем изобретении также используют 8-мерное решетчатое векторное квантование на основании решетки D8.
а) Энергию нормализованного m-го вектора , подлежащего квантованию, поддиапазона кодирования, регуляризируют в соответствии с числом битов region_bit(J), выделенных одному коэффициенту частотной области в поддиапазоне кодирования j, следующим образом:
где a(2-6, 2-6, 2-6, 2-6, 2-6, 2-6 , 2-6, 2-6),
,
где scale{region_bit(j)) представляет масштабный множитель энергии, если число распределения битов одного коэффициента частотной области в поддиапазоне кодирования равно region_bit(j), и соотношение между ними приведено в таблице 10.
Таблица 10. Соотношение между числом распределения битов сферически-решетчатого векторного квантования и масштабным множителем энергии | |
Число распределения битов region_bit | Масштабный множитель энергии scale |
5 | 6 |
6 | 6,2 |
7 | 6,5 |
8 | 6,2 |
9 | 6,6 |
b) Генерируют векторы индексов узловых точек D8.
m-й вектор , подлежащий квантованию, после выполнения масштабирования энергии в поддиапазоне кодирования j отображают в узловой точке решетки D8:
Определяют, является ли нулевым вектором, т.е., являются ли все его различные составляющие нулями, и если является нулевым вектором, он именуется как отвечающий условию нулевого вектора; в противном случае он именуется как не отвечающий условию нулевого вектора.
Если выполняется условие нулевого вектора, вектор индекса можно получить по следующей формуле генерирования вектора индекса:
Вектор индекса k узловой точки D 8 является при этом выходом, где G - генерационная матрица узловой точки D8, и ее форма выглядит следующим образом:
Если условие нулевого вектора не выполняется, значение вектора делят на 2, пока условие нулевого вектора не будет выполняться ; и значение малого кратного самого резервируют как , затем уменьшенный вектор добавляет зарезервированное значение малого кратного w, и затем квантуют в узловую точку D8, чтобы определить, выполняется ли условие нулевого вектора; если условие нулевого вектора не выполняется, по формуле расчета вектора индекса получают вектор индекса k узловой точки D8, который приблизительно отвечает условию нулевого вектора, в противном случае вектор продолжает добавлять зарезервированное значение малого кратного w, и затем квантуют в узловую точку D8, пока не будет выполняться условие нулевого вектора; и, наконец, по формуле расчета вектора индекса получают вектор k узловой точки D 8, который приблизительно отвечает условию нулевого вектора; и вектор индекса k узловой точки D8 является результатом. Этот процесс можно описать следующими псевдокодами:
Dbak=temp_D
При temp_D 0
с) Индексы векторного квантования высокобитовых поддиапазонов кодирования кодируют, и при этом число битов, выделенных поддиапазону j, отвечает условию 5<=region_bit(j)<=9.
Методом сферически-решетчатого векторного квантования 8-мерный вектор в поддиапазонах кодирования, в которых число распределения битов равно 5-9, квантуют для получения вектора индекса k={k1, k2, k3, k4, k5, k6, k7, k8}, и выполняют натуральное кодирование на различных составляющих вектора индекса к в соответствии с числом битов, выделенных одному коэффициенту частотной области, для получения кодированных битов вектора.
Как показано на ФИГ.3, процесс коррекции выделения битов включает, в частности, следующие стадии.
На стадии 301 рассчитывают число битов diff_bit_count_core, имеющихся для коррекции выделения битов. Если флажок кодирования по методу Хаффмана Flag_huff_PLVQ_core равен 0, то
diff_bit_count_core=remain_bits_core+bit_saved_r1_r2_all_core;
если флажок кодирования по методу Хаффмана Flag_nuff_PLVQ_core равен 1, то
diff_bit_count_core=remain_bits_core+bit_saved_r1_r2_all_core+(bit_used_nohuff_all-bit_used_huff_all).
Принимая count=0:
на стадии 302, если diff_bit_count_core более 0, то отыскивают максимальное значение rk(jk) во всех rk(j) (j=0, , L_core-1), представленное формулой:
На стадии 303 определяют, является ли region_bit(jk)+1 менее или равным 9, и если region_bit(j k)+1 менее или равен 9, выполняют следующую стадию; в противном случае, важность поддиапазона кодирования, соответствующего j k, корректируют до наименьшей (например, принимая rk(j k)=-100), что указывает, что нет необходимости корректировать число распределения битов этого поддиапазона кодирования, и перескакивают на стадию 302.
На стадии 304 определяют, является ли diff_bit_count_core более или равным битам, которые должны быть израсходованы корректировкой числа распределения битов поддиапазона кодирования jk (если Flag_huff_PLVQ_core равен 0, это рассчитывают в соответствии с натуральным кодированием; а если Flag_niuff_PLVQ_core равен 1, это рассчитывают в соответствии с кодированием по методу Хаффмана), и если «да», выполняют стадию 305, корректируют число распределения битов region_bit(j k) поддиапазона кодирования jk, уменьшают значение важности rk(jk) поддиапазона, снова выполняют векторное квантование и натуральное кодирование или кодирование по методу Хаффмана на поддиапазоне кодирования jk, и, наконец, корректируют значение diff_bit_count_core; в противном случае, процесс коррекции выделения битов заканчивают.
На стадии 305 в процессе коррекции выделения битов 1 бит выделяют поддиапазону кодирования, в котором число распределения битов равно 0, и важность после распределения битов уменьшается на 1, 0,5 бита выделяют поддиапазону кодирования, в котором число распределения битов более 0 и менее 5, и важность после распределения битов уменьшается на 0,5, и 1 бит выделяют поддиапазону кодирования, в котором число распределения битов более 5, и важность после распределения битов уменьшается на 1.
На стадии 306 принимают count=count+1, проверяют, является ли count меньшим или равным Maxcount, и если count меньше или равно Maxcount, перескакивают на стадию 302; в противном случае, процесс коррекции выделения битов заканчивают.
Maxcount - это верхний предел числа раз итерации цикла, который определяют в соответствии с кодированным потоком битов и частотой дискретизации. В данном варианте осуществления, если флажок кодирования по методу Хаффмана Flag_huff_PLVQ равен 0, то используют Maxcount=l; а если флажок кодирования по методу Хаффмана Flag_nuff_PLVQ равен 1, то используют Maxcount=31.
На стадии 108, выполняют обратное квантование на вышеописанных коэффициентах частотной области на базовом уровне, на которых выполнили векторное квантование, и выполняют расчет разности между обратно квантованными коэффициентами частотной области и первоначальными коэффициентами частотной области, полученными после выполнения с временно-частотным преобразованием, для получения разностных сигналов базового уровня, и сигналы кодирования расширенного уровня образуют, используя разностные сигналы базового уровня и коэффициенты частотной области расширенного уровня.
Ясно, что стадию, на которой образуют сигналы кодирования расширенного уровня (стадию 108), могут выполнять и после завершения распределений битов сигналов кодирования расширенного уровня (стадия ПО).
На стадии 109, выполняют такое же разделение поддиапазона на разностных сигналах базового уровня, как на коэффициентах частотной области, и индексы квантования огибающей амплитуды поддиапазонов кодирования разностных сигналов базового уровня рассчитывают в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числами распределения битов базового уровня (т.е., различные region_bit(j), j=0, , L_core-1).
Данную стадию могут осуществлять следующими подстадиями.
На подстадии 109а, отыскивают статистическую таблицу величин коррекции индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с числом битов region_bit(j), j=0, , L_core-1, выделенных одному коэффициенту частотной области в поддиапазонах кодирования базового уровня, для получения величин коррекции diff(region_bit(j)), j=0, , L_core-1 индексов квантования огибающей амплитуды разностных сигналов базового уровня;
где region_bit(J)=1; 1,5; 2; 2,5; 3; 3,5; 4; 4,5; 5; 6; 7; 8, j=0, , L_core-l, причем величины коррекции индексов квантования огибающей амплитуды могут устанавливать по следующему правилу:
>diff[region_bit{j)) 0; и
>если region_bit(j)>0, diff[region_bit(j)) не уменьшается при увеличении значения region_bit(j).
Для получения лучшего эффекта кодирования и декодирования могут выполнять статистику на индексах квантования огибающей амплитуды поддиапазонов, которые рассчитывают при разных числах распределения битов (region_bit(j)), и индексах квантования огибающей амплитуды поддиапазонов, которые рассчитывают непосредственно по разностным сигналам, для получения статистической таблицы величин коррекции индексов квантования огибающей амплитуды с наивысшей вероятностью, как показано в таблице 11:
Таблица 11. | |
Статистическая таблица величин коррекции индексов квантования огибающей амплитуды |
region_bit | diff |
1 | l |
1,5 | 2 |
2 | 3 |
2,5 | 4 |
3 | 5 |
3,5 | 5 |
4 | 6 |
4,5 | 7 |
5 | 7 |
6 | 9 |
7 | 10 |
8 | 12 |
На подстадии 109b рассчитывают индекс квантования огибающей амплитуды j-го поддиапазона разностного сигнала базового уровня в соответствии с индексом квантования огибающей амплитуды поддиапазона кодирования у базового уровня и величиной коррекции индекса квантования в таблице 8:
Thq (j)=Thq(j)-diff (region_bit(j)), j=0, , L_core-1,
где Thq(j) - индекс квантования огибающей амплитуды поддиапазона кодирования у базового уровня.
Следует отметить, что если число распределения битов некоторого поддиапазона кодирования базового уровня равно 0, нет необходимости корректировать огибающую амплитуды поддиапазона кодирования разностного сигнала базового уровня, и при этом значение огибающей амплитуды поддиапазона разностного сигнала базового уровня является таким же, как и значение огибающей амплитуды поддиапазона кодирования базового уровня.
Кроме того, если число распределения битов некоторого поддиапазона кодирования базового уровня является таковым region_bit(j)=9, квантованное значение огибающей амплитуды j-го поддиапазона кодирования разностного сигнала базового уровня устанавливают как нуль.
На стадии 110 выполняют распределение битов на поддиапазонах кодирования сигналов кодирования расширенного уровня.
Разделение поддиапазона расширенного уровня определяют по таблице 1 или таблице 2. Сигналы кодирования в поддиапазонах 0, , L_core-1 являются разностными сигналами базового уровня, а сигналы кодирования в L_core, , L-1 являются коэффициентами частотной области в поддиапазонах кодирования расширенного уровня. Поддиапазоны 0-L-1 также называются поддиапазонами кодирования сигналов кодирования расширенного уровня.
По рассчитанным индексам квантования огибающей амплитуды разностных сигналов базового уровня, индексам квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня и числу битов, имеющихся для расширенного уровня, рассчитывают начальные значения важности поддиапазонов кодирования сигналов кодирования расширенного уровня во всем частотном диапазоне расширенного уровня, используя решение распределения битов, которое является таким же, как решение базового уровня, и выполняют распределение битов на поддиапазонах кодирования сигналов кодирования расширенного уровня.
В данном варианте осуществления частотный диапазон расширенного уровня равен 0~13,6 кГц. Общий битрейт аудиопотока равен 64 кбит/сек, битрейт базового уровня - 32 кбит/сек, и максимальный битрейт расширенного уровня - 64 кбит/сек. Рассчитывают общее имеющееся число битов расширенного уровня по битрейту базового уровня и максимальному битрейту расширенного уровня, а затем выполняют распределение битов до полного расходования битов.
На стадии 111 выполняют нормализацию, векторное квантование и кодирование на сигналах кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня и соответствующими числами распределения битов для получения кодированных битов сигналов кодирования. Причем строение вектора, способ векторного квантования и способ кодирования сигналов кодирования расширенного уровня являются такими же, как и для коэффициентов частотной области базового уровня соответственно.
На стадии 112 создают иерархический кодированный поток битов, и создают уровни битрейта в соответствии со значением битрейта.
Как показано на ФИГ. 4, иерархический кодированный поток битов создают, используя следующий режим: во-первых, записывают в мультиплексор потока битов MUX побочную информацию базового уровня в следующем порядке: Flag_transient, Flag_nuff_rms_core, Flag_nuff_PLVQ_core и count_core, а затем записывают в MUX кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня, и затем записывают в MUX кодированные биты коэффициентов частотной области базового уровня; затем записывают в MUX побочную информацию расширенного уровня в следующем порядке: бит флажка кодирования по методу Хаффмана Flag_nuff_rms_ext огибающих амплитуды поддиапазонов кодирования расширенного уровня, бит флажка кодирования по методу Хаффмана Flag_nuff_PLVQ_ext коэффициентов частотной области, и количество раз итерации count_ext коррекции выделения битов, затем записывают в MUX кодированные биты огибающей амплитуды поддиапазонов кодирования расширенного уровня (L_core, , L-1), и затем записывают в MUX кодированные биты сигналов кодирования расширенного уровня; и, наконец, иерархический поток битов, который записали в вышеуказанном порядке, передают в конец декодирования;
причем порядок записи кодированных битов сигналов кодирования расширенного уровня располагают в соответствии с начальными значениями важности поддиапазонов кодирования сигналов кодирования расширенного уровня. То есть, в поток битов предпочтительно записывают кодированные биты поддиапазонов кодирования сигналов кодирования расширенного уровня с большим начальным значением важности, и для поддиапазонов кодирования с одинаковой важностью предпочтительным является низкочастотный поддиапазон кодирования.
Огибающие амплитуды разностных сигналов на расширенном уровне рассчитывают в соответствии с огибающими амплитуды поддиапазонов кодирования базового уровня и числами распределения битов, поэтому нет необходимости передавать в конец декодирования. Таким образом, не только можно повысить точность кодирования диапазона частот базового уровня, но и нет необходимости добавлять биты для передачи значений огибающей амплитуды разностных сигналов.
После округления битов, которые не нужны в задней части мультиплексора потока битов в соответствии с битрейтом, который нужно передать, число битов, отвечающее требованию к битрейту, передают в конец декодирования. То есть, ненужные биты округляют в порядке важности поддиапазонов кодирования от малой к большой.
В данном варианте осуществления частотный диапазон кодирования равен 0-13,6 кГц, максимальный битрейт - 64 кбит/сек, и иерархический способ в соответствии с битрейтом является следующим:
коэффициенты частотной области в пределах частотного диапазона кодирования 0~7 кГц разделяют на базовый уровень, максимальный битрейт, соответствующий базовому уровню, равен 32 кбит/сек, и базовый уровень регистрируют как уровень L0; а частотный диапазон кодирования расширенного уровня равен 0~13,6 кГц, его максимальный битрейт равен 64 кбит/сек, и расширенный уровень регистрируют как уровень L1_5; и
перед передачей в конец декодирования, в соответствии с числом битов, которое округляют, битрейты могут разделять на уровень L1_1, соответствующий 36 кбит/сек, уровень L1_2, соответствующий 40 кбит/сек, уровень L1 _3, соответствующий 48 кбит/сек, уровень L1_4, соответствующий 56 кбит/сек, и уровень L1_5, соответствующий 64 кбит/сек.
ФИГ.5 иллюстрирует зависимость между иерархией в соответствии с частотным диапазоном и иерархией в соответствии с битрейтом.
ФИГ.6 представляет собой блок-схему предлагаемой системы иерархического кодирования звука. Как показано на ФИГ.6, система содержит: устройство обнаружения транзиентов, устройство генерирования коэффициентов частотной области, устройство расчета огибающей амплитуды, устройство квантования и кодирования огибающей амплитуды, устройство распределения битов базового уровня, устройство векторного квантования и кодирования коэффициентов частотной области базового уровня, устройство генерирования сигналов кодирования расширенного уровня, устройство генерирования огибающей амплитуды разностных сигналов, устройство распределения битов расширенного уровня, устройство векторного квантования и кодирования сигналов кодирования расширенного уровня и мультиплексор потока битов; причем
устройство обнаружения транзиентов предназначено для выполнения обнаружения транзиентов на звуковом сигнале текущего кадра;
устройство генерирования коэффициентов частотной области соединено с устройством обнаружения транзиентов и предназначено для того чтобы: если обнаружение транзиентов должно быть установившимся сигналом, на звуковом сигнале выполнять временно-частотное преобразование для получения коэффициентов полной частотной области; если обнаружение транзиентов должно быть переходным сигналом, разделять звуковой сигнал на M субкадров, на каждом субкадре выполнять временно-частотное преобразование, создавать коэффициенты полной частотной области текущего кадра M группами коэффициентов частотной области, полученными путем преобразования, переставлять коэффициенты полной частотной области, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот, причем коэффициенты полной частотной области содержат коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, поддиапазоны кодирования содержат поддиапазоны кодирования базового уровня и поддиапазонов кодирования расширенного уровня, коэффициенты частотной области базового уровня создают несколько поддиапазонов кодирования базового уровня, и коэффициенты частотной области расширенного уровня создают несколько поддиапазонов кодирования расширенного уровня;
устройство расчета огибающей амплитуды соединено с устройством генерирования коэффициентов частотной области и предназначено для расчета значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня;
устройство квантования и кодирования огибающей амплитуды соединено с устройством расчета огибающей амплитуды и устройством обнаружения транзиентов и предназначено для квантования и кодирования значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды и кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; причем если сигнал представляет собой установившийся сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы совместно, а если сигнал представляет собой переходной сигнал, значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы отдельно соответственно, и индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно;
устройство распределения битов базового уровня соединено с устройством квантования и кодирования огибающей амплитуды, и предназначено для выполнения распределения битов на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня для получения числа распределения битов поддиапазонов кодирования базового уровня;
устройство векторного квантования и кодирования коэффициентов частотной области базового уровня соединено с устройством генерирования коэффициентов частотной области, устройство квантования и кодирования огибающей амплитуды и устройство распределения битов базового уровня, и предназначено для того чтобы: выполнять нормализацию, векторное квантование и кодирование на коэффициентах частотной области поддиапазонов кодирования базового уровня, используя числа распределения битов поддиапазонов кодирования базового уровня и квантованные значения огибающей амплитуды поддиапазонов кодирования базового уровня, восстановленные в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, для получения кодированных битов коэффициентов частотной области базового уровня;
устройство генерирования сигналов кодирования расширенного уровня соединено с устройством генерирования коэффициентов частотной области и устройство векторного квантования и кодирования коэффициентов частотной области базового уровня и предназначено для генерирования разностных сигналов базового уровня, для получения сигналов кодирования расширенного уровня, состоящих из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня;
устройство генерирования огибающей амплитуды разностных сигналов соединено с устройством квантования и кодирования огибающей амплитуды и устройством распределения битов базового уровня и предназначено для получения индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числами распределения битов соответствующих поддиапазонов кодирования базового уровня;
устройство распределения битов расширенного уровня соединено с устройством генерирования огибающей амплитуды разностных сигналов и устройством квантования и кодирования огибающей амплитуды и предназначено для выполнения распределения битов на поддиапазонах кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня для получения чисел распределения битов поддиапазонов кодирования расширенного уровня;
устройство векторного квантования и кодирования сигналов кодирования расширенного уровня соединено с устройством квантования и кодирования огибающей амплитуды, устройством распределения битов расширенного уровня, устройством генерирования огибающей амплитуды разностных сигналов и устройством генерирования сигналов кодирования расширенного уровня и предназначено для того чтобы: выполнять нормализацию, векторное квантование и кодирование на сигналах кодирования расширенного уровня, используя числа распределения битов и квантованные значения огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, восстановленные в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, для получения кодированных битов сигналов кодирования расширенного уровня;
мультиплексор потока битов соединен с устройством квантования и кодирования огибающей амплитуды, устройством векторного квантования и кодирования коэффициентов частотной области базового уровня, устройством векторного квантования и кодирования сигналов кодирования расширенного уровня и предназначен для пакетирования битов дополнительной информации базового уровня, кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня, кодированных битов коэффициентов частотной области базового уровня, битов дополнительной информации расширенного уровня, кодированных битов огибающей амплитуды поддиапазонов кодирования расширенного уровня и кодированных битов сигналов кодирования расширенного уровня.
Устройство генерирования коэффициентов частотной области предназначено для того чтобы: при получении коэффициентов текущего кадра полной частотной области составлять 2N-точечный дискретизированный сигнал временной области N-точечным дискретизированным сигналом х(n) временной области текущего кадра и N-точечным дискретизированным сигналом xold(n) временной области последнего кадра, а затем выполнять взвешивание с помощью окна и обработку с наложением спектра во временной области на для получения N-точечного дискретизированного сигнала временной области; и выполнять обратную обработку на сигнале временной области, затем на обоих концах сигнала соответственно-добавлять последовательность нулей, разделять удлиненный сигнал на M перекрывающихся субкадров, а затем выполнять взвешивание с помощью окна, обработку с наложением спектра во временной области и временно-частотное преобразование на сигнале временной области каждого субкадра для получения M групп коэффициентов частотной области и затем создавать коэффициенты полной частотной области текущего кадра.
Устройство генерирования коэффициентов частотной области предназначено также для того чтобы: при перестановке коэффициентов частотной области переставлять коэффициенты частотной области соответственно, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот в пределах базового уровня и в пределах расширенного уровня.
Устройство квантования и кодирования огибающей амплитуды, переставляющее индексы квантования огибающей амплитуды предназначено, в частности, для того чтобы: вместе переставлять индексы квантования огибающей амплитуды поддиапазонов кодирования в пределах одного и того же субкадра, так что соответствующие им частоты выстроены в порядке возрастания или убывания частот, и соединять их, используя два поддиапазона кодирования, которые представляют одноранговые частоты и принадлежат двум субкадрам соответственно на границах субкадра.
Мультиплексор потока битов мультиплексирует и пакетирует в соответствии со следующим форматом потока битов:
во-первых, записывает биты дополнительной информации базового уровня в задней части заголовка кадра потоков битов, записывает в мультиплексор потока битов (MUX) кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня, и затем записывает в MUX кодированные биты коэффициентов частотной области базового уровня;
затем записывает в MUX биты дополнительной информации расширенного уровня, затем записывает в MUX кодированные биты огибающей амплитуды поддиапазонов кодирования коэффициентов частотной области расширенного уровня, и затем записывает в MUX кодированные биты сигналов кодирования расширенного уровня; и
передает число битов, которые отвечают требованию к битрейту, в конец декодирования в соответствии с требуемым битрейтом.
Побочная информация базового уровня содержит бит флажка обнаружения транзиентов, бит флажка кодирования по методу Хаффмана огибающих амплитуды поддиапазонов кодирования базового уровня, бит флажка кодирования по методу Хаффмана коэффициентов частотной области базового уровня и бит количества раз итерации коррекции выделения битов базового уровня.
Побочная информация расширенного уровня содержит бит флажка кодирования по методу Хаффмана огибающих амплитуды поддиапазонов кодирования расширенного уровня, бит флажка кодирования по методу Хаффмана сигналов кодирования расширенного уровня и бит количества раз итерации коррекции выделения битов расширенного уровня.
Устройство генерирования сигналов кодирования расширенного уровня содержит также модуль генерирования разностных сигналов и модуль объединения сигналов кодирования расширенного уровня:
модуль генерирования разностных сигналов предназначен для обратного квантования значений квантования коэффициентов частотной области базового уровня и выполнения расчета разности с коэффициентами частотной области базового уровня для получения разностных сигналов базового уровня; и
модуль объединения сигналов кодирования расширенного уровня предназначен для объединения разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня в порядке полос частот для получения сигналов кодирования расширенного уровня.
Устройство генерирования огибающей амплитуды разностных сигналов содержит также модуль поиска величин коррекции индексов квантования и модуль расчета индексов квантования огибающей амплитуды разностных сигналов:
модуль поиска величин коррекции индексов квантования предназначен для поиска статистической таблицы величин коррекции индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с числами распределения битов поддиапазонов кодирования базового уровня для получения величин коррекции индексов квантования поддиапазонов кодирования разностных сигналов, причем величина коррекции индекса квантования каждого поддиапазона кодирования более или равна 0 и не уменьшается, если число распределения битов соответствующего поддиапазона кодирования базового уровня увеличивается, а если число распределения битов поддиапазона кодирования базового уровня равно 0, величина коррекции индекса квантования разностного сигнала базового уровня в этом поддиапазоне кодирования равна 0, и если число распределения битов поддиапазона представляет собой определенное максимальное число распределения битов, значение огибающей амплитуды разностного сигнала в этом поддиапазоне равно 0; и
модуль расчета индексов квантования огибающей амплитуды разностных сигналов предназначен для выполнения расчета разности между индексом квантования огибающей амплитуды поддиапазона кодирования базового уровня и величиной коррекции индекса квантования соответствующего поддиапазона кодирования для получения индекса квантования огибающей амплитуды поддиапазона кодирования разностного сигнала базового уровня.
Кроме того, мультиплексор потока битов предназначен для записи кодированных битов сигналов кодирования расширенного уровня в поток битов в порядке начальных значений важности поддиапазонов кодирования сигналов кодирования расширенного уровня от большой до малой и, предпочтительно, записи кодированных битов низкочастотных поддиапазонов кодирования в поток битов для поддиапазонов кодирования одинаковой важности.
Конкретные функции различных устройств (модулей) на ФИГ. 6 подробно описаны в описании процесса, проиллюстрированного на ФИГ. 2.
Способ и система декодирования
Исходя из идеи настоящего изобретения, предлагаемый способ иерархического декодирования звука в соответствии показан на ФИГ. 7, и этот способ декодирования включает следующие стадии.
На стадии 701 поток битов, переданный с конца кодирования, демультиплексируют, кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня декодируют для получения индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; если информация обнаружения транзиентов указывает на наличие переходного сигнала, индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня затем переставляют соответственно, так что соответствующие им частоты выстраиваются от низких до высоких в соответствующих уровнях.
На стадии 702 на поддиапазонах кодирования базового уровня выполняют распределение битов в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, таким образом, рассчитывают индексы квантования огибающей амплитуды разностных сигналов базового уровня, и на поддиапазонах кодирования сигналов кодирования расширенного уровня выполняют распределение битов в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня.
Способ расчета индексов квантования огибающей амплитуды разностного сигнала включает следующие стадии: стадию, на которой отыскивают статистическую таблицу величин коррекции индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с числами распределения битов базового уровня для получения значений коррекции индексов квантования огибающей амплитуды разностных сигналов базового уровня; и стадию, на которой выполняют расчет разности между индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и величинами коррекции индексов квантования огибающей амплитуды разностных сигналов базового уровня соответствующих поддиапазонов кодирования для получения индексов квантования огибающей амплитуды разностных сигналов базового уровня; причем
величина коррекции индекса квантования огибающей амплитуды разностного сигнала базового уровня каждого поддиапазона кодирования больше или равна 0 и не уменьшается, если число распределения битов соответствующего поддиапазона кодирования базового уровня увеличивается; и
если число распределения битов определенного поддиапазона кодирования базового уровня равно 0, величина коррекции индекса квантования огибающей амплитуды разностного сигнала базового уровня равна 0, и если число распределения битов определенного поддиапазона кодирования базового уровня представляет собой определенное максимальное число распределения битов, значение огибающей амплитуды соответствующего разностного сигнала базового уровня равно 0.
На стадии 703 кодированные биты коэффициентов частотной области базового уровня и кодированные биты сигналов кодирования расширенного уровня декодируют соответственно в соответствии с числами распределения битов базового уровня и расширенного уровня для получения коэффициентов частотной области базового уровня и сигналов кодирования расширенного уровня, и сигналы кодирования расширенного уровня переставляют в порядке поддиапазонов, а затем добавляют коэффициенты частотной области базового уровня для получения коэффициентов частотной области полного диапазона частот.
На стадии 704, если информация обнаружения транзиентов указывает на наличие установившегося сигнала, на коэффициентах частотной области полного диапазона частот непосредственно выполняют обратное временно-частотное преобразование для получения звукового сигнала для выхода; а если информация обнаружения транзиентов указывает на наличие переходного сигнала, коэффициенты частотной области полного диапазона частот переставляют, затем разделяют на M групп коэффициентов частотной области, на каждой группе коэффициентов частотной области выполняют обратное временно-частотное преобразование, и рассчитывают окончательный звуковой сигнал для получения в соответствии с M группами сигналов временной области, полученных путем преобразования.
Кодированные биты сигналов кодирования расширенного уровня декодируют следующим образом.
Для расширенного уровня порядок декодирования кодированных битов сигналов кодирования расширенного уровня определяют в соответствии с начальными значениями важности поддиапазонов кодирования соответствующих сигналов кодирования расширенного уровня; то есть, предпочтительно декодируют поддиапазоны кодирования сигналов кодирования расширенного уровня с большой важностью, и при наличии двух поддиапазонов кодирования сигналов кодирования расширенного уровня с одинаковой важностью предпочтительно декодируют низкочастотный поддиапазон кодирования, и в процессе декодирования рассчитывают число декодированных битов, и если число декодированных битов отвечает требованию к общему числу битов, декодирование останавливают.
ФИГ.8 представляет собой блок-схему одного варианта осуществления предлагаемого способа иерархического декодирования звука. Как показано на ФИГ.8, способ включает следующие стадии.
На стадии 801 кодированные биты одного кадра извлекают из иерархического потока битов, переданного концом кодирования (т.е., из демультиплексора потока битов DeMUX).
После извлечения кодированных битов вначале декодируют побочную информацию, а затем на кодированных битах огибающей амплитуды базового уровня в этом кадре выполняют декодирование Хаффмана или непосредственное декодирование в соответствии со значением FlagJiuff_rms_core для получения индексов квантования огибающей амплитуды Th4(j), j=0, , L_core-l поддиапазонов кодирования базового уровня.
На стадии 802 рассчитывают начальные значения важности поддиапазонов кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, и на поддиапазонах кодирования базового уровня выполняют распределение битов, используя важность поддиапазонов, для получения числа распределения битов базового уровня; способ распределения битов на конце декодирования является полностью таким же, как и способ распределения битов на конце кодирования. В процессе распределения битов длина шага распределения битов и длина шага снижения важности поддиапазонов кодирования после распределения битов являются переменными.
После завершения вышеуказанного процесса распределения битов, на поддиапазонах кодирования базового уровня снова выполняют распределение битов для количества раз count_core в соответствии со значением количества раз count_core коррекции выделения битов базового уровня на конце кодирования и важностью поддиапазонов кодирования базового уровня, и затем весь процесс распределения битов заканчивают.
В процессе распределения битов длина шага для выделения бита поддиапазону кодирования, число распределения битов которого равно 0, равна 1 биту, а длина шага уменьшения важности после распределения битов равна 1; длина шага распределения битов равна 0,5 бита, если поддиапазону кодирования, число распределения битов которого более 0 и менее некоторого порога, дополнительно выделяют бит, и длина шага уменьшения важности после распределения битов также равна 0,5; и длина шага распределения битов равна 1 биту, если поддиапазону кодирования, число распределения битов которого более или равно этому порогу, дополнительно выделяют бит, и длина шага уменьшения важности после распределения битов также равна 1.
На стадии 803 на кодированных битах коэффициентов частотной области базового уровня выполняют процессы декодирования, обратного квантования и обратной нормализации, используя числа распределения битов поддиапазонов кодирования базового уровня и квантованные значения огибающей амплитуды поддиапазонов кодирования базового уровня и в соответствии с Flag_huff_PLVQ_core для получения коэффициентов частотной области базового уровня.
На стадии 804 при выполнении декодирования, обратного квантования на кодированных битах коэффициентов частотной области базового уровня поддиапазоны кодирования базового уровня разделяют на низкобитовые поддиапазоны кодирования и высокобитовые поддиапазоны кодирования в соответствии с числами распределения битов поддиапазонов кодирования базового уровня, и на низкобитовых поддиапазонах кодирования и высокобитовых поддиапазонах кодирования выполняют обратное квантование, используя метод пирамидально-решетчатого векторного квантования/обратного квантования и метод сферически-решетчатого векторного квантования/ обратного квантования соответственно.
На низкобитовых поддиапазонах кодирования выполняют декодирование Хаффмана, или на низкобитовых поддиапазонах кодирования выполняют натуральное декодирование в соответствии с побочной информацией базового уровня для получения индексов пирамидально-решетчатого векторного квантования низкобитовых поддиапазонов кодирования, и на всех индексах пирамидально-решетчатого векторного квантования выполняют обратное квантование и обратную нормализацию для получения коэффициентов частотной области поддиапазонов кодирования. Процесс пирамидально-решетчатого векторного квантования/обратного квантования описан ниже:
a) для всех j=0, , L_core-1, если Flag_niuff_PLVQ_core=0, m-й индекс векторного квантования index_b(j,m) низкобитового поддиапазона кодирования j получают путем непосредственного декодирования; а если Flag_nuff_PLVQ_core=1, m-й индекс векторного квантования index_b(j,m) низкобитового поддиапазона кодирования j получают в соответствии с таблицей кодов кодирования по методу Хаффмана, соответствующей числу распределения битов одного коэффициента частотной области поддиапазона кодирования.
Если число битов, выделенных одному коэффициенту частотной области поддиапазона кодирования, равно 1, и если значение обычного двоичного кода индекса квантования менее "1111 111", индекс квантования рассчитывают в соответствии со значением обычного двоичного кода; а если значение обычного двоичного кода индекса квантования равно "1111 111", продолжают считывать следующий бит, и если следующий бит равен 0, значение индекса квантования равно 127, а если следующий бит равен 1, значение индекса квантования равно 128.
b) процесс пирамидально-решетчатого векторного обратного квантования индексов квантования представляет собой обратный процесс векторного квантования 108, который является следующим:
1) определяют поверхность пирамиды энергии, где находится индекс векторного квантования, и метку на этой поверхности пирамиды энергии.
На поверхности пирамиды энергии отыскивают kk от 2 до LargeK(region_bit(j)) так, чтобы выполнялось следующее неравенство:
N(8,kk)<=index_b(j,m)<N(8,kk+2),
Если такое kk находят, то К=kk - это энергия поверхности пирамиды, на которой находится узловая точка D8, которой соответствует индекс квантования index_b(j,m), b=index_b(j,m)-N(8,kk) - метка индекса узловой точки D8 на поверхности пирамиды, на которой находится узловая точка D8.
Если такое kk найти не могут, энергия поверхности пирамиды узловой точки D8, которой соответствует квантования index_b(j,m), K=0, и метка индекса b=0.
2) конкретные стадии решения вектора узловой точки D8 Y=(y1, y2 y3, y4, y5, y6, y7, y8), энергия поверхности пирамиду которой равна К, и метка индекса равна b, являются следующими:
на стадии 1 принимают Y=(0,0,0,0,0,0,0,0), xb=0, i=1, k=K, l=8;
на стадии 2, если b=xb, то yi=0; и перескакивают на стадию 6;
на стадии 3, если b<xb+N(l-1,k), то yi=0, и перескакивают на стадию 5;
в противном случае, xb=xb+N(l-1,k); и принимают j=l;
на стадии 4, если b<xb+2*N(l-1,k-j), то
если xb<=b<xb+N(l-l1,k-j), то yi=j;
если b>=xb+N(l-1,k-j), то yi=-j, xb=xb+N(l-1, k-j);
в противном случае, xb=xb+2*N(l-1, k-j), j=j+1; и данную стадию продолжают;
на стадии 5 корректируют k=k-|yi|, 1=1-1, i=i+1, и если k>0, то перескакивают на стадию 2;
на стадии 6, если k>0, то y8=k-|yi|, и Y=(y1, у2, , y8) - решенная узловая точка.
3) энергию решенной узловой точки D8 обратно регуляризуют для получения:
где а=(2-6, 2-6, 2-6, 2-6, 2-6, 2-6 , 2-6, 2-6), scale(index) - масштабный множитель, который можно найти в таблице 5.
4) на выполняют процесс обратной нормализации для получения коэффициента частотной области m-го вектора поддиапазона кодирования у, восстановленного концом декодирования:
где Thq(j) - индекс квантования огибающей амплитуды j-го поддиапазона кодирования.
На кодированных битах высокобитовых поддиапазонов кодирования непосредственно выполняют натуральное декодирование для получения m-то индекса вектора к высокобитового поддиапазона кодирования j, и выполнение процесса обратного квантования сферически-решетчатого векторного квантования на этом векторе индекса представляет собой фактически процесс, обратный процессу квантования, и его конкретные стадии являются следующими:
а) рассчитывают x=k*G, и рассчитывают ytemp=x/(2 (region_biti(j)); где k - вектор индекса векторного квантования, и region_bit{j) представляет число распределения битов одного коэффициента частотной области в поддиапазоне кодирования j; G - генерационная матрица узловых точек £>8 , и ее форма выглядит следующим образом:
b) рассчитывают y=x-fD8(ytemp)*2 ((region_bit(j));
c) энергию решенных узловых точек D8 обратно регуляризуют для получения:
где a=(2-6, 2-6 , 2-6, 2-6, 2-6, 2-6 , 2-6, 2-6), scale(region_bit(j)) - масштабный множитель, который можно найти в таблице 10.
d) на выполняют процесс обратной нормализации для получениякоэффициентов частотной области m-го вектора поддиапазона кодирования j, восстановленного концом декодирования:
где Thq(j) - индексы квантования огибающей амплитуды j-го поддиапазона кодирования.
На стадии 805 рассчитывают индексы квантования огибающей амплитуды поддиапазонов разностных сигналов базового уровня, используя индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числа распределения битов поддиапазонов кодирования базового уровня; и способ расчета на конце декодирования является полностью таким же, как способ расчета на конце кодирования.
На кодированных битах огибающей амплитуды поддиапазонов кодирования расширенного уровня выполняют кодирование по методу Хаффмана или непосредственное в соответствии со значением Flag_huff_rms_ext для получения индексов квантования огибающей амплитуды Th q(j), j=, L_core, , L-1 поддиапазонов кодирования расширенного уровня.
На стадии 806 сигналы кодирования расширенного уровня состоят из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня, рассчитывают начальные значения важности поддиапазонов кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, и на поддиапазонах кодирования сигналов кодирования расширенного уровня выполняют распределение битов, используя начальные значения важности поддиапазонов кодирования сигналов кодирования расширенного уровня, для получения числа распределения битов поддиапазонов кодирования сигналов кодирования расширенного уровня.
Способ расчета начальных значений важности поддиапазонов кодирования конца декодирования и способ распределения битов являются такими же, как таковые конца кодирования.
На стадии 807 рассчитывают сигналы кодирования расширенного уровня.
На кодированных битах сигналов кодирования выполняют декодирование и обратное квантование, используя числа распределения битов сигналов кодирования расширенного уровня, и на обратно квантованных данных выполняют обратную нормализацию, используя квантованные значения огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, для получения сигналы кодирования расширенного уровня.
Способы декодирования и обратного квантования расширенного уровня являются такими же, как способы базового уровня.
На данной стадии порядок декодирования поддиапазонов кодирования сигналов кодирования расширенного уровня определяют в соответствии с начальными значениями важности поддиапазонов кодирования сигналов кодирования расширенного уровня. При наличии двух поддиапазонов кодирования сигналов кодирования расширенного уровня одинаковой важности предпочтительно декодируют низкочастотный поддиапазон кодирования, и при этом рассчитывают число декодированных битов, и если число декодированных битов отвечает требованию к общему числу битов, декодирование останавливают.
Например, битрейт передачи с конца кодирования в конец декодирования равен 64 кбит/сек; однако по причинам, связанным с сетью, конец декодирования может получать информацию лишь с битрейтом 48 кбит/сек в передней части потока битов, или конец декодирования поддерживает декодирование лишь 48 кбит/сек, и, следовательно, декодирование останавливают, если конец декодирования декодирует до 48 кбит/сек.
На стадии 808 сигналы кодирования, полученные декодированием на расширенном уровне, переставляют в порядке поддиапазонов, и к коэффициентам частотной области базового уровня с такими же частотами добавляют сигналы кодирования расширенного уровня для получения выходных значений коэффициентов частотной области.
На стадии 809 на поддиапазонах, которым в процессе кодирования не выделены кодированные биты, или на поддиапазонах, которые утрачены в процессе передачи, выполняют заполнение шума.
На стадии 810, если бит флажка обнаружения транзиентов Flagjransient равен 1, коэффициенты частотной области переставляют, то есть, все коэффициенты частотной области, соответствующие L поддиапазонам в таблице 2, переставляют в соответствующие местоположения первоначальных индексов коэффициентов частотной области, и коэффициенты частотной области, соответствующие индексам коэффициентов частотной области, которые не указаны в таблице 2, устанавливают как 0.
На стадии 811 на коэффициентах частотной области выполняют обратное временно-частотное преобразование для получения окончательного выходного звукового сигнала. Конкретные стадии являются следующими.
Если бит флажка обнаружения транзиентов Flag_transient равен 0, на N-точечных коэффициентах частотной области выполняют обратное преобразование ДКПIV, длина которого равна N, для получения , n=0, , N-1.
Если бит флажка обнаружения транзиентов Flag_transient равен 1, N-точечные коэффициенты частотной области вначале разделяют на 4 группы одинаковой длины, и на каждой группе коэффициентов частотной области выполняют обратную обработку по подавлению помех дискретизации во временной области и обратное преобразование ДКПIV, длина которого равна N14, затем на 4 группах полученных сигналов выполняют процесс взвешивания с помощью окна (структура окна является такой же, как и структура окна конца кодирования), и затем 4 группы взвешенных окном сигналов перекрывают и добавляют для получения , n=0, , N-1.
На , n=0, , N-1 выполняют обратную обработку с наложением спектра во временной области и процесс взвешивания с помощью окна (структура окна является такой же, как и структура окна конца кодирования). Два смежных кадра перекрывают и добавляют для получения окончательного выходного звукового сигнала.
ФИГ.9 представляет собой блок-схему предлагаемой системы иерархического декодирования звука. Как показано на ФИГ. 9, система содержит: демультиплексор потока битов (DeMUX), устройство декодирования огибающей амплитуды поддиапазонов кодирования базового уровня, устройство распределения битов базового уровня, устройство декодирования и обратного квантования базового уровня, устройство генерирования огибающей амплитуды разностных сигналов, устройство распределения битов расширенного уровня, устройство декодирования и обратного квантования сигналов кодирования расширенного уровня, устройство восстановления коэффициентов частотной области полного диапазона частот, устройство заполнения шума и устройство восстановления звукового сигнала; причем
устройство декодирования огибающей амплитуды соединено с демультиплексором потока битов и предназначено для того чтобы: декодировать кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, которые выдаются демультиплексором потока битов, для получения индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; и если информация обнаружения транзиентов указывает на наличие переходного сигнала, дополнительно переставлять индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, так что соответствующие им частоты выстраиваются от низких до высоких в соответствующих уровнях;
устройство распределения битов базового уровня соединено с устройством декодирования огибающей амплитуды и предназначено для выполнения распределения битов на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня для получения числа распределения битов поддиапазонов кодирования базового уровня;
устройство декодирования и обратного квантования базового уровня соединено с демультиплексором потока битов, устройством декодирования огибающей амплитуды и устройством распределения битов базового уровня и предназначено для того чтобы: выполнить расчет для получения квантованных значений огибающей амплитуды поддиапазонов кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, выполнить процесс декодирования, обратного квантования и обратной нормализации на кодированных битах коэффициентов частотной области базового уровня, выдаваемых демультиплексором потока битов, используя числа распределения битов и квантованные значения огибающей амплитуды поддиапазонов кодирования базового уровня, для получения коэффициентов частотной области базового уровня;
устройство генерирования огибающей амплитуды разностных сигналов соединено с устройством декодирования огибающей амплитуды и устройством распределения битов базового уровня и предназначено для того чтобы: отыскивать статистическую таблицу величин коррекции индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня и числами распределения битов соответствующих поддиапазонов кодирования для получения индексов квантования огибающей амплитуды разностных сигналов базового уровня;
устройство распределения битов расширенного уровня соединено с устройством генерирования огибающей амплитуды разностных сигналов и устройством декодирования огибающей амплитуды и предназначено для того чтобы: выполнять распределение битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня для получения числа распределения битов поддиапазонов кодирования сигналов кодирования расширенного уровня;
устройство декодирования и обратного квантования сигналов кодирования расширенного уровня соединено с демультиплексором потока битов, устройством декодирования огибающей амплитуды, устройством распределения битов расширенного уровня и устройством генерирования огибающей амплитуды разностных сигналов и предназначено для того чтобы: выполнять расчет для получения квантованных значений огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, используя индексы квантования огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, и выполнять процесс декодирования, обратного квантования и обратной нормализации на кодированных битах сигналов кодирования расширенного уровня, выдаваемых демультиплексором потока битов, используя числа распределения битов и квантованные значения огибающей амплитуды поддиапазонов кодирования сигналов кодирования расширенного уровня, для получения сигналов кодирования расширенного уровня;
устройство восстановления коэффициентов частотной области полного диапазона частот соединено с устройством декодирования и обратного квантования базового уровня и устройством декодирования и обратного квантования сигналов кодирования расширенного уровня и предназначено для того чтобы: переставлять сигналы кодирования расширенного уровня, выданные устройством декодирования и обратного квантования сигналов кодирования расширенного уровня, в порядке поддиапазонов кодирования, и затем добавлять коэффициенты частотной области базового уровня, выданные устройством декодирования и обратного квантования базового уровня, для получения коэффициентов частотной области полного диапазона частот;
устройство заполнения шума соединено с устройство восстановления коэффициентов частотной области полного диапазона частот и устройством декодирования огибающей амплитуды и предназначено для выполнения заполнения шума на поддиапазонах, которым в процессе кодирования кодированные биты не выделены;
устройство восстановления звукового сигнала соединено с устройством заполнения шума и предназначено для того чтобы: если информация обнаружения транзиентов указывает на наличие установившегося сигнала, непосредственно выполнять обратное временно-частотное преобразование на коэффициентах частотной области полного диапазона частот для получения звукового сигнала для выхода; а если информация обнаружения транзиентов указывает на наличие переходного сигнала, переставлять коэффициенты частотной области полного диапазона частот, затем разделять на M групп коэффициентов частотной области, на каждой группе коэффициентов частотной области выполнять обратное временно-частотное преобразование, и выполнять расчет для получения окончательного звукового сигнала в соответствии с M группами сигналов временной области, полученных путем преобразования.
Кроме того, устройство генерирования огибающей амплитуды разностных сигналов содержит модуль поиска величин коррекции индексов квантования и модуль расчета индексов квантования огибающей амплитуды разностных сигналов;
модуль поиска величин коррекции индексов квантования предназначен для поиска статистической таблицы величин коррекции индексов квантования огибающей амплитуды разностных сигналов базового уровня в соответствии с числами распределения битов поддиапазонов кодирования базового уровня для получения величин коррекции индексов квантования поддиапазонов кодирования разностных сигналов, причем величина коррекции индекса квантования каждого поддиапазона кодирования больше или равна 0, и не уменьшается, если число распределения битов соответствующего поддиапазона кодирования базового уровня увеличивается, а если число распределения битов определенного поддиапазона кодирования базового уровня равно 0, величина коррекции индекса квантования разностного сигнала базового уровня в этом поддиапазоне кодирования равна 0, и если число распределения битов определенного поддиапазона кодирования базового уровня представляет собой определенное максимальное число распределения битов, значение огибающей амплитуды разностного сигнала в этом поддиапазоне кодирования равно 0; и
модуль расчета индексов квантования огибающей амплитуды разностных сигналов предназначен для выполнения расчета разности между индексом квантования огибающей амплитуды поддиапазона кодирования базового уровня и величиной коррекции индекса квантования соответствующего поддиапазона кодирования для получения индекса квантования огибающей амплитуды поддиапазона кодирования разностного сигнала базового уровня.
Кроме того, устройство декодирования и обратного квантования сигналов кодирования расширенного уровня предназначено для того чтобы: определять порядок декодирования поддиапазонов кодирования сигналов кодирования расширенного уровня в соответствии с начальными значениями важности поддиапазонов кодирования сигналов кодирования расширенного уровня, предпочтительно декодировать поддиапазоны кодирования сигналов кодирования расширенного уровня с большой важностью; и при наличии двух поддиапазонов кодирования сигналов кодирования расширенного уровня с одинаковой важностью предпочтительно декодировать поддиапазоны кодирования низкой частоты, и рассчитывать число декодированных битов в процессе декодирования; и если число декодированных битов отвечает требованию к общему числу битов, останавливать декодирование.
Порядок декодирования поддиапазонов кодирования сигналов кодирования расширенного уровня устройством декодирования и обратного квантования сигналов кодирования расширенного уровня определяется в соответствии с начальными значениями важности поддиапазонов кодирования сигналов кодирования расширенного уровня, предпочтительно декодируют поддиапазоны кодирования сигналов кодирования расширенного уровня с большой важностью; и при наличии двух поддиапазонов кодирования сигналов кодирования расширенного уровня с одинаковой важностью предпочтительно декодируют низкочастотный поддиапазон кодирования, и в процессе декодирования рассчитывают число декодированных битов, и если число декодированных битов отвечает требованию к общему числу битов, декодирование останавливают.
Перестановка коэффициентов частотной области полного диапазона частот устройством восстановления звукового сигнала представляет собой, в частности, следующее: перестановку коэффициентов частотной области, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот в соответствующих субкадрах, для получения M групп коэффициентов частотной области, и затем перестановку M групп коэффициентов частотной области в порядке субкадров.
Если информация обнаружения транзиентов указывает на наличие переходного сигнала, процесс расчета для получения окончательного звукового сигнала устройством восстановления звукового сигнала в соответствии с M группами сигналов временной области, полученных путем преобразования, в частности, включает следующие стадии: стадию, на которой выполняют обратную обработку с наложением спектра во временной области на каждой группе сигналов временной области, затем стадию, на которой на M группах полученных сигналов выполняют процесс взвешивания с помощью окна, и затем стадию, на которой перекрывают и прибавляют M групп взвешенных окном сигналов для получения JV-точечного дискретизированного сигнала временной области хч(п); и стадию, на которой выполняют обратную обработку с наложением спектра во временной области и процесс взвешивания с помощью окна на сигнале временной области и стадию, на которой перекрывают и прибавляют два смежных кадра для получения окончательного выходного звукового сигнала.
Настоящее изобретение обеспечивает также способы иерархического кодирования и декодирования для переходных сигналов.
Предлагаемый способ иерархического кодирования звука для переходных сигналов согласно настоящему изобретению включает следующее:
A1) разделение звукового сигнала на M субкадров, на каждом субкадре выполняют временно-частотное преобразование, M группами коэффициентов частотной области, полученных путем преобразования, образуют коэффициенты полной частотной области текущего кадра, переставляют коэффициенты полной частотной области, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот, причем коэффициенты полной частотной области содержат коэффициенты частотной области базового уровня и коэффициенты частотной области расширенного уровня, поддиапазоны кодирования содержат поддиапазоны кодирования базового уровня и поддиапазоны кодирования расширенного уровня, коэффициенты частотной области базового уровня создают несколько поддиапазонов кодирования базового уровня, а коэффициенты частотной области расширенного уровня создают несколько поддиапазонов кодирования расширенного уровня;
В1) квантование и кодирование значений огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня для получения индексов квантования огибающей амплитуды и кодированных битов поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня; причем значения огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня квантованы отдельно соответственно, и индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и индексы квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня переставляют соответственно;
С1) выполнение распределения на поддиапазонах кодирования базового уровня в соответствии с индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, а затем коэффициенты частотной области базового уровня квантуют и кодируют для получения кодированных битов коэффициентов частотной области базового уровня;
D1) обратное квантование вышеописанных коэффициентов частотной области на базовом уровне, на которых выполняют векторное квантование, и выполнение расчета разности между обратно квантованными коэффициентами частотной области и первоначальными коэффициентами частотной области, полученными после выполнения временно-частотного преобразования, для получения разностных сигналов базового уровня;
Е1) расчет индексов квантования огибающей амплитуды поддиапазонов кодирования разностных сигналов базового уровня в соответствии с индексами квантования огибающей амплитуды и числами распределения битов поддиапазонов кодирования базового уровня;
F1) выполнение распределения битов на поддиапазонах кодирования сигналов кодирования расширенного уровня в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня, и затем квантование и кодирование сигналов кодирования расширенного уровня для получения кодированных битов сигналов кодирования расширенного уровня, причем сигналы кодирования расширенного уровня состоят из разностных сигналов базового уровня и коэффициентов частотной области расширенного уровня; и
G1) мультиплексирование и пакетирование кодированных битов огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, кодированных битов коэффициентов частотной области базового уровня и кодированных битов сигналов кодирования расширенного уровня, а затем передача в конец декодирования.
На стадии А1 способ получения коэффициентов полной частотной области текущего кадра включает следующее:
составление N-точечного дискретизированного сигнала временной области N-точечным дискретизированным сигналом х(n) временной области текущего кадра и N-точечным дискретизированным сигналом xold(n) временной области последнего кадра, а затем выполнение взвешивания с помощью окна и обработка по подавлению помех дискретизации во временной области на для получения N-точечного дискретизированного сигнала временной области; и
выполнение обратной обработки на сигнале временной области, затем на обоих концах сигнала соответственно добавляют последовательность нулей, разделяют удлиненный сигнал на M перекрывающихся субкадров, а затем выполняют взвешивание с помощью окна, обработку с наложением спектра во временной области и временно-частотное преобразование на сигнале временной области каждого субкадра для получения M групп коэффициентов частотной области, и затем создают коэффициенты полной частотной области текущего кадра.
На стадии А1 при перестановке коэффициентов частотной области коэффициенты частотной области переставляют, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот, в пределах базового уровня и в пределах расширенного уровня.
Стадия В1, на которой переставляют индексы квантования огибающей амплитуды, в частности, включает:
перестановка индексов квантования огибающей амплитуды поддиапазонов кодирования, принадлежащих одному и тому же субкадру, вместе, так что соответствующие им частоты выстроены в порядке возрастания или убывания частот, и соединение индексов квантования огибающей амплитуды на границах субкадров путем использования двух поддиапазонов кодирования, которые представляют одноранговые частоты и принадлежат двум субкадрам соответственно.
На стадии G1 мультиплексирование и пакетирование выполняют в соответствии со следующим форматом потока битов:
во-первых, записывают биты дополнительной информации базового уровня сзади заголовка кадра потока битов, записывают в мультиплексор потока битов (MUX) кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня, и затем записывают в MUX кодированные биты коэффициентов частотной области базового уровня;
затем записывают в MUX биты дополнительной информации расширенного уровня, затем записывают в MUX кодированные биты огибающей амплитуды поддиапазонов кодирования коэффициентов частотной области расширенного уровня, и затем записывают в MUX кодированные биты сигналов кодирования расширенного уровня; и
передают число битов, которые отвечают требованию к битрейту, в конец декодирования в соответствии с требуемым битрейтом.
Побочная информация базового уровня содержит бит флажка обнаружения транзиентов, бит флажка кодирования по методу Хаффмана огибающих амплитуды поддиапазонов кодирования базового уровня, бит флажка кодирования по методу Хаффмана коэффициентов частотной области базового уровня и бит количества раз итерации коррекции выделения битов базового уровня.
Побочная информация расширенного уровня содержит бит флажка кодирования по методу Хаффмана огибающих амплитуды поддиапазонов кодирования расширенного уровня, бит флажка кодирования по методу Хаффмана сигналов кодирования расширенного уровня и бит количества раз итерации коррекции выделения битов расширенного уровня.
Предлагаемый способ иерархического декодирования для переходных сигналов включает следующие стадии:
на стадии А2 поток битов, переданный концом кодирования, демультиплексируют, кодированные биты огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня декодируют для получения индексов квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня, индексы квантования огибающей амплитуды поддиапазонов кодирования базового уровня и поддиапазонов кодирования расширенного уровня переставляют соответственно, так что соответствующие им частоты выстраиваются от низких до высоких в соответствующих уровнях;
на стадии В2, на поддиапазонах кодирования базового уровня выполняют распределение битов в соответствии с переставленными индексами квантования огибающей амплитуды поддиапазонов кодирования базового уровня, и, таким образом, рассчитывают индексы квантования огибающей амплитуды разностных сигналов базового уровня;
на стадии С2, на поддиапазонах кодирования сигналов кодирования расширенного уровня выполняют распределение битов в соответствии с индексами квантования огибающей амплитуды разностных сигналов базового уровня и переставленными индексами квантования огибающей амплитуды поддиапазонов кодирования расширенного уровня;
на стадии D2 кодированные биты коэффициентов частотной области базового уровня и кодированные биты сигналов кодирования расширенного уровня соответственно декодируют в соответствии с числами распределения битов базового уровня и расширенного уровня для получения коэффициентов частотной области базового уровня и сигналов кодирования расширенного уровня, и сигналы кодирования расширенного уровня переставляют в порядке поддиапазонов и прибавляют коэффициенты частотной области базового уровня для получения коэффициентов частотной области полного диапазона частот; и
на стадии Е2 коэффициенты частотной области полного диапазона частот переставляют, а затем разделяют на M групп, на каждой группе коэффициентов частотной области выполняют обратное временно-частотное преобразование, и выполняют расчет для получения окончательного звукового сигнала в соответствии с M группами сигналов временной области, полученными путем преобразования.
На стадии Е2 при перестановке коэффициентов частотной области полного диапазона частот, в частности, коэффициенты частотной области располагают, так что соответствующие им поддиапазоны кодирования выстроены от низких частот до высоких частот в соответствующих субкадрах, для получения M групп коэффициентов частотной области, а затем M групп коэффициентов частотной области располагают в порядке субкадров.
На стадии Е2 процесс расчета для получения окончательного звукового сигнала в соответствии с M группами сигналов временной области, полученных путем преобразования, включает следующие стадии: на каждой группе во временной области выполняют обратную обработку с наложением спектра, затем на M группах полученных сигналов выполняют процесс взвешивания с помощью окна, и затем перекрывают и прибавляют M групп взвешенных сигналов для получения N-точечного дискретизированного сигнала временной области; и на сигнале временной области выполняют обратную обработку с наложением спектра во временной области и процесс взвешивания с помощью окна, и перекрывают и прибавляют два смежных кадра для получения окончательного выходного звукового сигнала.
Промышленная применимость
В настоящем изобретении благодаря внедрению способа обработки для кадров переходных сигналов в способах иерархического кодирования и декодирования звука выполняют сегментированное временно-частотное преобразование на кадрах переходных сигналов, и затем коэффициенты частотной области, полученные преобразованием, переставляют соответственно в пределах базового уровня и в пределах расширенного уровня, чтобы выполнить такие же последующие процессы кодирования, такие, как распределение битов, кодирование коэффициентов частотной области и т.д., как и процессы кодирования на кадрах установившихся сигналов, тем самым повышая эффективность кодирования кадров переходных сигналов и качество иерархического кодирования и декодирования звука.
Класс G10L19/00 Техника анализа-синтеза речи для уменьшения избыточности, например в вокодерах ; кодирование или декодирование речи