Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


6.4.7. Деблочный фильтр

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

1. Фильтрация четырех вертикальных границ компоненты яркости (в порядке a, b, c, d на рис. 6.29).

2. Фильтрация четырех горизонтальных границ компоненты яркости (в порядке е, f, g, h на рис. 6.29).

3. Фильтрация двух вертикальных границ компонент хроматичности (i, j).

4. Фильтрация двух горизонтальных границ компонент хроматичности (k, l).

Рис. 6.29. Порядок фильтрации краев макроблока.

Рис. 6.30. Примеры примыкания к вертикальным и горизонтальным границам.

Каждая фильтрующая операция затрагивает до трех сэмплов с обеих сторон границы. На рис. 6.30 показано по четыре сэмпла с каждой стороны от вертикальной или горизонтальной границы примыкающих друг к другу блоков р и q (p0, p1, р2, р3 и q0, q1, q2, q3). «Интенсивность» фильтрования (степень фильтрации) зависит от текущих параметров квантователя, мод кодирования соседних блоков и направления градиентов знамений сэмплов на границе.

Граничная интенсивность. Выбор результирующего фильтра зависит от граничной силы и градиента значений сэмплов вдоль границы. Параметр граничной силы bS (boundary Strength) выбирается по следующим правилам (при кодировании прогрессивной развертки):

р и/или q intra кодируется и граница - это граница макроблока

bS = 4

р и q intra - кодируется и граница - это не граница макроблока

bS = 3

Ни р, ни q не кодируются intra; р и q имеют кодированные коэффициенты

bS = 2

Ни р, ни q не кодируются intra; ни р, ни q не имеют кодированные коэффициенты, р и q используют разные ссылочные снимки, или разное число ссылочных снимков, или они имеют векторы движения, которые отличаются в одном или больше сэмплах

bS = 1

Во всех прочих случаях

bS = 0

(Чем больше bS, тем сильнее интенсивность фильтрации. Значение bS = 0 означает отсутствие фильтрации.)

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

Условия фильтрации. Группа сэмплов из множества (р2, p1, р0, q0, q1, q2) подвергается фильтрации, если

(a)  и

(b)  и  и .

Здесь  и  — пороги, задаваемые стандартом. Они возрастают с ростом среднего значения параметров квантователя QP двух блоков р и q. Невыполнение условия фильтрации «отключает» фильтр, когда имеется значительный градиент вдоль границы блока исходного изображения. Когда параметр QP мал, то очень малые значения градиента через границу вызваны, скорее всего, особенностями изображения (а не эффектами блочности), поэтому его следует сохранить, т.е. пороги  и  должны быть малыми в этом случае. Когда QP велик, эффекты блочного искажения становятся более вероятными, что отражается в повышении порогов  и , т.е. большее число граничных сэмплов подвергается фильтрации

Пример

На рис. 6.31 показаны компоненты яркости макроблока 16 х 16 (без блочных искажении), на котором выделены блоки 4x4, обозначенные через а, b, c. Предполагая что значение QP достаточно велико, граница между блоками а и b будет большой вероятность отфильтрована, так как градиент через границу мал. На этом изображении нет существенных особенностей, которые необходимо сохранить, и на этой границе, очевидно, будут блочные искажения. Одновременно с этим наблюдается большое изменение яркости при переходе через границу блоков c и d, поскольку здесь имеютcя горизонтальные особенности. Поэтому здесь необходимо отключить процедуру фильтрации для сохранения этих заметных особенностей.

Рис. 6.31. Макроблок яркости 16 х 16 с выделенными краями блоков

Реализация процедуры фильтрации.

1.

Применяется фильтр с четырьмя отсчетами и с входами p1, р0, q0 и q1, который порождает на выходе значения р'0 и q'0. Если |р2 — р0| меньше, чем порог , то применяется другой фильтр с четырьмя отсчетами и с входом р2, p1, р0 и q0, дающий на выходе значение р'1 (только яркость). Если |q2 — q0| меньше , то применяется фильтр с четырьмя отсчетами и входом q2, q1, q0 и р0, производящий на выходе q'1 (только яркость).

2.

Если ,  и блок - яркости, то р'0 порождается фильтром из пяти отсчетов по р2, p1, р0, q0, q1, р'1 порождается фильтром из четырех отсчетов по р2, p1, р0, q0, р'2 порождается фильтром из пяти отсчетов по рЗ, р2, p1, q0, q0,

иначе

р'0 порождается фильтром из трех отсчетов по p1, p0, q1.

Если ,  и блок - яркости, то q'0 порождается фильтром из пяти отсчетов по q2, q1, q0, р0, p1, q'1 порождается фильтром из четырех отсчетов по q2, q1, q0, р0, q'2 порождается фильтром из пяти отсчетов по q3, q2, q1, q0, р0,

иначе

q'0 порождается фильтром из трех отсчетов по q1, q0, p1.

Пример

Некий видеоклип кодируется с параметром квантователя QP = 36 (достаточно сильное квантование). На рис. 6.32 показан исходный кадр из этого клипа, а на рис. 6.33 изображен тот же самый кадр после кодирования 'inter' и декодирования с отключенным циклом фильтрации. Обратите внимание на явные артефакты блочности, а также заметьте переменный размер блоков компенсации движения (например, блоки 16 х 16 на заднем плане слева и блоки 4 х 4 на изображении руки девочки). При включенной процедуре фильтрации (рис 6.34) все еще имеется некоторая заметная блочность, но большинство краев блоков исчезло или затушевалось. Заметим, что контрастные границы (вроде линии руки на фоне черного пианино) были сохранены при фильтрации, в то время как края блоков на более плавных частях рисунка (например, фон слева) были сглажены. В этом примере цикл фильтрации мало влияет на степень сжатия: кодовая скорость всего на 1,5% меньше и PSNR примерно на 1% больше для последовательности с применением фильтрации. Однако субъективное качество фильтрованной видеопоследовательности существенно лучше. Зазор между степенями сжатия, который образуется из-за фильтрации, зависит от битовой скорости и от конкретного видеоряда.

На рис. 6.35 и 6.36 приведены другие примеры обработки этого кадра, но с меньшим параметром квантователя (QP = 32).

 

 



<< ПредыдущаяОглавлениеСледующая >>