Современное состояние и перспективы развития систем видеокомпрессии (Часть 2)

Квантование коэффициентов ДКП 


В процессе квантования коэффициентов преобразования достигается существенное снижение объема кодированных данных. Постоянная составляющая и низкочастотные коэффициенты ДКП (дискретного косинусного преобразования) квантуются с небольшим шагом, что обеспечивает высокую точность их передачи. Высокочастотные коэффициенты, напротив, обрабатываются с большим шагом квантования, что делает их менее точными. При этом небольшие высокочастотные коэффициенты часто обнуляются. Хотя такое уменьшение уровней квантования сокращает объем данных, оно вводит шум квантования — необратимые искажения изображения. На практике квантование реализуется через поэлементное деление массива коэффициентов ДКП на матрицу квантования, где значения элементов увеличиваются от левого верхнего угла к правому нижнему. Во время декодирования на приемной стороне коэффициенты умножаются на элементы этой матрицы, восстанавливая исходные значения с ошибкой округления: она минимальна для низкочастотных компонентов блока отсчетов изображения и значительна для высокочастотных.


Распределение числа уровней квантования, определяемое матрицей квантования, подчинено цели снижения визуальной заметности возникающих шумов квантования. Грубое квантование высокочастотных коэффициентов дискретного косинусного преобразования (ДКП) при относительно точном квантовании низкочастотных коэффициентов приводит к тому, что основная доля шумов квантования сосредотачивается в высокочастотных составляющих изображения — в областях с мелкозернистой структурой и в окрестностях перепадов яркости. Однако глаз человека хорошо воспринимает шумы квантования на участках с плавными изменениями яркости, где они проявляются в виде ложных контуров. В окрестностях резких перепадов и на фоне мелких деталей такие шумы заметны гораздо меньше. Таким образом, квантование коэффициентов ДКП можно рассматривать как метод компрессии, достигаемый за счет устранения психофизической избыточности описания изображения. В процессе кодирования из изображения удаляются детали, невидимые для глаза, и вводятся искажения, которые практически незаметны визуально. При значительном квантовании (что характерно для высокой степени компрессии) шумы становятся более заметными. Примеры таких искажений, возникающих при квантовании, иллюстрируются на рис. 10. На нём показаны исходные блоки изображения, блоки коэффициентов ДКП, блоки квантованных коэффициентов ДКП и восстановленные блоки изображения. При квантовании теряются высокочастотные компоненты с малыми амплитудами, что приводит к "плоским" изображениям в одних блоках (блок №1, рис. 10а) или к искажению мелких деталей и контуров в других (блок №3, рис. 10в). Искажения от квантования необратимы, но для человеческого глаза они могут быть малозаметны, если степень компрессии не чрезмерна.
Общая схема кодека

На этапе энтропийного кодирования матрица коэффициентов ДКП подвергается сканированию определённого типа (например, зигзагообразному), которое позволяет сгруппировать большинство нулевых коэффициентов, обычно располагающихся в правой нижней части блока ДКП (это хорошо видно на рис. 10). Вместо передачи всех нулевых коэффициентов можно отправить один символ — "конец блока". Сканированная последовательность коэффициентов затем перекодируется. Из последовательности формируются пары чисел: одно — ненулевой коэффициент, другое — количество предшествующих ему нулей. Каждой такой паре присваивается кодовое слово переменной длины, например, по правилам кода Хаффмана. Малые серии нулей и малые значения ненулевых коэффициентов более вероятны, поэтому им соответствуют короткие кодовые слова. Код Хаффмана является префиксным, что позволяет обойтись без разделителей между словами.

Схемы, иллюстрирующие в упрощённой форме внутрикадровое кодирование и декодирование на базе унитарных преобразований (в предыдущих рассуждениях в качестве унитарного преобразования рассматривалась дискретное косинусное преобразование), показаны на рис. 11. Они демонстрируют последовательность основных операций внутрикадрового кодирования при видеокомпрессии: дискретное косинусное преобразование, квантование и энтропийное кодирование. Кодер может работать в двух режимах. Первый предполагает кодирование с постоянным уровнем качества восстанавливаемого изображения, достигаемым за счёт фиксированной матрицы квантования коэффициентов ДКП. Однако, как следует из вышеприведённых рассуждений, это приводит к переменной скорости потока данных на выходе энтропийного кодера (или кодера с переменной длиной слова). Скорость возрастает при увеличении уровня высокочастотных компонентов изображения (пример — блок на рис. 10а) и снижается при передаче изображений с низкой детализацией (например, блок 1 на рис. 8 из первой части статьи, где символ "конец блока" заменяет большинство нулевых коэффициентов после квантования). Этот режим подходит для профессиональных приложений, где требуется дальнейшая обработка изображения с высоким качеством, без строгих ограничений на скорость передачи данных и объём памяти.


