El formato YUV tiene dos categorías principales: planar y empaquetado. Para el formato YUV planar, la Y de todos los píxeles se almacena consecutivamente, seguida de la U de todos los píxeles, seguida de la V de todos los píxeles. Para el formato YUV empaquetado, Y, U y V de cada píxel se almacenan continuamente *.
YUV, se divide en tres componentes, y " Y " representa el brillo (luminancia o Luma), es decir el valor de gris; y y " U " y y " V " representado por el croma ( Chrominance o Chroma), que describe el color y la saturación de la imagen y se utiliza para especificar el color del píxel.
Al igual que el RGB que conocemos bien, YUV es también un método de codificación por colores, utilizado principalmente en sistemas de televisión y video analógico, que separa la información de luminancia (Y) de la información de color (UV) sin información de UV. La imagen completa se puede mostrar, solo en blanco y negro, lo que es una buena solución para la compatibilidad de los televisores en color con los televisores en blanco y negro. Además, YUV no requiere que se transmitan tres señales de video independientes al mismo tiempo que RGB, por lo que la transmisión YUV ocupa muy poco ancho de banda. Usa estrechamente relacionados
YUV formato almacenado, de hecho, con su flujo de muestras, toma de muestras de corriente de tres maneras, YUV4: 4: 4, YUV4: 2: 2, YUV4: 2: 0, en los principios detallados, a través de otro artículo en línea para aprender, quiero destacar aquí es cómo restaurar los valores YUV de cada píxel de la corriente de código basado en su formato de muestreo, ya que sólo restaurar correctamente los valores YUV para cada píxel, para venir a través de YUV La fórmula de conversión RGB extrae los valores RGB de cada píxel y los muestra.
Utilice tres gráficos para representar visualmente la forma de adquisición. El componente negro indica el componente Y del píxel, y el círculo abierto indica el componente UV del píxel.
Formato Yuv detallado
Primero, recuerde el siguiente párrafo y luego extraiga el componente YUV de cada píxel que se usará más adelante.
2. Método de almacenamiento
La siguiente es una forma de almacenar el flujo de código YUV común en forma de gráfico, y un YUV que muestrea cada píxel se adjunta al método de almacenamiento. El método de datos, en el que los significados de Cb y Cr son equivalentes a U y V.
(1) Formato de YUVY (perteneciente YUV422)
formato YUVY
formato YUYV YUV422 almacenada como una muestra en el adyacente dos común adyacente dos Y Para Cb, Cr y análisis, para los puntos de píxel Y'00 y Y'01, los valores de Cb y Cr son Cb00 y Cr00, y los valores de YUV de otros píxeles son análogos.
(2) Formato de UYVY (perteneciente YUV422)
UYVY formato
Un formato UYVY almacenamiento se muestrea YUV422 formato, sólo la diferencia es YUYV el orden de UV La diferencia es que el método para restaurar el valor YUV de cada píxel es el mismo que el anterior.
(3) YUV422P (perteneciente YUV422)
YUV422P
YUV422P también pertenece a YUV422, es un modelo de avión, el modo de avión es decir, los datos YUV no es almacenamiento intercalado En su lugar, primero almacene todos los componentes Y, luego almacene todos los componentes U (Cb) y finalmente almacene todos los componentes V (Cr), como se muestra en la figura anterior. El método de extracción del valor YUV para cada píxel es también el método de extracción más básico según el formato YUV422, es decir, dos Ys comparten un UV. Por ejemplo, para los puntos de píxel Y'00 y Y'01, los valores de Cb y Cr son Cb00 y Cr00.
(4) YV12, YU12 formato (perteneciente YUV420)
YV12, YU12 formato
YU12 YV12 pertenecen YUV420 formato y también un modo de avión, el Y, U, componentes V Embalado por separado y almacenado en orden. La extracción de datos YUV de cada píxel sigue el método de extracción del formato YUV420, es decir, los cuatro componentes Y comparten un conjunto de UV. Tenga en cuenta que en la figura anterior, Y'00, Y'01, Y'10 e Y'11 comparten Cr00 y Cb00, y así sucesivamente.
(5) NV12, NV21 (perteneciente YUV420)
NV12, NV21
NV12 y NV21 pertenecen YUV420 formato, un modo de dos planos, es decir Y dividido en dos y UV Plano, pero UV (CbCr) se entrelaza, no se divide en tres planos. La extracción de una manera similar en, es decir Y'00, Y'01, Y'10, Y'11 Cr00 común, Cb00
YUV420 datos planas a 720 y los tiempos; 488 Ejemplo YUV420 tamaño de la imagen planar ,
que se almacena en el formato: tamaño total (720 y los tiempos; 480 y veces; 3 > > 1) byte,
se divide en tres partes: y, U y V
componente y: (720 y los tiempos; 480) bytes
U (Cb) componente: (720 y los tiempos; 480 > > 2) bytes
V (Cr) componente :( 720 y los tiempos; 480 > > 2) bytes
son tres porción de almacenamiento de prioridad filas interior, una porción entre los tres y, U, V de almacenamiento secuencial.
0 a -720 y los tiempos es decir, datos YUV; Y valor de componente es de 480 bytes,
720 y los tiempos; 480--720 y veces; 480 y veces; 5/4 byte es el componente U
720 × 480 × 5/4 --720 × 480 × 3/2 bytes son componentes de V Conversión a
4: 2: 2 y 4: 2: 0:
La forma más fácil:
YUV4: 2: 2 --- > YUV4: 2: 0 Y no cambia, y los valores de las señales U y V están sujetos a un muestreo entrelazado en la fila (dirección vertical). YUV4: 2: 0 --- > YUV4: 2: 2 Y sin cambios la U y valores de la señal V de cada fila son dos líneas continuas que forman una copia de los datos.
En el YUV420, un píxel corresponde a una Y, y un pequeño cuadrado de 4X4 corresponde a una U y V. Para todas las imágenes YUV420, su alineación con el valor Y es exactamente la misma, porque solo la imagen Y es una imagen en escala de grises. Los formatos de datos de YUV420sp y YUV420p son fundamentalmente diferentes en principio. 420p Es para almacenar U después del almacenamiento, luego almacenar V, lo que significa que son continuos. El 420sp se almacena alternativamente en UV y UV.
(Vea la imagen a continuación) Con la teoría anterior, puedo calcular con precisión el tamaño de un YUV420 almacenado en la memoria. width * Hight = Y (suma) U = Y /4 V = Y /4
YUV420 por lo que la longitud de los datos de ancho de memoria * Hight * 3/2,
suponiendo una resolución 8X4 YUV tasa de imagen, que muestra el formato:
yuv420sp muestra el formato del formato de la figura
yuv420sp
YUV420p formato de datos de formato de datos de la figura
YUV420P figura
se gira 90 grados algoritmo:
public static void rotateYUV240SP (byte [] src, byte [] des, ancho int, int altura) {int wh = ancho * altura; //rotación Yint k = 0; for (int i = 0; i < ancho; i ++) {for (int j = 0; j < altura; j ++) {des [k] = src [width * j + i]; k ++;}} para ( int i = 0; i < ancho; i + = 2) {for (int j = 0; j < altura /2; j ++) {des [k] = src [wh + width * j + i]; des [k + 1 ] = src [wh + width * j + i + 1]; k + = 2;}}}
La diferencia entre YV12 e I420
En general, los datos de video recopilados directamente son formato RGB24, tamaño, RGB24 tamaño uno frame = anchura y tiempos; heigth y los tiempos; 3 Bit, RGB32 el tamaño = ancho y los tiempos; heigth y los tiempos, 4, si I420 (es decir, YUV formato estándar de 4: 2: 0) es la cantidad de tamaño de datos = anchura y los tiempos; Altura y tiempos; 1.5 Bit. Después de adquirir los datos RGB24, los datos de este formato deben comprimirse por primera vez. El espacio de color de la imagen se compone de RGB2YUV. Porque X264 requiere YUV estándar (4: 2: 0) cuando se codifica. Pero debe tenerse en cuenta que, aunque también YV12 (4: 2: 0), pero YV12 y I420 pero es diferente, algunas diferencias en el espacio de almacenamiento anteriormente. En la siguiente manera: YV12: luminancia (tiempos de la línea y; columna) + U (fila y los tiempos; columna /4) + V (tiempos de la línea y; columna /4)
I420: luminancia (tiempos de la línea y; columna) + V (línea × column /4) + U (row × column /4)
Se puede ver que YV12 y I420 son básicamente iguales, es decir, el orden de UV es diferente.
continuar nuestra conversación, después de la primera compresión de datos RGB24- > YUV (I420). De esta manera, la cantidad de datos se reducirá a la mitad. ¿Por qué? Oh, esto es demasiado básico, no escribiré más. De manera similar, si es RGB24-> YUV (YV12), también se reduce a la mitad. Sin embargo, aunque es la mitad, si es YV12, el efecto se perderá enormemente. Luego, después de la codificación X264, la cantidad de datos se reducirá considerablemente. Los datos codificados se empaquetan y transmiten en tiempo real a través de RTP. Después de llegar al destino, los datos son sacados y decodificados. Una vez completada la decodificación, los datos aún están en el formato YUV, por lo que se requiere una conversión, de modo que el controlador de Windows pueda manejarlo, que es YUV2RGB24.
YUY2 es de 4: 2: 2 [Y0 U0 Y1 V0]
yuv420p diferencia y la YUV420 YUV420P difieren en el formato de almacenamiento: yyyyyyyy uuuuuuuu vvvvv YUV420: YUV YUV YUV YUV420P, Y, U, V tres componentes son estructura plana, y I420 se divide en YV12. La diferencia entre el formato I420 y el formato YV12 es diferente en el plano U y el plano V. En el formato de I420, U plano inmediatamente después de plano Y, y el plano V es (es decir .: YUV); YV12 pero es lo contrario (es decir .: YVU). Yuv420sp, Y componente de formato plano, formato de envase UV, es decir, NV12. NV12 es similar a NV21, con U y V escalonadas, diferenciándose en el orden UV. I420: yyyyyyyy UU VV = > YUV420PYV12: yyyyyyyy VV UU = > YUV420PNV12: yyyyyyyy UVUV = > YUV420SPNV21: yyyyyyyy Vuvu = > yuv420sp
Webalizer bajo Linux es un guión de análisis de registros de Internet más populares, por supuesto, t
Falta el archivo de cabecera ‘ security /pam_modules.h ’ es parte de la versión de des
En la actualidad, muchas escuelas han construido redes de campus y se
Trabajador. Cliente: autor de la solicitud, puede ser C, PHP , Perl, MySQL UDF y similares. Traba
Linux mysql portando el método
Linux mysql root contraseña olvidada solución
Método de carga detallado del controlador de la tarjeta de sonido en el sistema operativo Linux
Conceptos básicos sobre el uso de crontab en Linux
Red Hat lanza Linux desktop compitiendo con Novell durante el año
Instalación y desinstalación del software de Linux Tutorial básico
Problemas y errores comunes de Linux Análisis chino (artículos del sistema)
Cómo deshabilitar el inicio de sesión de la cuenta ROOT en Linux
Diseño e implementación de un sistema de gestión de clústeres basado en Linux
Análisis del proceso de arranque de Linux
Por supuesto prueba de rendimiento del índice de referencia Redis
Win8 instala el tutorial gráfico de sistema dual Win7
Cómo interceptar la pantalla de arranque del sistema Windows7
¿Cómo configurar el apagado automático de win7?
Habilidades de configuración personalizadas del tono del sistema Win7
Último resumen de noticias del nuevo navegador Win10 "Sparta"
Enseñarle a construir un sistema de Microsoft altamente seguro
¿Cómo eliminar la protección contra escritura del disco duro con el sistema Win7?