Deblocking filter

De Viquipèdia
Dreceres ràpides: navegació, cerca
Fig.1 Efecte del Deblocking Filter.

Un deblocking filter és un filtre utilitzat en els nous estàndards de codificació de vídeo, com per exemple el H.264/MPEG-4 AVC, dissenyat per combatre el indesitjat efecte bloc. Els codificadors de vídeo basats en blocs té com a objectiu principal la reducció de la redundància espacial i temporal a partir de dues tècniques principals: la transformada cosinus discreta (DCT) i la compensació de moviment. No obstant això, aquestes tècniques produeixen un molest efecte de blocs a la imatge comprimida especialment quan són utilitzades per a una codificació amb un baix bit rate.

Tipus d'implementacions[modifica | modifica el codi]

En funció de l'estàndard hi ha diferents implementacions per a aquest filtre. Hi ha dues propostes principals: post filters o loop filters. L'estàndard H.264/MPEG-4 AVC utilitza el Adaptive in-loop deblocking filter, ja que té importants avantatges respecte als post filters.

Primerament, el loop filter garanteix un cert nivell de qualitat. Aquest fet és especialment important en els sistemes de comunicacions moderns ja que els decodificadors de la majoria de fabricants són utilitzats per decodificar tota mena de fitxers de vídeo distribuïts. Amb el loop filter en el disseny del codificador, els proveïdors poden assumir que els seus codificadors processaran la informació fent ús del deblocking filter garantint el nivell de qualitat esperat.

Segon, no hi ha la necessitat d'utilitzar un buffer addicional en el decodificador. En el post filter, els frames són decodificados en un buffer de referència. Per tant és necessari un buffer addicional per emmagatzemar els frames filtrats. En canvi, en el loop filter el filtrat pot separar fora del macrobloc durant el procés de decodificació, i les dades filtrats emmagatzemades directament al buffer de referència.

En tercer lloc, diferents estudis mostren que el loop filter millora la qualitat dels streams de vídeo de manera tant objectiva com subjectiva amb una reducció significativa de la complexitat de la decodificació comparant-lo amb el post filter.

El desavantatge principal és que els loop filters són molt més complexos que els post filters, el fet de filtrar dins del bucle implica un major consum computacional de processament.

Adaptive in-loop deblocking filter[modifica | modifica el codi]

Aquest filtre és utilitzat pel H.264/MPEG-4 AVC, treballa amb blocs 4x4 (a diferència d'estàndards com el H.263 o el MPEG-4/H.263 que operen amb blocs 8x8), aquesta innovació redueix substancialment l'efecte bloc. Tot i això, és imprescindible la utilització del deblocking filter.

Anàlisi de les vores[modifica | modifica el codi]

En realitzar la transformada DCT dels blocs, els errors de codificació són majors en les vores que en el medi dels blocs. Això és degut al fet que una mostra interior té més mostres al voltant que proporcionen una millor reconstrucció, per contra la reconstrucció d'una mostra en la vora és molt més pobre. El deblocking filter del H.264/MPEG-4 AVC és adaptatiu a múltiples nivells:

  • Edge Level Adaptivity of the Filter : Per a cada vora entre dos blocs adjunts 4x4 se li assigna un paràmetre anomenat B (Boundaries strengh) amb un valor enter entre 0 i 4 en funció de la taula :
Condicions i modes de bloc B
Un dels blocs és Intra i la vora és una vora de macro bloc 4
Un dels blocs és Intra 3
Un dels blocs ha codificat residus 2
Diferència de moviment de bloc> 1 1
Compensació de moviment per a diferents frames de referència 1
Altres 0

El valor de Bs determina la potència del nivell de filtratge que se li va a aplicar a la vora analitzat. El valor 0 indica que no realitzem cap tipus de filtratge, els valors 1,2 i 3 indiquen manera estàndard de filtrat i, finalment, el valor 4 indica filtrat especial.

Fig.2 Situació típica on el filtre pot activar-se.
  • Sample-Level Adaptivity of the Filter : Al deblocking filter és molt important que l'algoritme sigui capaç de distingir entre les vores reals que pugui tenir una imatge i les vores creats a causa de la quantificació dels coeficients de la Transformada cosinus discreta. Per tant, el procés de filtratge ha de ser capaç de no filtrar els blocs reals per preservar la imatge original i filtrar els blocs artificials per reduir la seva visibilitat. A la figura 2, veiem un exemple de les mostres de dos blocs 4x4 veïns amb la frontera entre ells. Si Bs = 0 no es filtra. Si Bs> 0 llavors es mesura la diferència entre mostres de croma i luminància a partir d'aquestes condicions:
|p_{0}-Q_{0}|<alfa 
|p_{1}-p_{0}|<beta 
|Q_{1}-Q_{0}|<beta 

on alfa i beta són paràmetres establerts de l'algorisme de filtrat.

  • Slice-Level Adaptivity of the Filter: La utilització d'offsets per controlar les propietats del deblocking filter proporciona a codificador l'habilitat d'optimitzar la qualitat objectiva del vídeo codificat. Per exemple, reduir la quantitat de filtrat amb la utilització doffset negatiu pot ajudar a mantenir la nitidesa en els detalls petits de la imatge, particularment en continguts d'alta resolució. D'altra banda, la utilització doffset positiu per incrementar la quantitat de filtrat pot millorar la qualitat subjectiva de continguts en els quals, el visible efecte bloc roman encara utilitzant els valors per defecte del filtre.

Conclusions[modifica | modifica el codi]

El deblocking filter s'aconsegueix a través d'un simple algorisme millores en la qualitat objectiva i subjectiva dels streams de vídeo. La bona realització d'aquest procés es basa en la detecció de les vores creats tant reals com artificials dels blocs de dades i l'eficient filtrat d'aquests últims. A més, el deblocking filter produeix un estalvi del bit rate al costat d'una millora de la qualitat visual de la imatge.

Pàgines relacionades[modifica | modifica el codi]