При передаче и распределении телевизионных программ колебания скорости передачи данных могут быть недопустимы. В этом случае используется второй режим работы кодера, при котором обеспечивается фиксированная скорость потока данных. Это можно осуществить за счет изменения матрицы квантования, что, соответственно, влияет на качество восстанавливаемого изображения. В схему включается буферная память. Данные заносятся в память с переменной скоростью, а считываются с постоянной. Для предотвращения переполнения буфера или его полного освобождения, что может привести к сбоям в работе системы компрессии, используется адаптивное квантование. Сведения о степени заполнения буферной памяти служат сигналом управления (пунктирная линия на рис. 11), регулирующим шкалу квантования. Если, например, кодируемое изображение характеризуется высокой детальностью, то число ненулевых элементов матриц коэффициентов ДКП увеличивается. Возрастает и объем передаваемых данных, поэтому буфер заполняется с повышенной скоростью. Благодаря обратной связи квантование становится более грубым и скорость поступления данных в буфер уменьшается, но за счет увеличения шумов квантования и ухудшения качества изображения. Если кодируется простое по структуре изображение с малой детальностью, то число нулевых элементов матриц коэффициентов ДКП увеличивается и скорость поступления данных в буферную память снижается по сравнению со средней величиной. Тогда квантование становится менее грубым (все большее число коэффициентов ДКП квантуется на максимальное число уровней). Благодаря обратной связи скорость заполнения буфера в среднем поддерживается на постоянном уровне. 


Вейвлет-преобразование 


В качестве унитарного преобразования в системах видеокомпрессии может использоваться вейвлет-преобразование [2]. Вейвлет-преобразование (ВП) можно рассматривать как представление сигнала в виде суперпозиции некоторых базисных функций– волновых пакетов (Wavelet– маленькая волна). Особенностью этих волновых пакетов является то, что все они получены из одной прототипной волны путем растяжения (или сжатия) и смещения. Прототипная волна может рассматриваться как импульсная реакция базового фильтра. Тогда вей влет-преобразование сводится к совокупности процессов фильтрации и децимации (рис. 12). Преобразуемый сигнал подвергается фильтрации с помощью фильтров нижних и верхних частот, которые делят диапазон частот исходного сигнала на две половины. И низкочастотная, и высокочастотная компоненты сигнала,

полученные при фильтрации, имеют в два раза более узкую полосу частотных составляющих. Поэтому в соответствии с теоремой Котельникова они могут быть дискретизированы с частотой, равной половине частоты дискретизации исходного сигнала. После низкочастотной и высокочастотной фильтрации с помощью цифровых фильтров может быть просто исключен каждый второй отсчет, что и означает децимацию, или прореживание.

