Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Deblocking filter
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
El '''deblocking filter''' es un filtro utilizado en los nuevos estándares de codificación de video, como por ejemplo el [[H.264/MPEG-4 AVC]], diseñado para combatir el indeseado [[efecto bloque]]. == Introducción == Los [[codificador de video|codificadores de video]] basados en bloques tiene como objetivo principal la reducción de la [[redundancia]] espacial y temporal a partir de dos técnicas principales: la transformada discreta del coseno ([[DCT]]) y la [[compensación de movimiento]]. Sin embargo, estas técnicas producen un molesto efecto de bloques en la imagen comprimida especialmente cuando son utilizadas para una codificación con un bajo [[bit rate]]. == Tipos de implementaciones == En función del estándar hay distintas implementaciones para este filtro. Existen dos propuestas principales: post filters y loop filters. El estándar [[H.264/MPEG-4 AVC]] utiliza el '''Adaptive in-loop deblocking filter''', ya que tiene importantes ventajas respecto a los post filters. Primeramente, el loop filter garantiza un cierto nivel de calidad. Este hecho es especialmente importante en los sistemas de comunicaciones modernos ya que los decodificadores de la mayoría de fabricantes son utilizados para decodificar toda clase de archivos de [[video]] distribuidos. Con el loop filter en el diseño del [[codificador]], los proveedores pueden asumir que sus codificadores procesarán la información haciendo uso del deblocking filter garantizando el nivel de calidad esperado. Segundo, no hay la necesidad de utilizar un [[buffer de datos|buffer]] adicional en el decodificador. En el post filter, los frames son decodificados en un buffer de referencia. Por tanto es necesario un buffer adicional para almacenar los [[Fotograma|frame]]s filtrados. En cambio, en el loop filter el filtrado puede ser separado fuera del macro bloque durante el proceso de decodificación, y los datos filtrados almacenados directamente al buffer de referencia. En tercer lugar, distintos estudios muestran que el loop filter mejora la calidad de los streams de video de manera tanto objetiva como subjetiva con una reducción significativa de la complejidad de la decodificación comparándolo con el post filter. La desventaja principal es que los loop filters son mucho más complejos que los post filters, el hecho de filtrar dentro del bucle implica un mayor consumo computacional de procesado. == Adaptive in-loop deblocking filter == Este filtro es utilizado por el H.264/MPEG-4 AVC, trabaja con bloques 4x4 (a diferencia de estándares como el [[H.263]] o el MPEG-4/H.263 que operan con bloques 8x8), esta innovación reduce sustancialmente el efecto bloque. Aun así, es imprescindible la utilización del deblocking filter. '''Análisis de los bordes''' Sabemos que al realizar la transformada [[DCT]] de los bloques, los errores de codificación son mayores en los bordes que en el medio de los bloques. Esto se debe a que una muestra interior tiene más muestras alrededor que proporcionan una mejor reconstrucción, por el contrario la reconstrucción de una muestra en el borde es mucho más pobre. El deblocking filter del H.264/MPEG-4 AVC es adaptativo a múltiplos niveles: * ''Edge Level Adaptivity of the Filter'': Para cada borde entre dos bloques adjuntos 4x4 se le asigna un parámetro llamado Bs (Boundarie strengh) con un valor entero entre 0 y 4 en función de la siguiente tabla: {| class="wikitable" |'''Condiciones y modos de bloque'''||'''Bs''' |--------------------- |Uno de los bloques es Intra y el borde es un borde de macro bloque||4 |--------------------- ||Uno de los bloques es Intra||3 |--------------------- ||Uno de los bloques ha codificado residuos||2 |--------------------- ||Diferencia de movimiento de bloque > 1||1 |--------------------- ||Compensación de movimiento para diferentes frames de referencia||1 |--------------------- ||Otros||0 |} El valor de Bs determina la potencia del nivel de filtrado que se le va a aplicar al borde analizado. El valor 0 indica que no realizamos ningún tipo de filtrado, los valores 1,2 y 3 indican modo estándar de filtrado y por último el valor 4 indica filtrado especial. [[Archivo:grafica1.JPG|thumb|Fig.2 Situación típica donde el filtro puede activarse.]] * ''Sample-Level Adaptivity of the Filter'': En el Deblocking filter es muy importante que el algoritmo sea capaz de distinguir entre los bordes reales que pueda tener una [[imagen]] y los bordes creados debido a la [[cuantificación]] de los coeficientes de la [[DCT]]. Por tanto, el proceso de filtrado ha de ser capaz de no filtrar los bloques reales para preservar la imagen original y filtrar los bloques artificiales para reducir su visibilidad. En la figura 2, vemos un ejemplo de las muestras de dos bloques 4x4 vecinos con la frontera entre ellos. Si Bs=0 no se filtra. Si Bs>0 entonces se mide la diferencia entre muestras de chroma y luminancia a partir de estas condiciones: <math>|p_{0}-q_{0}| < alfa </math> <math>|p_{1}-p_{0}| < beta </math> <math>|q_{1}-q_{0}| < beta </math> donde alfa y beta son parámetros establecidos del algoritmo de filtrado. * ''Slice-Level Adaptivity of the Filter'': La utilización de offsets para controlar las propiedades del Deblocking filter proporciona al codificador la habilidad de optimizar la calidad objetiva del video codificado. Por ejemplo, reducir la cantidad de filtrado con la utilización de offset negativo puede ayudar a mantener la nitidez en los detalles pequeños de la imagen, particularmente en contenidos de alta resolución. Por otra parte, la utilización de offset positivo para incrementar la cantidad de filtrado puede mejorar la calidad sujetiva de contenidos en los cuales, el visible efecto bloque permanece aún utilizando los valores por defecto del filtro. == Conclusiones == El deblocking filter consigue a través de un simple algoritmo mejoras en la calidad objetiva y subjetiva de los [[stream]]s de video. La buena realización de este proceso se basa en la detección de los bordes creados tanto reales como artificiales de los bloques de datos y el eficiente filtrado de estos últimos. Además, el deblocking filter produce un ahorro del [[bit rate]] junto a una mejora de la calidad visual de la imagen. == Véase también == * [[Codificador de video]] * [[Códec de vídeo]] * [[Efecto bloque]] * [[Compensación de movimiento]] {{Control de autoridades}} [[Categoría:Tecnología de video y cine]] [[Categoría:Tecnologías audiovisuales]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Deblocking filter
»
Añadir idiomas
Añadir tema