Y en este caso, la palmera va desde la parte superior izquierda hasta la inferior derecha. Y así puedes empezar a predecir dónde va a estar la próxima imagen y luego hacer la delta basada en esta predicción. Y este paso se llama un video codec. Y los video codecs más populares son H.264 y AVC, que son lo mismo pero con un nombre diferente como JavaScript y Xamarin. Y también está AV1, VP8, VP9.
Así que este video codec es capaz de nuevo de reducir drásticamente el tamaño. Así que en este caso, así es como se ve nuestra configuración. Así que ahora tenemos dos tipos de fotogramas. Tenemos fotogramas clave, así que en este caso, el primer fotograma, que utiliza algo como JPEG para comprimirlo, y luego tenemos fotogramas delta. Así que en este caso, como cada uno en esta imagen.
Y ahora, para decodificar el video, ya no es, oh, solo dame una imagen y puedo hacerlo. Ahora necesitas empezar con el fotograma clave. Y luego, para decodificar el segundo, necesitas haber decodificado el fotograma clave, hacer la predicción de dónde va a estar a continuación, y luego hacer la delta para decodificarlo. Así que ahora estamos viendo que necesitamos una API con estado y en un orden específico. Pero esto es solo una parte de la imagen, porque la gente que hace la codificación y compresión de video quería hacerlo aún mejor. Una cosa que se dieron cuenta es que puedes hacer esta optimización hacia adelante. Pero también puedes hacerlo hacia atrás. Así que puedes empezar desde el final, hacer la predicción, la codificación, y luego empezar a mirar en qué dirección obtenemos los mayores ahorros. Y tomar el que en realidad va a ser el más pequeño en general. Y aquí es donde entra la noción de fotogramas bidireccionales o B-frames. Así que en este caso, el fotograma número 5 es un B-frame, lo que significa que para decodificarlo, necesitas decodificar el número 4 y el número 6. Y también para decodificar el número 6, necesitas hacer como el 7, y 7 necesitas 8 y 8 necesitas 9, y lo mismo en el otro sentido. Y así que ahora lo que estás viendo es que para decodificar la secuencia de video en orden, necesitas enviar todos los fotogramas en un orden diferente. Y aquí es donde tenemos dos nociones de tiempo. Así que tenemos el tiempo de presentación, que es el que esperas ver en la duración de la película, y luego el segundo es la marca de tiempo de decodificación. Y así que esta es la marca de tiempo en la que necesitas enviar los fotogramas para ser decodificados en el orden correcto. Y así es donde tenemos nuestra primera, en realidad no hay verdad, donde el tiempo solo avanza. Así que ahora que hemos visto la primera ruptura de cosas, volvamos a la API, en realidad la API real. Así que en este caso, necesitamos tener algún tipo de API de carga de video para darnos todos los fotogramas. Y luego queremos una API de decodificador.
Comments