009 Блочное кодирование с векторным квантованием.ppt
- Количество слайдов: 17
Блочное кодирование с векторным квантованием Алгоритмы LBG, Эквитца и др.
Принцип векторного кодирования • Весь набор блоков (векторов) изображения приводится к некоторому конечному набору • Вместо непосредственной передачи кодовых последовательностей, характеризующих значения пикселов в каждом блоке, передается лишь номер блока • Количество возможных векторов (блоков изображения) определяется при этом пропускной способностью канала
Преимущества и недостатки векторного кодирования • Основное преимущество – простая структура приёмника, который имеет лишь кодовую таблицу векторов, а воспроизведение изображения осуществляется путем последовательной расстановки этих векторов согласно поступающей из канала связи информации • При адаптивном векторном квантовании, кроме того, передается информация об эталонных векторах • Недостатки – сложность кодера, плохая аппроксимация изображений, отличающихся от тех эталонных, по которым составлялась кодовая таблица
Формирование кодовой книги • Существуют специальные алгоритмы формирования кодовых таблиц с использованием эталонных изображений • Иногда для ускорения процесса векторного кодирования и увеличения скорости передачи блоки изображения разбиваются на классы, для каждого из которых составляется своя кодовая таблица • Обычно формируется специальный набор блоков изображения (кодовой книги), составленный по принципу наилучшего приближения к блокам исходного изображения (например, минимизацией среднеквадратичного отклонения)
Кодовая книга • Содержание кодовой книги и номера (кодовые слова) ее элементов, на которые были заменены блоки исходного изображения, упорядоченные в порядке сканирования этих блоков, передаются декодеру, при этом количество элементов этой книги должно быть меньше количества блоков исходного изображения • Если рассматривать различные блоки размера n×m пикселов как точки-вектора в (n×m)‑мерном пространстве изображений, то процесс замены их на элементы кодовой книги выглядит как квантование (вообще говоря, неравномерное) такого пространства на области сложной формы, окружающие точки, соответствующие изображениям-элементам кодовой книги
Кодовая книга (2) • Пусть исходное изображение имеет размерность N×M пикселов, тогда при прямоугольном разбиении получается (N×M)/(n×m) блоков размерности n×m • Если кодовая книга будет содержать k элементов, то на ее передачу потребуется k×n×m×l бит, а последовательность кодовых слов займет еще ((N×M)/(n×m))log 2 k бит, где l – разрядность пикселов изображения (часто равно 8) • При этом достигается степень сжатия R (с1 – степень сжатия кодовой книги, упакованной, например, статистическим кодером):
Оптимизация кодовой книги • Сжатие с помощью векторного квантования предполагает обязательную потерю части информации, т. е. внесение искажений в исходное изображение • В процессе оптимизации процесса векторного квантования эти искажения минимизируются путем: – выбора оптимального размера блока n×m – выбора оптимального размера кодовой книги k – составления оптимального набора изображений – элементов кодовой книги • Существует и может быть найден глобальный оптимум одновременно по всем трем перечисленным параметрам
Оптимизация кодовой книги (2) • Положение оптимума определяется распределением (N×M)/(n×m) точек-блоков из исходного изображения в (n×m)-мерных пространствах изображении при различных n×m • При равномерном распределении, что соответствует некоррелированному шуму в исходном изображении, оптимальным оказывается равномерное квантование каждого пиксела исходного изображения, т. е. n×m = 1; k = 2 l/(2 d); Ki = 2×i×d, где d – максимальная ошибка квантования; 2 l – количество дискретных уровней в исходном изображении, Ki – i-й уровень воспроизводимых дискретных значений яркости пикселов
Оптимизация кодовой книги (3) • В изображении с коррелированными значениями яркости пикселов точки-блоки распределены в пространстве изображений неравномерно, и центром «сгустков» таких точек могут составить набор элементов кодовой книги, так что усредненная по исходному изображению ошибка, вносимая векторным квантованием, окажется меньшей, чем, например, при равномерном квантовании пространства изображений • Использованная модель представления блоков изображения в виде точек в многомерном пространстве изображений с вычислительной точки зрения слишком сложна, т. к. при этом придется работать с массивами данных объемом в (2 l)nm бит, что составляет, например, для блоков 4× 4 пиксела и l = 8 28 4 4 = 2128 – неприемлемую величину
Оптимизация кодовой книги (4) • Как правило, объем кодовой книги и размерность блоков выбирают, исходя из ожидаемой степени сжатия (для R = 10 обычно выбирают n×m = 16 (блоки 4× 4); для R = 30 – n×m = 64 (блоки 8× 8); количество элементов кодовой книги k обычно достигает нескольких тысяч) • Основными задачами оптимизации кодирования при этом оказываются: – составление оптимального набора изображений – элементов кодовой книги – поиск элемента кодовой книги, наилучшим образом соответствующего очередному кодируемому блоку из исходного изображения
Алгоритм LBG (Linde, Buzo, Gray) • В 1980 году Linde, Buzo и Gray предложили алгоритм составления кодовой книги, дающий наилучшие результаты • Алгоритм состоит из двух процедур, последовательноитерационно применяемых к системе – исходное изображение плюс кодовая книга, полученная в результате применения какого-либо иного предварительного алгоритма, или составленная наугад из случайных изображений (от качества этой предварительной кодовой книги зависит лишь число итераций, которые необходимо будет произвести, прежде чем кодовая книга перестанет изменяться при каждой следующей итерации)
Последовательность итерационных процедур алгоритма LBG • • Процедура присваивания блокам исходного изображения соответствия тому или иному элементу текущей кодовой книги; множество блоков, составляющих исходное изображение, разбивается на непересекающиеся подмножества, состоящие из блоков исходного изображения (необязательно в одном и том же количестве) близких друг к другу и к некоторому элементу кодовой книги, в соответствии с некоторой мерой (например, среднеквадратичным или максимальным отклонением яркости по блоку); число непересекающихся подмножеств должно быть равно количеству элементов текущей кодовой книги (оно может быть меньше конечной величины k) Процедура «улучшения» текущей кодовой книги – замена ее элементов путем построения для каждого из полученных в предыдущей процедуре подмножеств блоков такого элемента кодовой книги, который бы минимизировал некоторое среднее отклонение от него всех блоков подмножества в смысле выбранной меры; при этом блоков – новых элементов кодовой книги, соответствующих каждому подмножеству, может быть и больше одного, тогда происходит «расщепление» элемента текущей кодовой книги, так что ее объем может быть постепенно доведен до заранее выбранного значения k
«Расщепление» в алгоритме LBG • • Если «расщепления» не происходит, то новый блок – элемент кодовой книги находится, например, путем попиксельного арифметического усреднения яркостей всех блоков подмножеств при использовании в качестве меры среднеквадратичного отклонения или же путем определения медианы значений яркостей соответствующих пикселов по всему подмножеству блоков при использовании в качестве меры максимального отклонения «Расщепление» представляет собой задачу нахождения оптимальной кодовой книги малого объема, где в качестве исходного изображения выступает рассматриваемое подмножество блоков; при таком решении этой задачи сложность общего алгоритма оказывается неприемлемо высокой Обычно нахождение оптимальной кодовой книги осуществляется упрощенными способами – от случайного разбиения подмножеств на ряд более мелких, до выбора в качестве новых элементов кодовой книги системы собственных векторов ковариационной матрицы, рассчитанной для подмножества блоков, имеющих наибольшие соответствующие собственные значения (метод Кархунена-Лоева) Решение вопроса о том осуществлять ли «расщепление» в данном подмножестве, или нет, может быть принято из различных соображений, например, исходя из анализа величины дисперсии блоков в подмножестве
Достоинства и недостатки алгоритма LBG • Алгоритм LBG весьма гибок, и предполагает дальнейшую оптимизацию в конкретном применении • Недостатком алгоритма LBG является то, что большой объем необходимых для его исполнения вычислительных операций не поддается ни сокращению, ни распараллеливанию: на каждой итерации в первой процедуре приходится перебирать все блоки исходного изображения, сравнивая каждый из них со всеми элементами текущей кодовой книги, что не позволяет непосредственно применять LBG в системах реального времени • Данный недостаток в значительной мере компенсируется тем, что в качестве предварительной кодовой книги можно использовать результат применения иных алгоритмов (например, алгоритма Эквитца), используя LBG лишь для окончательной оптимизации кодовой книги на малом количестве итераций (возможно) без «расщеплений»
Алгоритм Эквитца • Данный алгоритм составления кодовой книги основан на последовательном сокращении (в противоположность LBG) числа элементов исходной кодовой книги • В качестве исходной кодовой книги используется само исходное изображение; сокращение осуществляется путем поиска пары элементов текущей кодовой книги, менее всего отличающихся друг от друга в смысле некоторой меры, с последующей заменой такой пары блоком, полученным попиксельным арифметическим усреднением значений яркости в этой паре • Эту операцию осуществляют до тех пор, пока размер кодовой книги не станет равен требуемому значению • Алгоритм Эквитца более благоприятен с вычислительной точки зрения, чем LBG, но уступает ему по качеству получаемой кодовой книги
Другие алгоритмы формирования кодовой книги • • • Намного меньших объемов вычислительных операций требуют алгоритмы, основанные на принятии в качестве элемента кодовой книги собственных векторов ковариационных матриц, рассчитанных для последовательностей блоков исходного изображения; при этом получаются кодовые книги, как правило, нуждающиеся в уточнении методом LBG В связи с проблемой поиска элемента кодовой книги, наилучшим образом сходного с блоком исходного изображения, следует заметить, что в алгоритмах, использующих метод Кархунена-Лоева, параллельно с созданием самой кодовой книги происходит построение системы многомерных плоскостей (гиперплоскостей), делящих пространство изображений на ячейки, так что поиск соответствия блока исходного изображения элементу кодовой книги из полного перебора всей кодовой книги превращается в бинарный поиск соответствующей ячейки Поиск осуществляется путем вычисления знаков скалярных произведений векторов-нормалей, опущенных из точки-блока на упомянутые выше гиперплоскости, и характеристических векторов этих гиперплоскостей; при этом количество операций на блок снижается со значения порядка k до log 2 k
Заключительные замечания • • Даже самые эффективные по скорости обработки варианты векторного квантования намного сложнее алгоритмов сжатия видеоинформации, использующих ортогональные преобразования, или, тем более, предсказания, что затрудняет их применение в кодерах, работающих в реальном времени Восстановление закодированного с помощью векторного квантования изображения, наоборот, осуществляется намного проще, чем в любых других методах группового кодирования, и требует (в простейшем варианте) лишь одного косвенного обращения к памяти на пиксел, или одного умножения с накоплением на пиксел, если перед подачей на кодер векторного квантования изображение было нормировано по яркости и контрасту (с передачей соответствующих коэффициентов) Фактором, лимитирующим общую достижимую степень сжатия при векторном квантовании, является необходимость передавать изображения – элементы кодовой книги, причем без потери информации при возможной упаковке Таким образом, большей эффективности векторного квантования можно ожидать в тех случаях, когда одна и та же кодовая книга может считаться оптимальной для аппроксимации как можно большего количества блоков
009 Блочное кодирование с векторным квантованием.ppt