Применение одномерной фильтрации и прореживания в горизонтальном направлении к телевизионному изображению показано на рис. 13. Слева расположено исходное изображение. В левой части правого изображения находится отфильтрованная и прореженная низкочастотная составляющая изображения, в правой — высокочастотная. Поскольку после прореживания число отсчетов в каждой составляющей сокращается в два раза в каждой телевизионной строке, оба компонента размещаются на площади исходного изображения. Как следует из схемы рис. 12, на втором этапе преобразования низкочастотная составляющая вновь разделяется на низкочастотную и высокочастотную компоненты. После прореживания низкочастотная компонента может подвергнуться дальнейшему разделению на третьем этапе. Результаты трехкратной двумерной фильтрации и прореживания изображения показаны на правой картинке рис. 14. После каждого из трех этапов изображение делится на одну низкочастотную и три высокочастотные компоненты. На каждом этапе изображение сначала фильтруется и прореживается по горизонтали (результат фильтрации — правое изображение рис. 13), затем полученные две компоненты фильтруются с помощью фильтров нижних и верхних вертикальных пространственных частот и прореживаются по вертикали (левая картинка рис. 14). Из трех высокочастотных компонент одна отображает высокочастотную составляющую исходного изображения, полученную путем последовательного применения фильтра верхних горизонтальных пространственных частот и фильтра нижних вертикальных пространственных частот. Эта компонента располагается в правом верхнем углу комбинированного изображения (см. левую картинку рис. 14), на ней заметны вертикальные границы яркостных переходов и вертикальные линии. Вторая высокочастотная компонента отображает вертикальные составляющие (горизонтальные яркостные переходы и горизонтальные линии). Она располагается в левом нижнем углу левого изображения рис. 14. В правом нижнем углу левого изображения рис. 14 располагается третья высокочастотная компонента, связанная с диагональными пространственными частотами и отображающая диагональные яркостные переходы в исходном изображении. После трех этапов изображение разделилось на одну низкочастотную и девять высокочастотных компонент с разными пространственными частотами и различными разрешениями (полосами частот). Следует обратить внимание на то, что после третьего этапа четкость низкочастотной компоненты, располагающейся в верхнем левом углу правой картинки рис. 14, стала в 8 раз меньше четкости исходного изображения (полоса частот каждой компоненты, полученной на третьем этапе, равна 1/8 от полосы исходного сигнала). На стадии обратного вейвлет-преобразования каждая компонента преобразованного сигнала сначала растягивается в два раза, то есть после каждого отсчета вставляется дополнительный нулевой отсчет (рис. 12). Растянутая компонента подвергается фильтрации, в результате которой на место нулевых отсчетов помещаются интерполированные величины. Собственно видеокомпрессия на базе вейвлет-преобразования осуществляется так же, как и компрессия на базе дискретного косинусного преобразования. Компоненты видеосигнала, полученного после вейвлет-преобразования, подвергаются квантованию и энтропийному кодированию (см. рис. 11). Принципиальное отличие от компрессии на базе ДКП заключается в способе получения частотных компонент изображения. ДКП позволяет получать частотные компоненты, занимающие равные полосы при всех средних частотах (например, 1/8 от максимальной частоты сигнала). ВП дает компоненты, полосы частот которых уменьшаются в два раза по мере уменьшения средней частоты (например, 1/2, 1/4, 1/8 от максимальной частоты сигнала и т.д.). Вейвлет-преобразование не требует формирования блоков, поэтому искажения декодированного изображения более "естественны", то есть выглядят менее чужеродными на типичных изображениях, чем, например, артефакты в виде блочной структуры, проявляющиеся в системах на базе ДКП. Однако кодеки компрессии на базе вейвлет-преобразования гораздо более сложны (в 5…10 раз, если оценивать сложность в количестве вентилей процессоров обработки данных).
Межкадровое кодирование

Цель межкадрового кодирования — сокращение временной избыточности телевизионных изображений, вызванной сильными корреляционными связями между соседними кадрами. Поскольку изображения двух соседних кадров очень похожи, скорость цифрового потока можно сократить, предсказывая текущий кадр на основе предыдущего и передавая лишь разницу между действительным и предсказанным изображением текущего кадра, что было отмечено в первой части данной статьи (Часть 1 рис. 5). Соединение межкадрового и внутрикадрового кодирования приводит к схеме, в которой кодирование складывается из следующих основных этапов: дифференциальная импульсно-кодовая модуляция (ДИКМ), декорреляция на основе унитарного преобразования, квантование коэффициентов преобразования, энтропийное кодирование (рис. 15). В кодере вычисляется ошибка предсказания, то есть разность между фактическим и предсказанным блоками изображения, что сокращает временную избыточность. Ошибка предсказания подвергается ДКП, квантуется и кодируется в энтропийном кодере с переменной длиной слова. Такой процесс уменьшает и временную, и пространственную, и психофизическую избыточность.


В качестве простейшего предсказателя можно использовать па мять на кадр. Но предсказание не осуществляется путем задержки на кадр входного сигнала изображения, получаемого непосредственно от источника. Это связано с тем, что предсказание должно выполняться и в декодере, которому уже недоступны изображения источника. Восстанавливаемые в декодере изображения, которые только и могут использоваться для предсказания, прошли процедуру квантования в процессе внутрикадрового кодирования и, следовательно, претерпели некоторые необратимые изменения. Поэтому в кодере выполняется обратное квантование и обратное дискретное косинусное преобразование, благодаря чему блок изображения реконструируется так же, как и в декодере. В декодере выполняется обратное квантование, обратное ДКП, в результате чего формируется ошибка предсказания. Она складывается с декодированным изображением предыдущего кадра, образуя декодированное изображение текущего кадра. В соответствии с возможными методами предсказания в системах компрессии с сокращением временной избыточности используются три типа изображений. Изображения типа I (Intra) кодируются независимо от других изображений. В них сокращается только пространственная избыточность. Изображения типа P (Predicted) кодируются с предсказанием на основе предыдущего изображения типа I. Они сами также могут использоваться в качестве опорных для дальнейшего предсказания. В них сокращается и пространственная, и временная избыточность. Изображения типа B (Bi-predicted) кодируются путем двунаправленного предсказания на основе предыдущего и последующего изображений. В них сокращается и пространственная, и временная избыточность и достигается самая большая степень компрессии, поскольку двунаправленное предсказание является наиболее точным. При фиксирован ном уровне качества P-изображение меньше I-изображения в среднем в 3 раза, а B-изображение– примерно в 4 раза. Изображения различных типов объединяются в повторяющиеся серии, называемые группами изображений (рис. 16). Группа начинается с изображения типа I, образующего опорный сигнал для предсказания при кодировании изображений других типов. Группа изображений должна быть достаточно большой, если необходимо добиться высокой степени компрессии.

