5.6. Кодирование текстурыПриложения, на которые были нацелены разработчики стандарта MPEG-4, включают сценарии, когда бывает необходимо передавать неподвижные текстуры (т.е. неподвижные изображения). Блоковые преобразования типа DCT хорошо зарекомендовали себя в практических приложениях, применяющих компенсацию движения при кодировании видео. Вместе с тем общепризнанно, что дискретное вейвлетное преобразование DWT (Discrete Wavelet Transform) весьма эффективно работает при кодировании неподвижных изображений (см. гл. 3). Поэтому в стандарт MPEG-4 Visual преобразование DWT было заложено в основу компрессии неподвижных текстур. DWT используется при кодировании прямоугольных текстурных объектов (например, полных образов видеокадров), при компрессии текстурных областей произвольной формы и при кодирование текстур, накладываемых на двухмерные и трехмерные сеточные объекты (см. § 5.8). Рис. 5.67. Инструменты и объекты текстурного кодирования. Рис. 5.68. Блок-схема вейвлетного кодирования текстур. Принципиальная схема кодера неподвижных текстур показана на рис. 5.68. Двухмерное преобразование DWT применяется к текстурному объекту. При этом генерируется компонента DC (низкочастотная подполоса) и несколько компонент АС (высокочастотные подполосы) (см. гл. 3). Подполоса DC квантуется, кодируется с прогнозом (используя вариант DPCM), и к результату применяется арифметический кодер. Подполосы АС квантуются и переупорядочиваются («сканируются»), кодируются по методу нулевых деревьев и энтропийным кодером. Дискретное вейвлетное преобразование. При кодировании неподвижных текстур в MPEG-4 Visual используется биортогональный фильтр Добеши с отсчетами (9, 3) [6]. Эта пара состоит из одного фильтра нижних частот (с тремя коэффициентами или «отсчетами») и одного фильтра высоких частот (с девятью отсчетами). Квантование. Подполоса DC квантуется с использованием скалярного квантователя (см. гл. 3). Подполосы АС можно квантовать одним из следующих трех способов. 1. Скалярное квантование с помощью единственного квантователя («мода 1»), за которым следует переупорядочение и кодирование методом нулевых деревьев. 2. «Двухуровневое» квантование («мода 3») после переупорядочения. Переупорядоченные коэффициенты кодируются по битовым плоскостям (см. § 5.5.3) с помощью метода нулевых деревьев. Закодированный поток можно урезать в любой точке для получения масштабируемого кодирования весьма тонкой настройки (как и при методе FGS. описанном в предыдущем параграфе). 3. «Многоуровневое» квантование («мода 2») до переупорядочения и кодирования нулевых деревьев. В этой моде применяется несколько квантователей, начиная с грубого и кончая тонким. В результате на выходе каждого квантователя образуется соответствующий слой (это похоже на масштабируемое кодирование). Переупорядочение. Коэффициенты подполос АС сканируются и упорядочиваются одним из следующих способов. 1. В порядке деревьев. Сначала кодируется «родительский» коэффициент самой нижней подполосы, затем — «дочерние» коэффициенты следующей по высоте подполосы и т.д. Такой подход позволяет применять кодирование EZW (см. далее), основанное на корреляции между родительскими и дочерними коэффициентами. Первые три дерева для кодирования множеств коэффициентов показаны на рис. 5.69. 2. В порядке полос. Сначала кодируются все коэффициенты АС первой подполосы, затем — все коэффициенты следующей подполосы и т.д. (рис. 5.70). Такой метод сканирования снижает степень сжатия, однако в нем имеется определенное преимущество. Эта схема позволяет делать пространственное масштабирование, так как декодер может извлекать изображение с меньшим разрешением, декодируя неполное семейство подполос. Рис. 5.69. Сканирование в порядке деревьев. Рис. 5.70. Сканирование в порядке полог Кодирование подполосы DC. Коэффициенты подполосы DC кодируются с использованием метода DPCM. Каждый коэффициент пространственно прогнозируется по соседним, ранее закодированным коэффициентам. Кодирование подполосы АС. Коэффициенты подполос АС сжимаются по методу кодирования вложенных нулевых деревьев EZW (Embedded Zerotree Wavelet coding). Коэффициенты каждого дерева (или каждой подполосы при использовании сканирования по подполосам) кодируются начиная с первого коэффициента корня дерева при сканировании в порядке деревьев), и каждый такой коэффициент кодируется одним из четырех символов, перечисленных в табл. 5.9. Таблица 5.9. Кодирующие символы метода нулевых деревьев.
Энтропийное кодирование. Символы, получающиеся при кодировании подполос DC и АС, далее сжимаются энтропийным арифметическим кодером, использующим контекст. Этот метод обсуждается в § 5.4.1 и в гл. 6.
|