UNA ETAPA DE UNA CADENA: QUÉ LLEGA, QUÉ SALE Y QUÉ SE ROMPE DESPUÉS
Dónde encaja esto en la tubería de codificación
Un codificador de vídeo no es un algoritmo, sino ocho etapas en un orden fijo, y el orden no es arbitrario: cada etapa existe porque la anterior hizo posible su trabajo. Esta herramienta modela una de ellas. La cadena de abajo enlaza con las otras siete.
Simulador de estimación de movimiento — localiza a dónde se movió cada bloque y codifica la diferencia en vez del bloque
- Qué llega
- Un fotograma P o B junto con sus fotogramas de referencia.
- Qué sale
- Un vector de movimiento por bloque y un residuo: exactamente aquello en lo que falló la predicción.
- Qué supone la etapa siguiente
- La cuantización recibe un residuo, no una imagen. Los residuos están cerca de cero en casi todas partes, y por eso cuantizarlos sale barato.
- Qué se estropea aquí
- Una mala coincidencia no produce una imagen equivocada, produce una cara. El residuo lleva más energía y el mismo ajuste del cuantizador emite entonces más bits. Esta etapa cambia el tamaño de la salida, no ninguno de sus ajustes.
Problema resuelto al detalle
-
La ventana de búsqueda derivada de 225 posiciones por bloque 5 pasos
Una búsqueda de movimiento completa comprueba 225 posiciones por bloque, 14 400 en total. Deduzca la ventana de búsqueda a partir de ahí y qué ventajas aporta una búsqueda rápida.
-
225 es un cuadrado perfecto, y esa es la clave: la búsqueda es una ventana cuadrada de 15 por 15 desplazamientos candidatos, lo que significa de −7 a +7 píxeles en cada dirección.
-
Al dividir el total entre el recuento por bloque se obtiene el número de bloques en los que se dividió el fotograma.
-
El coste aumenta con el cuadrado del radio de búsqueda, por lo que ampliar la ventana se vuelve caro rápidamente: un radio de 7 cuesta 225 posiciones, un radio de 15 cuesta 961, y un radio de 31 cuesta 3969.
-
Esa relación cuadrática es la razón por la que existen las búsquedas rápidas. Una búsqueda en tres pasos evalúa nueve puntos, afina y repite: 27 posiciones en lugar de 225.
-
Ocho veces más barata, y no equivalente: desciende hacia un mínimo local y puede pasar de largo el mejor ajuste real si la superficie de error tiene más de una depresión.
Respuesta
La herramienta indica 14400 puntos examinados, a razón de 225,0 por bloque. Ahí se resume el dilema central de la codificación de vídeo en la práctica: la búsqueda exhaustiva es óptima, pero su coste crece con el cuadrado del radio. Por eso, todos los codificadores emplean alguna heurística y aceptan que, de vez en cuando, elegirán un vector peor. Parte del coste del error se aprecia en la fila Energía residual (ECM): un vector inadecuado deja un residuo mayor, que exige más datos para codificarlo. La búsqueda rápida de movimiento no es una aproximación destinada a ahorrar tiempo sin más; apuesta por que los bits perdidos debido a vectores imperfectos sean menos que los que podrías aprovechar en otra parte.
-
Referencias (2)
- Block matching and motion vectors as the standard uses them: T. Wiegand, G. J. Sullivan, G. Bjontegaard and A. Luthra, "Overview of the H.264/AVC video coding standard." IEEE Transactions on Circuits and Systems for Video Technology 13(7), 560–576, 2003.
- The diamond search this tool implements alongside full search: S. Zhu and K.-K. Ma, "A new diamond search algorithm for fast block-matching motion estimation." IEEE Transactions on Image Processing 9(2), 287–290, 2000.