Раздел: Документация
0 ... 25 26 27 28 29 30 31 ... 122 ментов можно кодировать компактным образом, если, например, представлять весь массив в виде последовательности пар («серия», «значение»), где «серия» обозначает число последовательных нулей, за которыми следует ненулевой элемент, величина которого задается числом «значение». Пример- Входной массив: 16, 0, 0, -3, 5, 6, 0, 0, 0, 0, -7, ... Выходные пары: (0,16), (2,-3), (0,5), (0,6), (4,-7), ... Каждый выходной символ (пара серия-значение) кодируется индивидуально с помощью энтропийного кодера. Конец примера Рис. 3.41. Сканирование зигзагом (кадр). начало оооооо II (I о о о о о о о-о оооооо конец Рис. 3.42. Сканирование зигзагом (часть кадра). Высокочастотные коэффициенты DCT часто квантуются в нули, поэтому переупорядоченные блоки будут часто .заканчиваться сериями из одних нулей. Для этого необходимо предусмотреть специальный символ, указывающий на последний ненулевой элемент переупорядоченного массива. При «двухмерном» кодировании символами вида («серия», «значение») каждая пара кодируется так. как указано выше, и еще используется некоторый выделенный кодовый символ - «конец», указывающий на завершение ненулевых коэффициентов в массиве. При «трехмерном» кодировании каждый символ состоит из трех компонент («серия», «значение», «конец»). В рассмотренном выше примере, если последним ненулевым коэффициентом было число —7, то соответствующие трехмерные символы: (0,16,0), (2,-3,0), (0,5,0), (0.6.0). (4,-7.1). Число 1 в последнем коде указывает на завершающий ненулевой коэффициент блока. 3.44.2. Вейвлет Распределение коэффициентов. На рис. 3.35 дано типичное распределение двухмерных вейвлетных коэффициентов. Значения многих коэффициентов, относящиеся к высокочастотной подполосе (внизу справа на рисунке), близки к нулю, и их можно прокванто-вать нулем без существенной потери качества изображения. Ненулевые коэффициенты формируют структуры изображения. Например, наклон скрипки проявляется в виде четкой горизонтальной структуры на горизонтальных и диагональных подполосах. Когда коэффициент в низкочастотной области не равен нулю, то с большой вероятностью коэффициенты в соответствующих позициях высокочастотных подполос также будут ненулевыми. Можно рассмотреть дерево ненулевых квантованных коэффициентов с корнем в низкочастотной области. На рис. 3.43 показана эта концепция. Единственный коэффициент в области LL первого слоя имеет по одному соответствующему коэсрфициенту во всех других областях данного слоя (т.е. все четыре коэффициента соответствуют одной и той же области исходного изображения). Позиция коэффициента слоя 1 отображается на 4 соответствующие дочерние позиции каждой под-полосы слоя 2 (напомним, что подполоса слоя 2 имеет двойное разрешение по горизонтали и вертикали по сравнению со слоем 1). слой 1слой 2 ! -г п-+*в I it...-
Рис. 3.43. Вейвлетный коэффициент и его «потомки». Кодирование нулевого дерева. Желательно кодировать ненулевые вейвлетные коэффициенты компактным образом до применения энтропийного кодера [6]. Эффективный метод решения этой задачи состоит в кодировании каждого дерева ненулевых коэффициентов начиная с самого низкого (корневого) уровня разложения. Кодируется коэффициент на самом нижним уровнем, за ним следует коэффициент дочерней позиции более высокого уровня и т.д. Процесс кодирования продолжается до тех пор, пока дерево не достигнет нулевого коэффициента. Коэффициенты на следующих уровнях, скорее всего, также будут нулевыми, поэтому имеет смысл представлять их единственным кодом, который обозначает дерево из одних нулей (нулевое дерево). Декодер реконструирует карту коэффициентов начиная с корня каждого дерева. Сначала декодируются и восстанавливаются ненулевые коэффициенты, а по достижении кода нулевого дерева все оставшиеся «потомки» полагаются равными нулю. Это построение лежит в основе метода вложенных нулевых деревьев (EZW, Embedded Zero Tree) кодирования вей-влетных коэффициентов. В процесс кодирования включена дополнительная возможность, когда за нулевым коэффициентом следует нулевое дерево (как раньше) или ненулевой дочерний коэффициент. Во втором случае происходит достаточно редко, однако качество восстанавливаемого изображения несколько улучшится, если алгоритм будет обслуживать такие возможности. 3.5. Энтропийный кодер Энтропийный кодер преобразовывает последовательности символов, представляющих элементы видеопоследовательности, в сжатый поток битов, который можно сохранять в файле или передавать по 0 ... 25 26 27 28 29 30 31 ... 122
|