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) выбирается по следующим правилам (при кодировании прогрессивной развертки):
(Чем больше bS, тем сильнее интенсивность фильтрации. Значение bS = 0 означает отсутствие фильтрации.) Результат применения этих правил будет сильнее там, где имеется большая вероятность блочных искажений, например на границе intra-кодируемых макроблоков или на границе блоков, имеющих кодированные коэффициенты. Условия фильтрации. Группа сэмплов из множества (р2, p1, р0, q0, q1, q2) подвергается фильтрации, если (a) и (b) и и . Здесь и — пороги, задаваемые стандартом. Они возрастают с ростом среднего значения параметров квантователя QP двух блоков р и q. Невыполнение условия фильтрации «отключает» фильтр, когда имеется значительный градиент вдоль границы блока исходного изображения. Когда параметр QP мал, то очень малые значения градиента через границу вызваны, скорее всего, особенностями изображения (а не эффектами блочности), поэтому его следует сохранить, т.е. пороги и должны быть малыми в этом случае. Когда QP велик, эффекты блочного искажения становятся более вероятными, что отражается в повышении порогов и , т.е. большее число граничных сэмплов подвергается фильтрации
Рис. 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.
|