Однако динамика сюжета накладывает ограничения на длину группы. Группы могут быть закрытыми и открытыми. Последним элементом закрытой группы является P-изображение, предсказанное на основе I-изображения этой же группы. Последний элемент открытой группы– B-изображение, для предсказания которого используется на ряду с предшествующим P-изображением также и I-изображение следующей группы (рис.16). Преимущество закрытых групп в том, что они позволяют выполнять прямые монтажные переходы перед очередным I-изображением без декодирования цифрового потока. Использование открытых групп позволяет добиться более высокой степени компрессии. До сих пор предполагалось, что при передаче некоторого блока изображения текущего кадра для предсказания используются блоки предыдущего и последующего кадров с теми же пространственными координатами. Но чем быстрее движутся снимаемые объекты, тем больше отличаются кодируемый и предсказанный блоки и тем больше данных об ошибке предсказания должно быть передано, а это снижает эффективность компрессии. Точность предсказания при передаче изображений движущихся объектов можно увеличить за счет компенсации движения. Принцип ДИКМ с компенсацией движения иллюстрируется на рис. 17. Устройство оценки вектора движения оценивает скорость движения объектов изображения. Вектором движения принято называть разность пространственных координат меж ду соответственными точками объекта в соседних кадрах. Движение компенсируется при предсказании. Чем точнее оценивается вектор движения, тем лучше и точнее предсказание и тем меньше объем данных, которые должны быть переданы.


Приемнику передается не только ошибка предсказания (разность между фактическим блоком изображения и предсказанным), но и вектор движения. Вектор движения также кодируется словами переменной длины. Кодированная ошибка предсказания объединяется с кодами вектора движения, после чего формируется передаваемый цифровой поток. Схема декодера аналогична нижней части схемы на рис. 15, но в ней используется предсказатель с компенсацией движения, работающий на основе данных о векторе движения, полученных от кодера.

Один из наиболее распространенных методов оценки вектора движения — согласование блоков. Текущий блок проецируется на предыдущее опорное изображение и сравнивается со всеми блоками предыдущего кадра в пределах заданной области поиска. Блок, который меньше всего отличается от текущего (например, по среднеквадратичному отклонению), принимается за опорный для формирования предсказания. Двухкоординатное смещение между проецируемым и опорным блоками определяет вектор движения.

Предсказатели с компенсацией движения в современных системах видеокомпрессии могут использовать различные методы. Например, блок может предсказываться на основе предыдущего изображения, последующего изображения или обоих сразу, как описано выше. В чересстрочных системах поля одного кадра могут предсказываться раздельно с использованием разных векторов движения или совместно с общим вектором. Также возможен вариант нулевого предсказания (если не найден подходящий опорный блок). В этом случае текущий блок кодируется вместо ошибки предсказания, что означает отказ от межкадрового кодирования и переход к внутрикадровому.

Для каждого текущего блока кодер выбирает метод предсказания, обеспечивающий наивысшее качество декодированного изображения с учетом ограничений на скорость передачи данных. Информация о выбранном методе предсказания включается в общий поток и передается декодеру для корректного восстановления изображения. Оценка вектора движения и определение оптимальной стратегии предсказания требуют сложных вычислений, выполняемых в реальном времени. Кодер значительно сложнее декодера, поэтому система компрессии на базе ДИКМ с компенсацией движения является асимметричной.

Компенсация движения при формировании предсказания снижает ошибку предсказания. Однако ошибка предсказания не может быть сведена к нулю, особенно при сложном движении объектов в кадре. Это обусловлено не только неточностями в определении вектора движения, но и изменениями размеров движущихся объектов, их поворотами, одновременным движением нескольких объектов в разных направлениях и т.п.

  • Современное состояние и перспективы развития систем видеокомпрессии (Часть 2)