Formato YUV detallado, gráfico detallado YUV420 formato de datos

  

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.

  1. muestreo YUV 4: 4: 4, cada Y corresponde a un conjunto de componentes UV.
  2. muestreo YUV 4: 2: 2, cada par de Y comparte un conjunto de componentes UV.
  3. muestreo YUV 4: 2: 0, cada cuatro Y comparte un conjunto de componentes UV.

    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

Copyright © Conocimiento de Windows All Rights Reserved